ValueError: 分類メトリックはバイナリ ターゲットと連続ターゲットの混合を処理できません


まず解決策は次のとおりです。

元のコード:

f.values.astype(float)
X = f.iloc[:,:-1]
y = f.iloc[:,-1]
#此处省略部分代码
from sklearn import metrics
print(metrics.classification_report(y,predict_y))
print('Confusion matrix:\n',metrics.confusion_matrix(y,predict_y))

変更後:

 #单纯删去了原先语句的第一行,并修改第三行
X = f.iloc[:,:-1]
y = f.iloc[:,-1].values.astype(int)   #astpye设置为float也可行

上記の変更後、目的の結果が正常に表示されました。
注: ソース コードを使用する場合、関数 metrics.classification_report または metrics.confusion_matrix を呼び出しても、エラーが報告されます。
ここに画像の説明を挿入します

次に、エラーの背景を示します。

デシジョン ツリー分類器をトレーニングした後、分類パフォーマンス レポートと混同行列を確認しようとしましたが、その結果は、「ValueError: 分類メトリクスはバイナリ ターゲットと連続ターゲットの混合を処理できません」というエラーになりました。

理由の探求:

sklearn 公式 Web サイトの関数metrics.classification_reportの説明を参照してください。

sklearn.metrics.confusion_matrix(y_true,y_pred,*,labels=None,sample_weight=None,normalize=None)
y_true:配列状の形状 (n_samples,)
y_pred:配列状の形状 (n_samples,)

xs は孤独な場所を探索しました。
元のステートメントを使用するとエラーが報告される理由をご存知の方がいらっしゃいましたら、コメント領域にメッセージを残してください。ありがとうございます。

おすすめ

転載: blog.csdn.net/A_No2Tang/article/details/118075143