はじめに
機械学習の回帰問題において、作成した予測モデルを評価する際にMSE/RMSEを用いることがあります。VerticaはMSE関数を利用するとMSE/RMSEによる評価を行えます。
MSE
コマンド構文
1 2 |
MSE ( targets, predictions) OVER() |
パラメータ名 | 内容 |
---|---|
targets | 目的変数(正解情報)が格納されている列 |
predictions | 予測結果が格納されている列 |
利用例
例として以下のサポートベクターマシン回帰(SVR)を使用して、イエローストーン国立公園の間欠泉の噴火継続時間(分)を予測し、その結果を評価します。
eruptionsが正解情報、predがVerticaが予測した結果です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
dbadmin=> SELECT id, dbadmin(> eruptions, dbadmin(> ROUND(PREDICT_SVM_REGRESSOR(waiting USING PARAMETERS model_name='svm_faithful'),3) AS pred dbadmin(> FROM faithful_testing; id | eruptions | pred ----+-----------+------- 4 | 2.283 | 3.121 5 | 4.533 | 4.278 8 | 3.6 | 4.278 9 | 1.95 | 2.567 11 | 1.833 | 2.718 12 | 3.917 | 4.228 14 | 1.75 | 2.366 20 | 4.25 | 3.976 22 | 1.75 | 2.366 23 | 3.45 | 3.926 (10 rows) |
MSE関数を利用し、上記の予測結果を評価します。
事前準備として、予測結果の呼び出しを簡素化するために、上記SQLをビューとして登録しておきます。
1 2 3 4 5 6 |
dbadmin=> CREATE VIEW pred_faithful_results AS dbadmin(> SELECT id, dbadmin(> eruptions, dbadmin(> PREDICT_SVM_REGRESSOR(waiting USING PARAMETERS model_name='svm_faithful') AS pred dbadmin(> FROM faithful_testing; CREATE VIEW |
作成したpred_faithful_resultsビューに対してMSE関数を実行します。
1 2 3 4 5 6 7 |
dbadmin=> SELECT MSE (eruptions::float, pred::float) OVER() FROM dbadmin-> (SELECT eruptions, pred FROM pred_faithful_results) AS prediction_output; mse | Comments -------------------+----------------------------------------------- 0.353707793807197 | Of 110 rows, 110 were used and 0 were ignored (1 row) |
上記結果よりsvm_faithfulモデルのMSEは0.353707793807197であることが確認できます。
また、MSEの結果に対してSQRT(平方根)関数を使用することで、RMSEを求めることができます。
1 2 3 4 5 6 7 |
dbadmin=> SELECT SQRT(mse) AS RMSE dbadmin-> FROM (SELECT MSE (eruptions::float, pred::float) OVER() FROM dbadmin(> (SELECT eruptions, pred FROM pred_faithful_results) AS prediction_output) AS MSE; RMSE ------------------- 0.594733380437989 (1 row) |
上記結果よりsvm_faithfulモデルのRMSEは0.594733380437989であることが確認できます。
参考情報
MSEhttps://www.vertica.com/docs/9.1.x/HTML/index.htm#Authoring/SQLReferenceManual/Functions/MachineLearning/MSE.htm
SQRT
https://www.vertica.com/docs/9.1.x/HTML/index.htm#Authoring/SQLReferenceManual/Functions/Mathematical/SQRT.htm
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。- 投稿タグ
- 機械学習, Machine Learning, 評価