混同行列を計算する
動画で見たように、混同行列はモデルの出力を調整し、予測のあらゆる結果(真陽性、真陰性、偽陽性、偽陰性)を確認するのにとても便利なツールです。
混同行列を作成する前に、与えられたしきい値で予測確率を「カット」して、確率をクラス予測の因子に変換する必要があります。ifelse() と factor() を次のように組み合わせます。
pos_or_neg <- ifelse(probability_prediction > threshold, positive_class, negative_class)
p_class <- factor(pos_or_neg, levels = levels(test_values))
caret の confusionMatrix() は、ベースRの table() に有用な補助統計を多数加えることで拡張した関数です。予測された結果と実際の結果を使って、混同行列(および関連する統計量)を次のように計算できます。
confusionMatrix(p_class, test_values)
この演習はコースの一部です
Rで学ぶ caret を使った Machine Learning
演習の手順
ifelse()を使って、pが 0.5 より大きいときは陽性クラス"M"、それ以外は陰性クラス"R"となる文字ベクトルm_or_rを作成します。m_or_rを、test[["Class"]]と同じ水準を持つ因子p_classに変換します。confusionMatrix()を使い、p_classとtestデータセットの"Class"列を渡して混同行列を作成します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# If p exceeds threshold of 0.5, M else R: m_or_r
# Convert to factor: p_class
# Create confusion matrix