鍵.png)
使用這些基本 REST API 最佳實踐構(gòu)建出色的 API
混淆矩陣(Confusion Matrix)是機器學(xué)習(xí)中評估分類模型性能的重要工具。通過混淆矩陣,可以直觀地了解模型在各個類別上的表現(xiàn),包括正確分類和錯誤分類的樣本數(shù)量。基于混淆矩陣,我們可以計算準(zhǔn)確率、精確率、召回率、F1分?jǐn)?shù)以及真正率和假正率等多個評估指標(biāo),用于評估分類模型的性能。
Confusion Matrix
混淆矩陣(Confusion Matrix)是什么?混淆矩陣是一個表格,用于描述分類模型的預(yù)測結(jié)果與實際標(biāo)簽之間的關(guān)系。
對于一個二分類問題,混淆矩陣是一個2×2的矩陣。
對于多分類問題,混淆矩陣的大小為類別數(shù)乘以類別數(shù)。
混淆矩陣的評估指標(biāo)有哪些?混淆矩陣可用于計算準(zhǔn)確率、精確率、召回率、F1分?jǐn)?shù)以及真正率和假正率等多個評估指標(biāo),這些指標(biāo)共同構(gòu)成了評估分類模型性能的完整體系。
準(zhǔn)確率是模型正確分類的樣本數(shù)占總樣本數(shù)的比例。
對于多分類問題,準(zhǔn)確率同樣適用,只需將TP、TN、FP、FN替換為對應(yīng)類別的數(shù)量總和。
精確率是針對預(yù)測為正類的樣本,模型預(yù)測正確的比例。
對于多分類問題,可以計算每個類別的精確率。
召回率是針對實際為正類的樣本,模型預(yù)測正確的比例。
同樣,對于多分類問題,可以計算每個類別的召回率。
F1分?jǐn)?shù)是精確率和召回率的調(diào)和平均數(shù),用于綜合評估模型的性能。
對于多分類問題,可以計算每個類別的F1分?jǐn)?shù),或者計算宏平均(Macro-average)和微平均(Micro-average)F1分?jǐn)?shù)。
真正率也稱為靈敏度(Sensitivity)或召回率(Recall)。
假正率也稱為1-特異度(1-Specificity)。
二分類問題的混淆矩陣是什么?對于二分類問題,混淆矩陣是一個2×2的表格,用于描述分類模型預(yù)測結(jié)果與實際標(biāo)簽之間的關(guān)系,包括真正類(TP)、假正類(FP)、假負(fù)類(FN)和真負(fù)類(TN)四種情況。
在Python中,使用sklearn.metrics中的confusion_matrix函數(shù)計算了實際標(biāo)簽y_true與預(yù)測標(biāo)簽y_pred之間的混淆矩陣,并利用seaborn庫的heatmap函數(shù)以及matplotlib.pyplot庫的相關(guān)函數(shù)對混淆矩陣進(jìn)行了可視化展示。
from sklearn.metrics import confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt
# 假設(shè)y_true是實際標(biāo)簽,y_pred是預(yù)測標(biāo)簽
y_true = [0, 1, 1, 0, 1, 0, 1, 0, 0, 1]
y_pred = [0, 1, 0, 0, 1, 0, 1, 1, 0, 1]
# 計算混淆矩陣
cm = confusion_matrix(y_true, y_pred)
# 使用seaborn繪制混淆矩陣
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
plt.xlabel('Predicted')
plt.ylabel('True')
plt.title('Confusion Matrix')
plt.show()
多分類問題的混淆矩陣是什么?多分類問題的混淆矩陣是一個表格,其行表示實際類別,列表示預(yù)測類別,每個單元格的值表示實際類別與預(yù)測類別相匹配的樣本數(shù)量。
在Python中,使用seaborn和matplotlib庫,基于給定的實際標(biāo)簽數(shù)組y_true和預(yù)測標(biāo)簽數(shù)組y_pred,生成并可視化了一個三分類問題的混淆矩陣熱力圖。
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
# 假設(shè)y_true是實際標(biāo)簽數(shù)組, y_pred是預(yù)測標(biāo)簽數(shù)組
y_true = [0, 1, 2, 2, 0, 1, 0, 2, 1, 0] # 示例實際標(biāo)簽
y_pred = [0, 2, 1, 2, 0, 0, 0, 1, 2, 0] # 示例預(yù)測標(biāo)簽
# 生成混淆矩陣
conf_mat = confusion_matrix(y_true, y_pred)
# 使用seaborn繪制熱力圖
sns.heatmap(conf_mat, annot=True, cmap='Blues', xticklabels=['Class 0', 'Class 1', 'Class 2'], yticklabels=['Class 0', 'Class 1', 'Class 2'])
plt.xlabel('Predicted Class')
plt.ylabel('True Class')
plt.title('Confusion Matrix')
plt.show()
本文章轉(zhuǎn)載微信公眾號@架構(gòu)師帶你玩轉(zhuǎn)AI