はじめに

機械学習の分類において、作成した予測モデルを評価する際に混同行列(Confusion Matrix)を用いることがあります。
VerticaはCONFUSION_MATRIX関数を利用するとConfusion Matrixによる評価を行えます。

CONFUSION_MATRIX

コマンド構文

パラメータ名内容
target‑column目的変数(正解情報)が格納されている列
predictions予測結果が格納されている列
num_classes 予測対象のクラス数。二値分類の場合は2を指定します。

Vertica 9.2から、INTEGER型だけでなく、BOOLEAN型、CHAR/VARCHAR型の入力データもサポートされ、分類アルゴリズムでも利用できるようになりました。

利用例

例として以下のロジスティック回帰を使用して作成した車のオートマ/マニュアルの予測モデル(logistic_reg_mtcars)の予測結果を評価します。
am列が正解情報、PredectionがVerticaが予測した結果です。
※0=オートマ、1=マニュアル


CONFUSION_MATRIX関数を利用し、上記の予測結果を評価します。
事前準備として、予測結果の呼び出しを簡素化するために、上記SQLをビューとして登録しておきます。


作成したmtcars_predict_resultsビューに対してCONFUSION_MATRIX関数を実行します。




上記結果から以下のことが読み取れます。
○ オートマの車種を正しく「オートマ」と予測した件数:6件
× オートマの車種を誤って「マニュアル」と予測した件数:1件
× マニュアルの車種を誤って「オートマ」と予測した件数:2件
○ マニュアルの車種を正しく「マニュアル」と予測した件数:3件

参考情報

CONFUSION_MATRIX
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/SQLReferenceManual/Functions/MachineLearning/CONFUSION_MATRIX.htm

検証バージョンについて

この記事の内容はVertica 9.1、9.2で確認しています。

更新履歴

2019/07/09 Vertica 9.2の情報を追加
2018/11/09 本記事を公開