?
??主頁?Nowl
🔥專欄《機器學習實戰》?《機器學習》
📑君子坐而論道,少年起而行之?
文章目錄
交叉驗證
保留交叉驗證
k-折交叉驗證
留一交叉驗證
混淆矩陣
精度與召回率
介紹
精度
召回率
區別
使用代碼
偏差與方差
介紹
區別
交叉驗證
保留交叉驗證
介紹
將數據集劃分為兩部分,訓練集與測試集,這也是簡單任務中常用的方法,其實沒有很好地體現交叉驗證的思想
使用代碼
# 導入庫
from sklearn.model_selection import train_test_split# 劃分訓練集與測試集,參數分別為總數據集,測試集的比例
train, test = train_test_split(data, test_size=0.2)
k-折交叉驗證
介紹
將數據集劃分為k個子集,每次采用k-1個子集作為訓練集,剩下的一個作為測試集,然后再重新選擇,使每一個子集都做一次測試集,所以整個過程總共訓練k次,得到k組結果,最后將這k組結果取平均,得到最終結果,這就是交叉驗證的思想
?
使用代碼
# 導入庫
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score# 設置K值,這里假設K=5
k_fold = KFold(n_splits=5, shuffle=True, random_state=42)# 初始化模型,這里以隨機森林為例
model = RandomForestClassifier()# 使用K折交叉驗證
scores = cross_val_score(model, X, y, cv=k_fold)
留一交叉驗證
介紹
與k折驗證思想一致,只是子集的數量和數據集的大小一樣,往往在數據集較小的時候使用這種方法
混淆矩陣
介紹
在分類任務中,我們可以用混淆矩陣來判斷模型的性能,混淆矩陣記錄了A類被分為B類的次數,以下是一個動物識別任務的混淆矩陣,要知道cat被預測成了幾次dog,那么就查看混淆矩陣的第1行第2列
?
使用代碼
# 導入庫
from sklearn.metrics import confusion_matrix# 打印混淆矩陣,參數為真實結果與預測結果
print(confusion_matrix(y, y_pred))
精度與召回率
介紹
?
要解釋精度與召回率,我們先定義幾個量
TP:模型預測為正且真實值為正的數量
FP:模型預測為正且真實值為負的數量
FN:模型預測為負且真實值為正的數量
精度
精度就是模型正確預測的正類在所有預測為正類中的比例
召回率
召回率就是模型正確預測的正類在所有正類中的比例
區別
可能還是有點混淆?其實精度高就是寧愿不預測,也不愿意預測錯,召回率高就是寧愿預測錯,也不愿意遺漏正類,我們具體來看兩個場景
在地震預測中,我們是要提高召回率還是精度?顯而易見,召回率,因為我們寧愿預測器錯誤地提醒我們,也不愿意當地震來臨時它不報警
那么在食品檢測中呢?當然要提高精度,因為我們寧愿健康的食品被誤判為不合格,也不愿意有不合格的食品進入市場
召回率與精度兩個指標不可兼得,我們要根據具體任務做出取舍
使用代碼
# 導入庫
from sklearn.metrics import precision_score, recall_score# 使用精度評估函數,參數是真實結果與預測結果
print(precision_score(y, y_pred))# 使用召回率評估函數,參數是真實結果與預測結果
print(recall_score(y, y_pred))
偏差與方差
介紹
偏差衡量一個模型預測結果和真實值的差距,偏差高往往代表模型欠擬合
方差衡量模型在不同數據集上預測的差異,方差高往往代表模型過擬合
?
區別
具有高偏差的模型對訓練數據和新數據的表現都較差,因為它們未能捕捉到數據的復雜性。
具有高方差的模型在訓練數據上可能表現得很好,但對新數據的泛化能力差,因為它們過于依賴于訓練數據的細節。
結語
機器學習模型性能測量對于評估模型的質量、選擇最佳模型、調整模型超參數以及在實際應用中預測新數據都具有重要意義。
-
評估模型質量: 通過性能測量,你可以了解模型在訓練數據上的表現如何。這有助于判斷模型是否足夠復雜以捕捉數據中的模式,同時又不過度擬合訓練數據。
-
選擇最佳模型: 在比較不同模型時,性能測量是選擇最佳模型的關鍵因素。你可以通過比較模型在相同任務上的性能指標來確定哪個模型更適合你的問題。
-
調整模型超參數: 通過觀察模型在不同超參數設置下的性能,你可以調整超參數以提高模型的性能。性能測量可以指導你在超參數搜索空間中尋找最佳設置。
-
評估泛化能力: 模型在訓練數據上表現良好并不一定意味著它在新數據上也能表現良好。性能測量幫助你評估模型的泛化能力,即模型對未見過的數據的預測能力。
-
支持業務決策: 在實際應用中,模型的性能直接關系到業務的決策。例如,在醫療領域,一個精確的疾病預測模型可能影響患者的治療計劃。
-
改進模型: 通過分析性能測量的結果,你可以識別模型的弱點,并采取相應的措施來改進模型,例如增加訓練數據、特征工程、選擇更合適的模型等。