機器學習入門(六)——評價分類結果
一.混淆矩陣
二.精準率和召回率
上圖說明只看準確率是遠遠不夠的。
測試資料:
from sklearn import datasets
from sklearn.model_selection import train_test_split
digits = datasets.load_digits()
X = digits.data
y = digits.target.copy()
y[digits.target==9] = 1
y[digits.target!=9] = 0
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
邏輯迴歸預測:
from sklearn.linear_model import LogisticRegression
log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)
log_reg.score(X_test, y_test) #0.9755555555555555
y_predict = log_reg.predict(X_test)
三.Precision-Recall的平衡
左邊為0,右邊為1,五角星為1,圓圈為0
精準率增大時召回率降低
精準率高,則對特別有把握時才預測對,則以前本該算預測對的,變成不對,召回率就越低
召回率高,降低判斷, 10%的概率也說有病
自定義曲線:
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
digits = datasets.load_digits()
X = digits.data
y = digits.target.copy()
y[digits.target==9] = 1
y[digits.target!=9] = 0
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
from sklearn.linear_model import LogisticRegression
log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)
decision_scores = log_reg.decision_function(X_test)
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
precisions = []
recalls = []
thresholds = np.arange(np.min(decision_scores), np.max(decision_scores), 0.1)
for threshold in thresholds:
y_predict = np.array(decision_scores >= threshold, dtype='int')
precisions.append(precision_score(y_test, y_predict))
recalls.append(recall_score(y_test, y_predict))
使用sklearn中的包:
from sklearn.metrics import precision_recall_curve
precisions,recalls,thresholds = precision_recall_curve(y_test,decision_scores)
橫軸是P,縱軸是R
PR曲線靠外或xy軸的面積大則對應的模型好
四.ROC曲線
五.多分類問題中的混淆矩陣
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
digits = datasets.load_digits()
X = digits.data
y = digits.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.8, random_state=666)
from sklearn.linear_model import LogisticRegression
log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)
log_reg.score(X_test, y_test)
y_predict = log_reg.predict(X_test)
from sklearn.metrics import precision_score
precision_score(y_test, y_predict,average='micro')
相關文章
- 入門系列之Scikit-learn在Python中構建機器學習分類器Python機器學習
- 機器學習框架ML.NET學習筆記【2】入門之二元分類機器學習框架筆記
- 【機器學習】支援向量機分類機器學習
- SpringMVC入門學習---結果跳轉方式SpringMVC
- 19、如何使用機器學習結果機器學習
- 機器學習之使用sklearn構建據類模型,並且評價模型機器學習模型
- 機器學習總結(2)—分類中的代數模型機器學習模型
- 機器學習入門準備機器學習
- 機器學習之小白入門機器學習
- 機器學習入門規劃機器學習
- 機器學習PAI快速入門機器學習AI
- 機器學習01-入門機器學習
- 機器學習--有監督學習--分類演算法(預測分類)機器學習演算法
- 機器學習和深度學習概念入門機器學習深度學習
- 機器學習常用的分類器比較機器學習
- gRPC入門學習之旅(六)RPC
- [譯] 通過整合學習提高機器學習結果機器學習
- 從零開始學機器學習——初探分類器機器學習
- 如何用機器學習對文字分類機器學習文字分類
- 衝刺結果評分
- 聊聊經典機器學習入門機器學習
- 從零開始學機器學習——分類器詳解機器學習
- 【乾貨】機器學習和深度學習概念入門機器學習深度學習
- 機器學習--分類變數編碼方法機器學習變數
- 機器學習3-分類演算法機器學習演算法
- 機器學習十講-第三講分類機器學習
- JVM學習-虛擬機器類載入機制JVM虛擬機
- 機器學習入門實戰疑問機器學習
- 機器學習入門之sklearn介紹機器學習
- Java虛擬機器(六):類載入機制Java虛擬機
- 從零開始學機器學習——入門NLP機器學習
- 【機器學習】帶你3分鐘看完《機器學習實戰》總結篇機器學習
- 機器學習之樸素貝葉斯分類機器學習
- 機器學習4-分類演算法2機器學習演算法
- 使用機器學習預測房價(附連結)機器學習
- 不平衡資料的分類評價指標總結指標
- 人工智慧 (02) 機器學習 - 監督式學習分類方法人工智慧機器學習
- 機器學習讀書筆記:貝葉斯分類器機器學習筆記