数据分析机器学习-分类好坏的评价方式
生活随笔
收集整理的這篇文章主要介紹了
数据分析机器学习-分类好坏的评价方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.ROC曲線
這是我們機器學習和數據挖掘等領域用來可視化預測結果準確性最常用的工具之一。
它的定義如下:按照順序逐個把樣本作為正例進行預測,計算出FPR和TPR。分別以FPR、TPR為橫縱坐標作圖即可得到ROC曲線。
其中,兩個變量定義如下。
FPR = TP/(TP+FN)
TPR = TP/(TP+FP)
其中,變量定義如下表,其實就是混淆矩陣的結果。
| TP | 正確肯定:實際是正例,識別為正例。 |
| FN | 錯誤否定(漏報):實際是正例,卻識別成了負例。 |
| FP | 錯誤肯定(誤報):實際是負例,卻識別成了正例。 |
| TN | 正確否定:實際是負例,識別為負例。 |
?
顯然,ROC曲線所在的區域是一個1*1面積為1的方形范圍內,曲線下方面積越接近1(越大),預測越準確。
2.AUC面積
什么是AUC,它的全稱是Area Under ROC Curve,那么其含義就不需要多說了吧,就是ROC曲線與坐標軸確定的范圍面積,這個值越接近1表明預測越準確。
3.混淆矩陣
從上面的敘述其實已經告訴你混淆矩陣是什么了,這是一個n*n的方陣,n表示的是預測結果的種類,它定義的四個值上面已經說明,我們看下面的矩陣。
[ 1 2 0
?2 0 0
3 0 1]
第一行第一列數值為1,這說明真正的分類結果是標簽第一個的預測得到的結果也是標簽第一個的個數為1;
第一行第三列數值為0,這說明真正的分類結果是標簽第一個但是被預測為標簽第三個的個數為0.
以此類推。
?
三個的實現代碼如下。
import numpy as np from sklearn import metrics import matplotlib.pyplot as plt from sklearn.metrics import auc # X表示真實結果標簽 X = np.array([1, 2, 2, 1, 2, 1, 0]) # Y表示預測結果標簽 Y = np.array([2, 1, 2, 1, 2, 1, 0]) # 設定積極標簽個數 fpr, tpr, thresholds = metrics.roc_curve(X, Y, pos_label=1)# 繪制ROC曲線 plt.plot(fpr, tpr, marker='o') plt.show()# 求出AUC值 AUC = auc(fpr, tpr) print(AUC)# 得到混淆矩陣 # labels表示所有的標簽種類個數 mess = metrics.confusion_matrix(X, Y, labels=[0, 1, 2]) print(mess)結果顯示。
總結
以上是生活随笔為你收集整理的数据分析机器学习-分类好坏的评价方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习-分类之K近邻算法(KNN)原理
- 下一篇: 机器学习-Logistic回归原理及实战