1. 準確率
2. 精準率和召回率
混淆矩陣
confusion_matrix(y_train_5, y_train_pred)
對分類器來說,一個好得多的性能評估指標是混淆矩陣。
真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四種情形。分類結果的 混淆矩陣 如下表所示:
預測反例 | 預測正例 | |
---|---|---|
真實反例 | TN (真反例) | FP (假正例) |
真實正例 | FN (假反例) | TP (真正例) |
分類器常用評價指標是精準率(precision)和召回率(recall):
precision_score(y_train_5, y_pred) #精準率
recall_score(y_train_5, y_train_pred) #召回率
精準率和召回率表示的意義:(以圖片分類問題爲例)
當它聲明某張圖片是 5 的時候,它只有 80% 的可能性是正確的。而且,它也只檢測出“是 5”類圖片當中的 70%。
3. F1值
f1_score()
F1 值是準確率和召回率的調和平均。
SGDClassifier(隨機梯度下降分類器)是如何做分類決策的。對於每個樣例,它根據決策函數計算分數,如果這個分數大於一個閾值,它會將樣例分配給正例,否則它將分配給反例。
4. ROC
ROC全稱是“受試者工作特徵”(Receiver Operating Characteristic)曲線。
根據學習器的預測結果對樣例進行排序,按此排序逐個把樣本作爲正例進行預測,每次計算出兩個重要量的值,分別以它們爲橫、縱座標作圖,就得到了“ROC”曲線。
ROC曲線的縱軸是真正例率(True Positive Rate , TPR),橫軸是“假正例率” (False Positive Rate,FPR)。
真正例/真實正例
假正例/真實反例
from sklearn.metrics import roc_curve
fpr, tpr, thresholds = roc_curve(y_train_5, y_scores)
roc_auc_score(y_train_5, y_scores_forest)
plt.plot(fpr, tpr, linewidth=2, label=label)
5. AUC
ROC曲線下的面積:AUC
Auc體現出容忍樣本傾斜的能力,只反應模型對正負樣本排序能力的強弱,而其直觀含以上是任意取一個正樣本和負樣本,正樣本的得分大於負樣本的概率。
參考鏈接:
相比於準確率、召回率、F1值等依賴於判決閾值的評估指標,AUC則沒有這個問題。
AUC可以看做隨機從正負樣本中選取一對正負樣本,其中正樣本的得分大於負樣本的概率!
隨機取一對正負樣本,負樣本得分爲t且正樣本大於t!
AUC實際上在說一個模型把正樣本排在負樣本前面的概率!
畫ROC曲線,依照曲線上某點解釋意義;
AUC、ROC的定義、實際意義、畫法;
6. 多分類
創建一個可以將圖片分成 10 類(從 0 到 9)的系統的一個方法是:訓練10個二分類器,每一個對應一個數字(分類器 0,分類器 1,分類器 2,以此類推)。然後當你想對某張圖片進行分類的時候,讓每一個分類器對這個圖片進行分類,選出決策分數最高的那個分類器。這叫做“一對所有”(OvA)策略(也被叫做“一對其他”)。