web-dev-qa-db-ja.com

scikit-learnクロス検証、平均二乗誤差を伴う負の値

サイズ(952,144)のデータ行列Xとサイズ(952)の出力ベクトルyで次のコードを使用すると、mean_squared_errorメトリックは負の値を返しますが、これは予想外です。何かアイデアはありますか?

from sklearn.svm import SVR
from sklearn import cross_validation as CV

reg = SVR(C=1., epsilon=0.1, kernel='rbf')
scores = CV.cross_val_score(reg, X, y, cv=10, scoring='mean_squared_error')

scoresのすべての値は負です。

36
ahmethungari

これを閉じようとしているので、Davidとlarsmansがコメントセクションで雄弁に説明している答えを提供しています:

はい、これは起こるはずです。実際のMSEは、取得している数値の正のバージョンです。

統一スコアリングAPIは常にスコアを最大化するため、統一スコアリングAPIが正しく機能するためには、最小化する必要があるスコアは無効になります。したがって、返されるスコアは、最小化する必要があるスコアの場合は無効になり、最大化する必要がある場合は正のままにします。

これは sipearn GridSearchCV with Pipeline でも説明されています。

46
AN6U5