讀書筆記:《機器學習》周志華
《機器學習》周志華
第一章:緒論
泛化能力:學到模型適用於新樣本的能力。衍生:泛化誤差
歸納偏好:演算法在機器學習過程中對某種假設的偏好
“奧卡姆剃刀”原則:若有多個假設與觀察一致,則選最簡單的那個
NFL定理:沒有免費的午餐。演算法沒有優劣好壞,針對具體問題具體分析
第二章:模型評估與選擇
2.1經驗誤差與過擬合P23
過擬合:為了得到一致假設而使假設變的過度複雜。模型過度擬合,在訓練集上表現好,測試集上效果差。
欠擬合:模型擬合不夠,在訓練集上表現效果差。
原因及解決辦法:
過擬合:
1:模型過於複雜→減少模型複雜度,增加正則化項,L1範數或L2範數
2:特徵選取不合理→人工篩選特徵,使用特徵選擇演算法
欠擬合:
1:模型過於簡單→增加模型複雜度eg、使用線性模型擬合二次曲線資料
2:特徵集過少、資料集過少、抽樣資料不合理
2.2評估方法
測試集應該儘可能與訓練集互斥
2.2.1留出法P25
留出法:直接將資料集D劃分為2個互斥的集合,一般是7:3(7為訓練集,3為測試集)
評估:一般要採用若干次隨機劃分、重複進行試驗評估後取平均值作為留出法的評估結果。
常見做法:大約2/3~4/5的樣本用於訓練。一般而言,測試集至少應含有30個樣例。
2.2.2交叉驗證法P26
交叉驗證法:先將資料集劃分為k個大小相似的互斥子集,每個子集都儘可能保持資料分佈一致性,即從資料集中通過分層取樣得到;然後,每次用k-1個子集的並集作為訓練集,餘下的那個子集作為測試集;這樣就可獲得k組訓練/測試集,從而可進行k次訓練和測試,最終返回的是這k個測試結果的均值
K折交叉驗證通常要隨機使用不同的劃分重複p次,最終的評估結果是這p次k折交叉驗證結果的均值。
交叉驗證法的一個特例:留一法LOO:假定資料集中包含m個樣本,若令k=m。缺陷:在資料集比較大時,訓練模型的計算開銷難以忍受。
2.2.3自助法
自助法:它直接以自助取樣法(bootstrapsampling,即可重複或有放回取樣)為基礎,給定包含m個樣本的資料集D,我們對它進行取樣產生資料集D’,每次隨機從D中挑選一個樣本,將其拷貝放入D’,然後再將該樣本放回初始資料集D中,使得該樣本在下次取樣時仍有可能被採到;這個過程重複執行m次後,我們就得到了包含m個樣本的資料集D’,這就是自助取樣的結果。
包外估計:初始樣本集D中約有36.8%的樣本未出現在取樣資料集D’中,於是我們可將D’用作訓練集,D\D’用作測試集(‘\’表示集合減法)。
特點:自助法在資料集較小、難以有效劃分訓練/測試集時很有用;對整合學習等方法有很大的好處。自助法需引入估計偏差。
2.2.4調參與最終模型
2.3效能度量
效能度量:對學習器的泛化效能進行評估,不僅需要有效可行的實驗估計方法,還需要有衡量模型泛化能力的評價標準。
模型好壞:不僅取決於演算法和資料,還決定於任務需求。
迴歸任務最常用的效能度量是“均方誤差”
2.3.1錯誤率與精度
分類任務中最常用的兩種效能度量:錯誤率與精度;既適用於二分類也適用於多分類。
錯誤率:分類錯誤的樣本數佔樣本總數的比例。
精度:分類正確的樣本數佔樣本總數的比例。
2.3.2查準率、查全率與F1
常用於資訊檢索、Web搜尋等應用中經常出現。
對於二分類問題:
真實情況 |
預測結果 |
|
正例 |
反例 |
|
正例positive |
TP真正例(true positive) |
FN假反例(false negative) |
反例negative |
FP假正例(false positve) |
TN真反例(true negative) |
precision查準率P=TP/(TP+FP)
recall查全率R=TP/(TP+FN)
查準率-查全率曲線,簡稱“P-R曲線”,圖為“P-R圖”,評估效能好壞就是比較P-R曲線下面積的大小;引入“平衡點(BEP)”進行平衡點比較。
案例:
1:商品推薦系統中,為了儘可能少打攪使用者,更希望推薦內容確是使用者感興趣的,查準率很關鍵。
2:逃犯資訊檢索系統中,更可能少漏掉逃犯,此時查全率比較重要。
F1是基於查準率與查全率的調和平均。
Fβ是加權調和平均(根據對查準率/查全率不同偏好設定權重)。β>0度量了查全率對查準率的相對重要性;β=1時退化為標準的F1;β>1時查全率有更大的影響,β<1時查準率有更大影響。
P32,多個二分類混淆矩陣,用巨集F1(macro-F),微F1(macro-F1)
2.3.3ROC與AUC
截斷點(cut point),p與0.5比較,大於0.5為正例,反之。
ROC曲線則是從拍訊本身質量的好壞角度出發來研究學習期泛化效能的有力工具。
ROC全稱是“受試者工作特徵”曲線;ROC曲線縱軸是“真正例率(TPR)”,橫軸是“假正例率(FPR)”。
TPR=TP/(TP+FN)
FPR=FP/(FN+FP)
AUC是ROC曲線下的面積。AUC=1—排序損失。AUC的取值範圍在0.5和1之間。比較數值。
經典解析:ROC曲線圖中的四個點和一條線。第一個點,(0,1),即FPR=0,TPR=1,這意味著FN(false negative)=0,並且FP(false positive)=0。Wow,這是一個完美的分類器,它將所有的樣本都正確分類。第二個點,(1,0),即FPR=1,TPR=0,類似地分析可以發現這是一個最糟糕的分類器,因為它成功避開了所有的正確答案。第三個點,(0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以發現該分類器預測所有的樣本都為負樣本(negative)。類似的,第四個點(1,1),分類器實際上預測所有的樣本都為正樣本。經過以上的分析,我們可以斷言,ROC曲線越接近左上角,該分類器的效能越好。
為什麼使用ROC曲線既然已經這麼多評價標準,為什麼還要使用ROC和AUC呢?因為ROC曲線有個很好的特性:當測試集中的正負樣本的分佈變化的時候,ROC曲線能夠保持不變。在實際的資料集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試資料中的正負樣本的分佈也可能隨著時間變化。
2.3.4代價敏感錯誤率與代價曲線 P35
沒看太懂,希望參考R或python程式碼理解。