亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在決策樹 sklearn 中計算精確召回?

如何在決策樹 sklearn 中計算精確召回?

慕的地8271018 2021-09-25 10:06:50
我嘗試在標準數據集“iris.csv”中進行預測import pandas as pdfrom sklearn import treedf = pd.read_csv('iris.csv')df.columns = ['X1', 'X2', 'X3', 'X4', 'Y']df.head()# Decision treefrom sklearn.model_selection import train_test_splitdecision = tree.DecisionTreeClassifier(criterion='gini')X = df.values[:, 0:4]Y = df.values[:, 4]trainX, testX, trainY, testY = train_test_split(X, Y, test_size=0.25)decision.fit(trainX, trainY)y_score = decision.score(testX, testY)print('Accuracy: ', y_score)# Compute the average precision scorefrom sklearn.metrics import average_precision_scoreaverage_precision = average_precision_score(testY, y_score)print('Average precision-recall score: {0:0.2f}'.format(      average_precision))我有 valueerrorFile "C:/Users/Ultra/PycharmProjects/poker_ML/decision_tree.py", line 20, in <module>    average_precision = average_precision_score(testY, y_score)  File "C:\Users\Ultra\PycharmProjects\poker_ML\venv\lib\site-packages\sklearn\metrics\ranking.py", line 241, in average_precision_score    average, sample_weight=sample_weight)  File "C:\Users\Ultra\PycharmProjects\poker_ML\venv\lib\site-packages\sklearn\metrics\base.py", line 74, in _average_binary_score    raise ValueError("{0} format is not supported".format(y_type))ValueError: multiclass format is not supported如何計算 3 類的精確召回率?sklearn 中決策樹的精確召回是如何工作的。也許我在計算“y_score”時有錯誤?
查看完整描述

1 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

根據scikit-learn 文檔 average_precision_score無法處理多類分類。


相反,您可以precision_score像這樣使用:


# Decision tree

...

y_pred = decision.predict(testX)

y_score = decision.score(testX, testY)

print('Accuracy: ', y_score)


# Compute the average precision score

from sklearn.metrics import precision_score

micro_precision = precision_score(y_pred, testY, average='micro')

print('Micro-averaged precision score: {0:0.2f}'.format(

      micro_precision))


macro_precision = precision_score(y_pred, testY, average='macro')

print('Macro-averaged precision score: {0:0.2f}'.format(

      macro_precision))


per_class_precision = precision_score(y_pred, testY, average=None)

print('Per-class precision score:', per_class_precision)

請注意,您需要指定如何平均分數。如果您的數據集顯示標簽不平衡(iris事實并非如此),這一點尤其重要。


查看完整回答
反對 回復 2021-09-25
  • 1 回答
  • 0 關注
  • 274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號