天天看點

讀書筆記 | 《機器學習》(周志華)

記錄《機器學習》(周志華)的相關閱讀筆記。

文章目錄

    • 第1章 緒論
    • 第2章 模型評估與選擇
    • 第3章 線性模型
    • 第4章 決策樹

第1章 緒論

  • 模型預測的是離散值,稱為分類;預測的是連續值,稱為回歸。
  • 機器學習算法在學習過程中對某種類型假設的偏好,稱為"歸納偏好"。歸納偏好對應了學習算法本身所做出的關于"什麼樣的模型更好"的假設。

第2章 模型評估與選擇

  • 學習器在訓練集上的誤差稱為"訓練誤差"或"經驗誤差",在新樣本的誤差稱為"泛化誤差"。
  • 把訓練樣本自身的一些特點當作了所有潛在樣本都會具有的一般性質,這樣就會導緻泛化性能下降。這種現象在機器學習中稱為"過拟合";對訓練樣本的一般性質尚未學好,稱為"欠拟合"。(多種因素可能導緻過拟合,其中最常見的情況是由于學習能力過于強大,以至于把訓練樣本所包含的不太一般的特效都學到了,而欠拟合則通常是由于學習能力低下而造成的)。
  • 資料集劃分的方法:
  1. 留出法:将資料集D劃分為兩個互斥的集合,其中一個集合作為訓練集S,另一個作為測速集T,即 D = S ∪ U D = S{\cup}U D=S∪U, S ∩ T = ∅ S{\cap}T={\varnothing} S∩T=∅.在S上訓練出模型後,用T來評估其測試誤差,作為對泛化誤差的估計。(如果從采樣的角度來看待資料集的劃分過程,則保留類别比例的采樣方式通常稱為"分層采樣")
  2. 交叉驗證法:先将資料集D劃分為k個大小相似的互斥子集,即 D = D 1 ∪ D 2 ∪ . . . ∪ D k , D i ∩ D j = ∅ ( i ≠ j ) D=D_1{\cup}D_2{\cup}...{\cup}D_k,D_i{\cap}D_j={\varnothing}(i{\neq}j) D=D1​∪D2​∪...∪Dk​,Di​∩Dj​=∅(i​=j),每個子集 D i D_i Di​都盡可能保持資料分布的一緻性,即從D中通過分層采樣得到。然後,每次用k-1個子集的并集作為訓練集,餘下的那個子集作為測試集;這樣就可獲得k組訓練/測試集,進而可進行k次訓練和測試,最終傳回的是這k個測試結果的均值。(k最常用的取值是10,此時稱為10折交叉驗證;假定資料集D中包含m個樣本,若令k=m,則得到了交叉驗證法的一個特例:留一法(leave-One-Out))
  3. 自助法(bootstrapping):每次随機從D中挑選一個樣本,将其拷貝放入D’,然後再将該樣本放回初始資料集D中,使得該樣本在下次采樣時仍有可能被采到;這個過程重複執行m次後,就得到了包含m個樣本的資料集D’,樣本在m次采樣中始終不被采到的機率是 ( 1 − 1 m ) m (1-\frac{1}{m})^m (1−m1​)m,去極限得到 lim ⁡ m → ∞ 1 − 1 m ) m = 1 e ≈ 0.368 \lim_{m{\to}{\infty}}1-\frac{1}{m})^m=\frac{1}{e}{\approx}0.368 limm→∞​1−m1​)m=e1​≈0.368,初始資料集D中約有36.8%的樣本未出現在采樣資料集D’中,将D’用作訓練集,D-D’用作測試集。(自助法産生的資料集改變了初始資料集的分布,這會引入估計偏差)
  • 通常把學得模型在實際使用中遇到的資料稱為測試資料;模型評估與選擇中用于評估測試的資料集常稱為"驗證集"
  • 回歸任務最常用的性能度量是"均方誤差": E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D)=\frac{1}{m}\sum_{i=1}^{m}{(f(x_i)-y_i)^2} E(f;D)=m1​∑i=1m​(f(xi​)−yi​)2
  • 查準率(precision)、查全率(recall)

    P = T P T P + F P , R = T P T P + F N P = \frac{TP}{TP+FP},R=\frac{TP}{TP+FN} P=TP+FPTP​,R=TP+FNTP​

真實情況 預測結果
正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)
  • 以查準率為縱軸、查全率為橫軸作圖,得到查準率-查全率曲線,簡稱"P-R曲線"。(可以根據P-R曲線下面積的大小判斷模型的性能)
  • F1度量的一般形式 F β F_{\beta} Fβ​,可以表達出對查準率/查全率的不同偏好, F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_{\beta}=\frac{(1+{\beta}^2)×P×R}{({\beta}^2×P)+R} Fβ​=(β2×P)+R(1+β2)×P×R​,其中 β > 0 {\beta}>0 β>0度量了查全率對查準率的相對重要性. β = 1 {\beta}=1 β=1時退化為标準的F1; β > 1 {\beta}>1 β>1時查全率有更大影響; β < 1 {\beta}<1 β<1時查準率有更大影響。
  • 進行多次訓練/測試,每次得到一個混淆矩陣,先在各個混淆矩陣上分别計算出查準率和查全率,再計算平均值,得到宏查準率、宏查全率和宏F1;先将各混淆矩陣的對應元素進行平均,得到TP、FP、TN、FN的平均值,再基于這些平均值計算出微查準率、微查全率和微F1。
  • 根據學習器的預測結果對樣例進行排序,按此順序逐個把樣本作為正例進行預測,每次計算出兩個重要量的值,分别以它們為橫、縱坐标作圖,就得到了ROC曲線。ROC曲線的縱軸是"真正例率(True Positive Rate,簡稱TPR)",橫軸是"假正例率(False Positive Rate,簡稱FPR)"。

    T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP​, F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP​

  • ROC曲線的繪圖過程:給定 m + m^+ m+個正例和 m − m^- m−個負例,根據學習器預測結果對樣例進行排序,然後把分類閥值設為最大,即把所有樣本均預測為反例,此時真正例率和假正例率均為0,在坐标(0,0)處标記一個點。然後,将分類閥值依次設為每個樣例的預測值,即依次将每個樣例劃分為正例。設前一個标記點坐标為(x,y),目前若為真正例,則對應标記點的坐标為 ( x , y + 1 m + ) (x,y+\frac{1}{m^+}) (x,y+m+1​);目前若為假正例,則對應标記點的坐标為 ( x + 1 m − , y ) (x+\frac{1}{m^-},y) (x+m−1​,y),然後用線段連接配接相鄰點得到。
  • ROC曲線判斷模型的性能可以比較ROC曲線下的面積,即AUC, A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ( y i + y i + 1 ) AUC=\frac{1}{2}{\sum}_{i=1}^{m-1}(x_{i+1}-x_i)(y_i+y_{i+1}) AUC=21​∑i=1m−1​(xi+1​−xi​)(yi​+yi+1​)。 A U C = 1 − l r a n k AUC=1-l_{rank} AUC=1−lrank​,其中 l r a n k l_rank lr​ank為排序損失。
  • 為權衡不同類型錯誤所造成的不同損失,可為錯誤賦予"非均等代價"。可設定一個代價矩陣, c o s t i j cost_{ij} costij​表示将第i類樣本預測為第j類樣本的代價。
真實類别 預測類别
第0類 第1類
第0類 cost01
第1類 cost10
  • 在非均等代價下,ROC曲線不能直接反映出學習器的期望總體代價,而代價曲線可以達到該目的。
  • 2.4 比較檢驗 p37

第3章 線性模型

  • 基于均方誤差最小化來進行模型求解的方法稱為"最小二乘法",線上性回歸中,最小二乘法就是試圖找到一條直線,使所有樣本到直線上的歐式距離之和最小。
  • l n   y = w T x + b ln\ y=w^Tx+b ln y=wTx+b為對數線性回歸,它實際上是在試圖讓 e w T x + b 逼 近 y e^{w^Tx+b}逼近y ewTx+b逼近y,在形式上仍是線性回歸,但實質上已是在求取輸入空間到輸出空間的非線性函數映射。
  • 牛頓法 p59
  • 線性判别分析(Linear Discriminant Analysis):給定訓練樣例集,設法将樣例投影到一條直線上,使得同類樣例的投影點盡可能接近、異類樣例的投影點盡可能遠離;在對新樣本進行分類時,将其投影到同樣的這條直線上,再根據投影點的位置來确定新樣本的類别。p61
  • 考慮N個類别 C 1 , C 2 , . . . , C N C_1,C_2,...,C_N C1​,C2​,...,CN​,多分類學習的基本思路是"拆解法",即将多分類任務拆為若幹個二分類任務求解。最經典的拆分政策有三種:一對一、一對其餘、多對多。
  1. 一對一:将N個類别兩兩配對,進而産生N(N-1)/2個二分類任務。如為區分類别 C i C_i Ci​和 C j C_j Cj​訓練一個分類器,該分類器把D中的 C i C_i Ci​類樣例作為正例, C j C_j Cj​類樣例作為反例。在測試階段,新樣本将同時送出給所有分類器,将得到N(N-1)/2個分類結果,最終結果可通過投票産生:把被預測得最多的類别作為最終分類結果。
  2. 一對其餘:每次将一個類的樣例作為正例,所有其他類的樣例作為反例來訓練N個分類器.在測試時若僅有一個分類器預測為正類,則對應的類别标記作為最終分類結果。p64

第4章 決策樹

繼續閱讀