2016-09-21 15 views
0

モデル予測と実際の値を比較する混乱行列を作成するのが難しいです。私のデータセットには159の説明変数があり、私の目標は「クラス」と呼ばれています。私はそれをしながら、5列の行列だ、それは関数が生成予測することpred1変数とは何かを持っているかもしれないと思う決定木モデルの混同行列を作成する方法

Error in confusionMatrix.default(validation$classe, pred1) : 
    The data must contain some levels that overlap the reference. 

:次のエラーメッセージが上記のコードから生成され

#Load Data 
df <- read.csv("https://d396qusza40orc.cloudfront.net/predmachlearn/pml-training.csv", na.strings=c("NA","#DIV/0!","")) 

#Split into training and validation 
index <- createDataPartition(df$classe, times=1, p=0.5)[[1]] 
training <- df[index, ] 
validation <- df[-index, ] 

#Model 
decisionTreeModel <- rpart(classe ~ ., data=training, method="class", cp =0.5) 

#Predict 
pred1 <- predict(decisionTreeModel, validation) 

#Check model performance 
confusionMatrix(validation$classe, pred1) 

バリデーション$ classeは5段階の要素です。どのようにこれを解決するための任意のアイデアですか?事前

+0

「validation $ classe」と「pred1」が要因であるかどうか、それらが同じレベルを共有しているかどうかをチェックする必要があります( 'level(validation $ classe)'と 'levels(pred1)')を使用して、結果をその質問に共有することができます。さらに、csvファイルからデータのサンプルを共有すると良いでしょう。 –

答えて

2

おかげであなたの予測は、あなたの各クラスの確率の行列を与えています。

pred1 <- predict(decisionTreeModel, validation, type="class") 
+1

を追加すると、rpartオブジェクトが分類ツリーの場合、デフォルトのタイプは 'prob'で、prob予測、1番目、2番目などのクラスの確率を表す行列が返されるため、 type = 'class'によるデフォルトオプション –

関連する問題