3 つのクラス ラベルを持つ分類用のデータセットがあり[0,1,2]
ます。
相互検証を実行していくつかの推定器を試したいのですが、クラス 1 と 2 のみの精度でスコアリングすることに興味があります。クラス 0 の精度は気にしません。 CV の最適化。また、どのクラスのリコールも気にしません。つまり、1 つまたは 2 つが予測されるときはいつでも、その信頼性が非常に高いことを確認したいと考えています。
問題は、cross_val_score
クラス 0 の精度を無視するようにスコアリング関数を実行して指示するにはどうすればよいかということです。
更新:受け入れられた回答によると、回答コードの例を次に示します。
def custom_precision_score(y_true,y_pred):
precision_tuple, recall_tuple, fscore_tuple, support_tuple = metrics.precision_recall_fscore_support(y_true, y_pred)
precision_tuple = precision_tuple[1:]
support_tuple = support_tuple[1:]
weighted_precision = np.average(precision_tuple, weights=support_tuple)
return weighted_precision
custom_scorer = metrics.make_scorer(custom_precision_score)
scores = cross_validation.cross_val_score(clf, featuresArray, targetArray, cv=10, scoring=custom_scorer)