2016-05-27 7 views
1

私はPythonで作業しています。私は訓練されたモデルからf1スコアを取得しようとしています。ドキュメントには、のような構文を示していますSklearnのF1スコアを正しく計算する

f1_score(y_true, y_pred, average='macro') 

が、私はy_trueとy_predをすることになっているかを把握することはできません。論理的にy_trueは、yとy_predの真値をyの予測値であると考えられるべきであるが、その定義によって私は、一度に一つの値を確認することができ、私は何かが欠けています、または全体に対してそれをチェックする方法がありますデータセット?

答えて

1

Fスコアは、データセットの精度とリコールの重み平均です。あなたの予測のどんな部分が真実で、どの部分が予測されたのですか?https://en.wikipedia.org/wiki/F1_score

Sklearnの関数がy_trueとy_predのラベルの配列や行列を必要としていると思います.y_trueは "i番目の要素の実際のラベルy_predは「i番目の要素の予測/分類されたラベル」である。それぞれの順序は一致しなければなりません!順序は、Skleanが単一の値ではなくすべての予測に対してF-スコアを計算できるようにするものです。

私は癌を取得するために5人で予測を行うために分類器/モデルを使用する場合:

y_pred = [True, False, True, False, False] 

と私は唯一の第三人が癌を得たことを見つける:

y_true = [False, False, True, False False] 

Sklearnドキュメントの例をチェック多くのため:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

関連する問題