Rの混同行列:作成と計算の方法[例を使用]

公開: 2021-03-09

Rは、今日のデータおよび統計分析のための主要なソフトウェアパッケージの1つとして浮上しています。 これは、強力なコンピューティング、ビジュアル、およびグラフィックス機能のために好まれるオープンソース環境です。 あなたが工学部の学生、ビジネス分析の専門家、またはデータサイエンスに強い関心を持っている人であれば、Rプログラミング言語を学ぶことは多くの点であなたを助けることができます。

この記事では、この統合スイートを介した機械学習のいくつかの基本的な概念について説明します。 具体的には、Rで混同行列を計算する方法について説明します

ただし、技術に進む前に、この目的でRを選択した理由を最初に理解しましょう。 このプログラミング言語が世界中の統計家やデータサイエンティストの間で人気を集めているのは、次のような利点があるためです。

  • 再現可能:Rを使用すると、レポートを再現し、再利用可能なコードを記述できます
  • 共有可能:学習曲線が低く、コラボレーションの道が開かれます
  • 繰り返し可能:誰でもあなたが何をしたかを理解できるだけでなく、自分のマシンで同じ機能を作成するための手順を繰り返すこともできます

上記の理由から、機械学習の分野でのR言語の使用も増えています。 その構文を理解するために、エキスパートプログラマーである必要はありません。 そのため、次のセクションでいくつかの基本事項を紹介します。

目次

混同行列とは何ですか?

混同行列、またはエラー行列は、統計における標準的な分類問題を扱います。 これは、データアナリストがアルゴリズムの実行方法を視覚化するのを容易にする特定のテーブルレイアウトで構成されています。 これは特に教師あり学習アルゴリズムに当てはまります。

さらに詳しく説明すると、混同行列はN x N形式に従います。ここで、Nはターゲットクラスの数を表します。 このテーブルまたはマトリックスを使用して、分類モデルのパフォーマンスを評価できます。 これが可能なのは、マトリックスが予測値を目標値と比較するためです。

簡単に言うと、機械学習モデル(この場合は分類子)が一連のテストデータ(すでに真の値を持っている)に対してどのように機能するかを説明できます。

この方法を理解するには、次の用語に精通している必要があります。

  • 真の正(TP):正の値は正しく予測されます
  • 偽陽性(FP):負の値は誤って正として予測されます
  • False Negative(FN):正の値は負として予測されます
  • True Negative(TN):実際の負の値として予測された負の値

より明確にするために、いくつかの例を見てみましょう。

混同行列の例

  • トゥルーポジティブ

あなたがインドがクリケットワールドカップに勝つと予測したとき、そしてそれは勝ちました。

  • 誤検知

あなたがインドが勝つことを期待していたが、それは負けたとき。

  • 偽陰性

あなたがフランスが勝つことはないと予測したとき、しかしそれは勝ちました。

  • 真のネガティブ

あなたがインドがクリケットワールドカップに「勝てない」と予測したとき、それは実生活でシリーズを失いました。

さらに進むと、すべての予測値が正、負、真、および偽として記述されていることを覚えておく必要があります。

Rで混同行列を計算する方法は?

期待値または既知の値のリストと、機械学習モデルからの予測の別のリストがあるシナリオを考えてみます。 Rでは、caretライブラリの単純な関数confusionMatrix()を使用して混同行列を計算できます。 マトリックスを計算するだけでなく、結果の詳細なレポートを返すこともできます。

以下の手順に従って、データマイニングのプロセスを実践できます。

  • 期待される結果を使用して、指定されたデータセットをテストします。
  • テストデータセットの行を予測します。
  • 各クラスの正しい予測と誤った予測の総数を決定します。

これを実行すると、次のように整理された番号が表示されます。

  • マトリックスのすべての行は予測されたクラスに対応し、すべての列は実際のクラスにリンクされます。
  • 正しい分類と正しくない分類の総数は、各クラスの合計とともに表に反映されます。

男性と女性の2つのクラスに分けられた10人がいるとします。 2人の男性が女性として分類され、1人の女性が男性として分類されていることがわかっている場合は、情報を混同行列として配置する必要があります。

女性男性

女性31

男性24 _

ここで、正しい値は、マトリックス(3 + 4)の左上から右下に対角線で編成されています。 結果は、女性を男性として予測するよりも、男性のメンバーを女性として予測する方がエラーが多いことを示しています。 アルゴリズムは、10の可能な結果から7つの正しい予測を行いました。これは、70%の精度があることを意味します。

Rでの融合行列の作成と計算のガイド

ご覧のとおり、混同行列関数は、予測の可能な結果を​​調べるための便利なツールです。 したがって、マトリックスの作成を開始する前に、まず確率値を「カット」する必要があります。 つまり、確率をクラス予測に変換するためのしきい値をマークする必要があります。

これを行うには、ifelse()関数を使用できます。 例えば:

class_prediction <-

ifelse(probability_prediction> 0.50、

「positive_class」、

「negative_class」

)。

table()関数を記述して、ベースRで分割表を作成することもできます。ただし、confusionMatrix()関数は、貴重な補助統計を生成することが知られています。

次のステップは、混同行列とその他の関連する統計を計算することです。 ここでは、予測された結果と実際の結果が必要になります。 たとえば、次のステートメントを考えてみましょう。

confusionMatrix(予測、実際)

ここで、数値予測をクラス予測のベクトルsatp_classに変換する必要があります。 0.50のカットオフを使用するとします。

また、予測を行う際には、ポジティブクラスとネガティブクラスに別々のインジケーターで名前を付けることを忘れないでください。 ポジティブクラスを「T」と呼び、ネガティブクラスを「L」と名付けましょう。 これは、クラスを元のデータと一致させるために行われます。

テストデータセットにp_classと実際の値が含まれているので、confusionMatrix()関数を呼び出して混同行列の作成を開始できます。

または、データマイニングモデルの精度を確認することもできます。 このような場合、0.90ではなく0.10のしきい値を使用することをお勧めします。 その後、前の演習で行ったのと同じ手順を続行できます。

新しい予測クラスを使用して、次の呼び出しを繰り返すことができます。

pred <-ifelse(確率>しきい値、「T」、「L」)

最後に、caretでconfusionMatrix()関数を使用できます。

confusionMatrix(予測、実際)

これで、Rでの機械学習混同行列関数に関するこのチュートリアルを終了します。お役に立てば幸いです。

結論

R、データサイエンスについて知りたい場合は、データサイエンスのPGディプロマをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界の専門家とのメンターシップ、1対1を提供します。 1業界のメンター、400時間以上の学習、トップ企業との仕事の支援。

混同行列を作成する必要は何ですか?

次の理由から、混同行列を使用する利点と、それがパフォーマンスの問題にどのように対処するかを紹介します。
1.混同行列は、分類の精度で問題を根絶するために必要です。 分類比は、モデルの必要な詳細を隠すことによって、いくつかの問題を引き起こすことがよくあります。
2.混同行列は、分類モデルで行われた予測とエラーのタイプについての洞察を提供します。 正しい予測と誤った予測が要約されて表示されます。
3.エラーとそのタイプは、モデルのパフォーマンスを理解できるように分類されています。

Rで混同行列を計算する方法は?

Rの混同行列は、caretライブラリの「confusionMatrix()」関数を使用して計算できます。 この関数は、行列を計算するだけでなく、行列の詳細なレポートも返します。 混同行列を計算するには、いくつかの手順に従う必要があります。
1.データセットをテストします。
2.行の総数を予測します。
3.すべてのクラスの正しい予測と誤った予測の合計を予測します。
データをマイニングすると、番号が行に整理されます。 行は予測されたクラスに接続され、列は実際のクラスに接続されます。 正しい値は対角線になります。 すべての値を追加すると、マトリックスの精度のパーセンテージが得られます。

混同行列でパフォーマンスを測定する方法は?

2x2混同行列を使用して、モデルの正解率を計算できます。 次の式は、成功率または正解率を取得します。
精度=(TP + TN)/(TP + TN + FP + FN)
ここで、TP =真陽性、TN =真陰性、FP =偽陽性、FN=偽陰性
モデルのエラー率は、次のような率計算式を使用して計算することもできます。
精度=(TP + TN)/(TP + TN + FP + FN)=1-精度
エラー率の概念は非常に単純です。 モデルの精度が80%であるとすると、モデルのエラー率は20%になります。