2016-04-05 13 views
-1

モデルのパフォーマンスを評価しようとしていますが、実際にどのスコアが返されているか把握できていないようです。ドキュメントには次のように書かれています:sklearnのモデルのスコア関数の出力

Returns the mean accuracy on the given test data and labels. 
In multi-label classification, this is the subset accuracy which is a harsh 
metric since you require for each sample that each label set be correctly predicted. 

これは直感的ではありません - 正確さはここにありますか?私はモデルをチェックするために平均二乗誤差の値を見たいと思います。だから私のモデルが30%のMSEを持っているなら、これは "スコア"が70%という意味ですか?スコアリング関数をmean_squared_errorに設定してクロスバリデーションによってパラメータを選択するモデルを実行すると、それに基づいて「スコア」が計算されますか?

私はこれに関するドキュメントを見つけることができないようです。本当に助けていただければ幸いです。

ありがとうございました!

答えて

0

accuracyは、正しく分類された例の割合です。

>>> from sklearn.metrics import accuracy_score 
>>> y_pred = [0, 2, 1, 3] 
>>> y_true = [0, 1, 2, 3] 
>>> accuracy_score(y_true, y_pred) 
0.5 

ここでは、正しく分類4のうち2例を持っているので、あなたはあなたの問題は、回帰問題で、その後mean_squared_errorを使用している場合の精度は2/4 = 0.5

です。 GridSearchでこのメトリックを使用すると、最も低いエラーが検出されます。

グリッドサーチのクロスバリデーションを行うときの目標は、スコア関数を最大化することです。しかし、エラーを最大限にすることは悪い考えです。そのため、Sklearn APIと一貫性を持たせるために、スコアの誤差の逆を取っています。そうすることで、エラーを最小限に抑えてスコアを最大化できます。

だから、あなたがエラーを表示したい場合、あなたはスコアの絶対値をとることを確認してください

>>> abs(grid_search.best_score_) 
3.2