サイズ(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
のすべての値は負です。
これを閉じようとしているので、Davidとlarsmansがコメントセクションで雄弁に説明している答えを提供しています:
はい、これは起こるはずです。実際のMSEは、取得している数値の正のバージョンです。
統一スコアリングAPIは常にスコアを最大化するため、統一スコアリングAPIが正しく機能するためには、最小化する必要があるスコアは無効になります。したがって、返されるスコアは、最小化する必要があるスコアの場合は無効になり、最大化する必要がある場合は正のままにします。
これは sipearn GridSearchCV with Pipeline でも説明されています。