sklearn.metrics.classification_report分類模型評估


sklearn.metrics.classification_report()模型評估的一種,輸出一個報告
sklearn.metrics.classification_report(y_true, y_pred, labels=None, target_names=None, sample_weight=None, digits=2, output_dict=False)

參數說明

  1. y_true:1 維數組,真實數據的分類標簽
  2. y_pred:1 維數組,模型預測的分類標簽
  3. labels:列表,需要評估的標簽名稱
  4. target_names:列表,指定標簽名稱
  5. sample_weight:1 維數組,不同數據點在評估結果中所占的權重
  6. digits:評估報告中小數點的保留位數,如果 output_dict=True,此參數不起作用,返回的數值不作處理
  7. output_dict:若真,評估結果以字典形式返回

返回

每個分類標簽的精確度,召回率和 F1-score。

精確度:precision,正確預測為正的,占全部預測為正的比例,TP / (TP+FP)
召回率:recall,正確預測為正的,占全部實際為正的比例,TP / (TP+FN)
F1-score:精確率和召回率的調和平均數,2 * precision*recall / (precision+recall)

同時還會給出總體的微平均值,宏平均值和加權平均值。

微平均值:micro average,所有數據結果的平均值
宏平均值:macro average,所有標簽結果的平均值
加權平均值:weighted average,所有標簽結果的加權平均值
在二分類場景中,正標簽的召回率稱為敏感度(sensitivity),負標簽的召回率稱為特異性(specificity)

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split

# 鳶尾花數據集
iris = load_iris()
X = iris.data
y = iris.target

# [0, 1, 2] 標簽轉換為名稱 ['setosa' 'versicolor' 'virginica']
y_labels = iris.target_names[y]

# 數據集拆分為訓練集與測試集
X_train, X_test, y_train, y_test = train_test_split(X, y_labels, test_size=0.2)

# 使用訓練集訓練模型
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)

# 使用測試集預測結果
y_pred = clf.predict(X_test)

# 生成文本型分類報告
print(classification_report(y_test, y_pred))

 

輸出如下:

              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        11
  versicolor       0.83      0.83      0.83         6
   virginica       0.92      0.92      0.92        13

    accuracy                           0.93        30
   macro avg       0.92      0.92      0.92        30
weighted avg       0.93      0.93      0.93        30

生成字典類分類報告
# 生成字典型分類報告
report = classification_report(y_test, y_pred, output_dict=True)
for key, value in report["setosa"].items():
    print(f"{key:10s}:{value:10.2f}")
 
        

參考:https://www.cnblogs.com/jfdwd/p/11046694.html



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM