機器學習(周志華)第一、二章

卡這本書相對來說還是挺慢的,或許是自己智商不夠吧,也或許是底子太薄哈哈。這裡希望可以將有用的知識點整理起來,主要呢還是為自己,如果有幸可以幫助到同樣是新入坑數據挖掘或者是機器學習的夥伴兒們,當然是再好不過了。

第一章 緒論

1.若預測的是離散值,此類學習任務稱為「分類」,若預測的是連續值,此類學習任務稱為「回歸」

2.對樣本做「聚類」,將訓練集中的西瓜分成若干組,每組稱為一個「簇」,聚類學習中,像「本地瓜」,「淺色瓜」這些概念我們原本不知道,學習過程中使用的訓練樣本通常不標記信息。

3.根據訓練數據集是否擁有標記信息,學習任務大致分為兩大類:「監督學習」和「無監督學習」,分類,回歸是前者的代表,聚類則為後者的代表。

4.學得模型適用於新樣本的能力稱為「泛化」能力。

歸納是特殊到一般的「泛化」過程,演繹是從一般到特殊的「特化」過程

5.可能有多個假設與訓練集一致,即存在著一個與訓練集一致的「假設空間」,我們稱之為樣板空間。

6.機器學習演算法學習過程中對某種類型假設的偏好,稱為"歸納偏好",對有限個樣本點組成的訓練集,存在很多曲線與其一致,於是演算法必須有某種偏好,才能產出它認為正確的模型。Occams razor是一種常用的自然科學研究中最基本的原則,即「若有多個假設與觀察一致,則選擇最簡單的」,學習演算法自身的歸納偏好與問題是否相配,往往起到決定作用。

第二章 模型評估與選擇

1.分類錯誤的樣本數占樣本總數的比例稱為「錯誤率」,如果在m個樣本中有a個樣本分類錯誤,則錯誤率E = a/m,則1 - a/m稱為「精度」,即精度 = 1 - 錯誤率。

2.學習器在訓練集上的誤差稱為「訓練誤差」或經驗誤差,在新樣本上的誤差稱為「泛化誤差」。

3.當學習器把訓練樣本學得「太好了」的時候,很有可能已經把訓練樣本自身的一些特點當作了潛在樣本會具有的一般性質,這樣會導致泛化性能下降,這種現象在機器學習中稱為「過擬合」。訓練樣本的一般性質尚未學好的情況稱為「欠擬合」。

4.通過實驗測試對學習器的泛化誤差進行評估進而做出選擇,需要使用一個「測試集」以測試集的「測試誤差」作為泛化誤差的近似。

5.評估方法:

(1)留出法

直接將數據集D劃分為兩個互斥的集合,訓練集S和測試集T,S訓練出模型後,用T評估其測試誤差,作為對泛化誤差的評估。S/T的劃分儘可能保持數據分布的一致性,採樣角度來看一般採用「分層抽樣」。在使用留出法時,一般採用若干次隨機劃分,重複進行實驗評估後取平均值作為留出法的評估結果。

(2)交叉驗證法

將數據集D通過分層採樣分為k個大小相似的互斥子集,然後每次用k-1個子集做訓練集,餘下的做測試集,可進行k次訓練和測試,取k次測試結果的均值。此法稱為「k折交叉驗證」,常用10,5,20,減少因樣本不同而引入的差別,k折交叉驗證通常隨機使用不同的劃分重複p次,最終結果是p次k折交叉驗證的均值。D中有m個樣本,令k=m,此時稱為留一法

(3)自助法

『自助法』以自助採樣法為基礎,有m個樣本的數據集D,對她採樣產生數據集D:每次從D中隨機挑選一個樣本拷貝放入D,樣本放回初始數據集D;這個過程重複m次,得到包含m個樣本的數據集D。顯然樣本一次都沒有被採到的概率為 (1-1/m)^{m} ,取極限為1/e = 0.388。自助法在數據集較小、難以有效劃分訓練/測試集時很有用,然而自助法產生的數據集改變了初始數據集,這會引入估計偏差。初始數據量足夠時,留出法和交叉驗證法更常用。

6.大多數演算法都有參數需要設定,參數配置不同學得模型的性能往往有顯著差別,因此進行模型評估選擇時,除了對演算法選擇還需要對參數進行設定,即「參數設定」簡稱「調參」。學習演算法很多參數實在實數範圍取值,因此每種參數配置都訓練出模型是不可行的,現實中常用的做法是對每個參數選定一個範圍和變化步長。在計算開銷和性能估計之間做折中,但仍然可能是很大的工程量,參數調的好不好往往對最終模型性能有關鍵性影響。模型選擇完成後,學習演算法和參數配置已選定,此時用數據集D重新訓練模型,這個使用了所有m個樣本的模型才是最終提交用戶的模型。

7.性能度量:

衡量模型泛化能力的評價標準,這就是性能度量,性能度量反映了任務需求,模型的好壞不僅取決於演算法和數據還決定於任務需求。回歸任務常用的性能度量是「均方誤差」。

E(f;D)=1/m sum_{i=1}^{m}{(f(x_{i})-y_{i})}^{2}

(1)錯誤率與精度

分類任務中常用的兩種度量,既適用於二分類任務,也適用於多分類任務。錯誤率

E(f;D) = 1/msum_{i=1}^{m}?{(f(x_{i}) 
e y_{i})}

精度則為 acc(f;D) = 1/msum_{i=1}^{m}?{(f(x_{i}) = y_{i})} = 1 - E(f;D)

對於數據分布D和概率密度函數p(.),錯誤率和精度可以描述為

acc(f;D) = int_{xsim D}^{}?{(f(x_{i}) = y_{i})}p(x)dx = 1 - E(f;D)

?(?)是指示函數,若·為真則取1,否則取0

(2)查准率(precision)、查全率(recall)與F1

若我們關心「挑出的西瓜有多少比例是好瓜」,或者「所有好瓜中多少比例被挑選出來」即我們經常關心「檢索出的信息有多少比例用戶感興趣」和「用戶感興趣的信息被檢索出了多少」,查准率和查全率更為適用此類需求的性能度量。

對於二分類問題,真實類別和機器預測類別組合分為真正例(TP)、假反例(FN)、真反例(TN)、假正例(FP)

則查准率P = frac{TP}{TP + FP} ,查全率 = frac{TP}{TP + FN}

查准率為縱軸查全率為橫軸,得到P-R曲線。若a曲線包住b曲線則可斷言a的性能高於b。若發生交叉,一般在具體的P、R下比較,若非要比出A、B學習器的高低,比較兩者P-R曲線下的面積。

平衡點(BEP)是在查准率等於查全率時的取值,來比較學習性能,但BEP還是過於簡化,更常用F1度量,它是基於P和R的調和平均: frac{1}{F1} = frac{1}{2}*(frac{1}{P} + frac{1}{R}) ,F1度量的一般形式 ,基於兩者的加權調和平均frac{1}{F_{eta}} = frac{1}{1 + eta^{2}}(frac{1}{P} + frac{eta^{2}}{R})eta >1時查全率有更大影響,0< eta <1時查准率有更大影響。

當我們希望在n個二分類混淆矩陣上綜合考慮查准率和查全率時。一種做法計算出(P1,R1)......( P_{n}R_{n} )再求平均稱為宏查X率(macro-R/P/F1)。若先計算出TP,FP,TN,FN的平均值再求P、R和F1則稱為微查X率(micro-P/R/F1)。

(3)ROC與AUC


推薦閱讀:

微分方程和矩陣指數【MIT線代第二十三課】
譜聚類的consistency
如何利用手機遠程調參
極市分享|機器視覺技術在智能檢測產品研發過程中的應用研究
iForest (Isolation Forest)孤立森林 異常檢測 入門篇

TAG:機器學習周志華著書籍 | 數據挖掘 | 機器學習 |