はじめに
機械学習の回帰問題において、作成した予測モデルを評価する際に決定係数(R-squared)を確認したい場合があります。
VerticaはRSQUARED関数を利用すると決定係数による評価を行えます。
RSQUARED
コマンド構文
RSQUARED ( targets, predictions )
OVER()パラメータ名 | 内容 |
|---|---|
targets | 目的変数(正解情報)が格納されている列 |
predictions | 予測結果が格納されている列 |
利用例
例として以下のサポートベクターマシン回帰(SVR)を使用して、イエローストーン国立公園の間欠泉の噴火継続時間(分)を予測し、その結果を評価します。
eruptionsが正解情報、predがVerticaが予測した結果です。
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)RSQUARED関数を利用し、上記の予測結果を評価します。
事前準備として、予測結果の呼び出しを簡素化するために、上記SQLをビューとして登録しておきます。
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ビューに対してRSQUARED関数を実行します。
dbadmin=> SELECT RSQUARED(eruptions, pred) OVER()
dbadmin-> FROM pred_faithful_results;
rsq | comment
-------------------+-----------------------------------------------
0.722255037794467 | Of 110 rows, 110 were used and 0 were ignored
(1 row)上記結果よりsvm_faithfulモデルの決定係数は0.722255037794467であることが確認できます。
参考情報
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。
