はじめに
機械学習の分類問題において、作成した予測モデルを評価する際にエラー率を確認したい場合があります。VerticaはERROR_RATE関数を利用するとエラー率による評価を行えます。
ERROR_RATE
コマンド構文
1 2 3 |
ERROR_RATE ( targets, predictions [ USING PARAMETERS num_classes=num‑classes ] ) OVER() |
パラメータ名 | 内容 |
---|---|
targets | 目的変数(正解情報)が格納されている列 |
predictions | 予測結果が格納されている列 |
num_classes | (オプション) 評価するモデルのクラスの数。デフォルトは2。多項分類の場合は対応するクラス数を指定する。 |
Vertica 9.2から、INTEGER型だけでなく、BOOLEAN型、CHAR/VARCHAR型の入力データもサポートされ、分類アルゴリズムでも利用できるようになりました。
利用例
例として以下のロジスティック回帰を使用して、各車のcyl、wt列の値からがam列の値(0=オートマ、1=マニュアル)を予測し、その結果を評価します。
amが正解情報、predがVerticaが予測した結果です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
dbadmin=> SELECT car_model, dbadmin-> am, dbadmin-> PREDICT_LOGISTIC_REG (cyl, wt USING PARAMETERS model_name='logistic_reg_mtcars', type='response') AS pred dbadmin-> FROM mtcars_test; car_model | am | pred ----------------+----+------ AMC Javelin | 0 | 0 Camaro Z28 | 0 | 0 Datsun 710 | 1 | 1 Honda Civic | 1 | 1 Hornet 4 Drive | 0 | 0 Maserati Bora | 1 | 0 Merc 280 | 0 | 0 Merc 450SL | 0 | 0 Porsche 914-2 | 1 | 1 Toyota Corona | 0 | 1 Valiant | 0 | 0 Volvo 142E | 1 | 0 (12 rows) |
ERROR_RATE関数を利用し、上記の予測結果を評価します。
事前準備として、予測結果の呼び出しを簡素化するために、上記SQLをビューとして登録しておきます。
1 2 3 4 5 6 |
dbadmin=> CREATE VIEW pred_mtcars_results AS dbadmin-> SELECT car_model, dbadmin-> am AS obs, dbadmin-> PREDICT_LOGISTIC_REG (cyl, wt USING PARAMETERS model_name='logistic_reg_mtcars', type='response') AS pred dbadmin-> FROM mtcars_test; CREATE VIEW |
作成したpred_mtcars_resultsビューに対してERROR_RATE関数を実行します。
1 2 3 4 5 6 7 8 |
dbadmin=> SELECT ERROR_RATE(obs::int, pred::int USING PARAMETERS num_classes=2) OVER() dbadmin-> FROM pred_mtcars_results; class | error_rate | comment -------+-------------------+--------------------------------------------- 0 | 0.142857142857143 | 1 | 0.4 | | 0.25 | Of 12 rows, 12 were used and 0 were ignored (3 rows) |
上記結果よりlogistic_reg_mtcarsモデルのエラー率は、0(オートマ)に対する分類では約14%、1(マニュアル)に対する分類では40%、全体では25%であることが確認できます。
参考情報
ERROR_RATEhttps://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/SQLReferenceManual/Functions/MachineLearning/ERROR_RATE.htm
検証バージョンについて
この記事の内容はVertica 9.1、9.2で確認しています。更新履歴
2019/07/09 Vertica 9.2の情報を追加2018/12/16 本記事を公開
- 投稿タグ
- 機械学習, Machine Learning, 評価