介紹
第一部分 參數(shù)方法——類密度模型參數(shù)估計(jì)
第二部分 監(jiān)督學(xué)習(xí)——分類(基于似然的方法)
第三部分 監(jiān)督學(xué)習(xí)——分類(基于判別式的方法)(參數(shù)方法——判別式參數(shù)估計(jì))
第四部分 監(jiān)督學(xué)習(xí)——回歸
第五部分 監(jiān)督學(xué)習(xí)——關(guān)聯(lián)規(guī)則
第六部分 維度規(guī)約(特征的提取和組合)
第七部分 半?yún)?shù)方法
第八部分 非監(jiān)督學(xué)習(xí)——聚類
第九部分 非參數(shù)方法——密度估計(jì)
第十部分 非參數(shù)方法——決策樹實(shí)現(xiàn)的判別式
第十一部分 多層感知器——非參數(shù)估計(jì)器
第十二部分 局部模型
第十三部分 支持向量機(jī)與核機(jī)器
第十四部分 隱馬爾科夫模型
第十五部分 參數(shù)的貝葉斯估計(jì)
第十六部分 集成學(xué)習(xí)——組合多學(xué)習(xí)器
第十七部分 增強(qiáng)學(xué)習(xí)
第十八部分 機(jī)器學(xué)習(xí)實(shí)驗(yàn)
第十九部分 特征工程與數(shù)據(jù)預(yù)處理
對(duì)一個(gè)給定的應(yīng)用,多種算法都是可行的,那么如何選擇算法,對(duì)比不同的算法呢?這實(shí)際上是這樣一個(gè)問(wèn)題:
如何評(píng)價(jià)一個(gè)學(xué)習(xí)算法在給定應(yīng)用上的好壞?
也就是估計(jì)算法的期望誤差如何,是否能夠以足夠的置信度說(shuō)在之后的實(shí)際應(yīng)用中,期望誤差總是小于某個(gè)給定值?
而如果解決了這個(gè)問(wèn)題,那么在比較不同算法的問(wèn)題上,考慮的就是“是否可以說(shuō)一個(gè)算法的誤差比另一個(gè)算法更低?”。
在評(píng)價(jià)一個(gè)算法時(shí),不能只看訓(xùn)練集上的誤差并據(jù)此來(lái)做出判斷。根據(jù)算法目標(biāo)函數(shù)定義,訓(xùn)練集上的誤差總是小于包含訓(xùn)練時(shí)未見實(shí)例的驗(yàn)證集上的誤差。
類似地,訓(xùn)練誤差不能用于比較兩個(gè)算法。
因此,我們需要一個(gè)不同于訓(xùn)練集的驗(yàn)證集。而且只運(yùn)行一輪訓(xùn)練加檢驗(yàn)是不夠的。一方面因?yàn)?,單一的?xùn)練集和驗(yàn)證集可能因?yàn)檩^小或含有異常值,會(huì)產(chǎn)生誤導(dǎo)。此外,學(xué)習(xí)算法依賴于影響其泛化能力的因素(如一些超參數(shù),輸入模型,初始值等),只運(yùn)行一輪無(wú)法識(shí)別這些因素的影響。只有在學(xué)習(xí)方法的代價(jià)非常高以至于只能訓(xùn)練和驗(yàn)證一次的時(shí)候,才可接受。
每訓(xùn)練一次,在數(shù)據(jù)集上產(chǎn)生一個(gè)學(xué)習(xí)器,并得到一個(gè)驗(yàn)證誤差。對(duì)一個(gè)學(xué)習(xí)算法的評(píng)估基于這些驗(yàn)證誤差的分布。根據(jù)分布來(lái)評(píng)估算法在給定問(wèn)題上的期望誤差,或?qū)⑵渑c其他算法的誤差分布進(jìn)行比較。
這樣,當(dāng)在一個(gè)數(shù)據(jù)集上使用訓(xùn)練集訓(xùn)練學(xué)習(xí)器,在驗(yàn)證集上檢驗(yàn)它的準(zhǔn)確率并試圖提取結(jié)論時(shí),我們所做的就是實(shí)驗(yàn)。
機(jī)器學(xué)習(xí)實(shí)驗(yàn)的因素和響應(yīng)
機(jī)器學(xué)習(xí)的任務(wù)是得到具有最高泛化準(zhǔn)確率、最小復(fù)雜度的學(xué)習(xí)器,同時(shí)希望學(xué)習(xí)器魯棒。
機(jī)器學(xué)習(xí)實(shí)驗(yàn)則是為了達(dá)成機(jī)器學(xué)習(xí)的任務(wù)所進(jìn)行的實(shí)驗(yàn)。一個(gè)實(shí)驗(yàn)是一次檢驗(yàn)或一系列檢驗(yàn),其考察一個(gè)在訓(xùn)練集上訓(xùn)練過(guò)的,能夠?qū)o定輸入產(chǎn)生輸出的學(xué)習(xí)器。實(shí)驗(yàn)中影響輸出的因素包括使用的算法、訓(xùn)練集、輸入特征等。而實(shí)驗(yàn)得到的輸出結(jié)果(如分類準(zhǔn)確率)稱為響應(yīng),不同的因素會(huì)有不同的響應(yīng)。通過(guò)觀察響應(yīng),來(lái)識(shí)別重要的因素,或找出能優(yōu)化響應(yīng)的因素。實(shí)驗(yàn)的目的,是通過(guò)規(guī)劃實(shí)驗(yàn),分析數(shù)據(jù),來(lái)排除隨機(jī)性的影響,得到統(tǒng)計(jì)顯著的結(jié)論,進(jìn)而找到具有最高泛化準(zhǔn)確率、最小復(fù)雜度的學(xué)習(xí)器。
實(shí)驗(yàn)中涉及的因素可以分為可控因素和不可控因素??煽匾蛩匕ň唧w使用的算法、算法的超參數(shù)、輸入的模式、初始值等。不可控因素則包括數(shù)據(jù)中的噪聲、數(shù)據(jù)抽取及優(yōu)化過(guò)程中的隨機(jī)性。
響應(yīng)則是通過(guò)學(xué)習(xí)器輸出產(chǎn)生的。包括檢驗(yàn)集上的平均分類誤差、使用損失函數(shù)的期望誤差等度量準(zhǔn)確率的指標(biāo)測(cè)度。
有了因素和響應(yīng),需要為最佳響應(yīng)找到這些因素的最佳設(shè)置,確定各因素對(duì)響應(yīng)的影響,這也是實(shí)驗(yàn)的目的所在。有多種實(shí)驗(yàn)策略,最常使用的一種策略稱作網(wǎng)格搜索,對(duì)不同的因素取值進(jìn)行組合,分別對(duì)比不同因素設(shè)置的差異。這種方式在各機(jī)器學(xué)習(xí)工具中都有使用。
實(shí)驗(yàn)的基本原則
- 隨機(jī)化
隨機(jī)化要求實(shí)驗(yàn)對(duì)不同因素設(shè)置組合所進(jìn)行的次序應(yīng)該是隨機(jī)的, - 重復(fù)
重復(fù)意味著對(duì)每種不同可控因素的設(shè)置,都應(yīng)該進(jìn)行多次實(shí)驗(yàn)。以便通過(guò)平均抵消不可控因素帶來(lái)的影響。在機(jī)器學(xué)習(xí)中,這通常通過(guò)在相同數(shù)據(jù)集的許多再抽樣的版本上運(yùn)行相同的算法來(lái)實(shí)現(xiàn),也就是交叉驗(yàn)證。 - 阻止
阻止用來(lái)降低有害因素(指影響響應(yīng)但我們對(duì)其不關(guān)心的因素)導(dǎo)致的可變性,保證有害因素不影響實(shí)驗(yàn)的對(duì)比。舉例來(lái)說(shuō),當(dāng)比較不同算法時(shí),其準(zhǔn)確率不僅取決于不同的算法,還取決于不同的訓(xùn)練集。所以為了保證對(duì)比是有意義的,需要保證對(duì)于不同算法,用于進(jìn)行多次訓(xùn)練的不同訓(xùn)練集是一樣的。
機(jī)器學(xué)習(xí)實(shí)驗(yàn)的一些要點(diǎn)
對(duì)于任何機(jī)器學(xué)習(xí)實(shí)驗(yàn)來(lái)說(shuō),步驟都是相同的。唯一的區(qū)別是所收集的響應(yīng)數(shù)據(jù)的抽樣分布。
首先需要明確的是機(jī)器學(xué)習(xí)實(shí)驗(yàn)的研究目標(biāo),我們感興趣的是評(píng)估一個(gè)學(xué)習(xí)算法在特定問(wèn)題上的期望誤差(響應(yīng)度量)。一般情況下,我們會(huì)從多個(gè)算法中選擇具有最低誤差的一個(gè),或?qū)o定數(shù)據(jù)集將它們按誤差排序。
接下來(lái)要明確實(shí)驗(yàn)的因素,它取決于研究目標(biāo)。固定算法的時(shí)候,因素就是要找出的最佳超參數(shù);在比較算法的時(shí)候,因素就是不同的學(xué)習(xí)算法。對(duì)于因素依賴于輸入標(biāo)度的情況(如Parzen窗口的展寬h,不能簡(jiǎn)單地嘗試1,2等絕對(duì)值,這樣會(huì)錯(cuò)失很多數(shù)據(jù)),為了避免錯(cuò)過(guò)好的配置,需要對(duì)其進(jìn)行規(guī)范化,使之不依賴于輸入的標(biāo)度,采用指示標(biāo)度的統(tǒng)計(jì)量。
對(duì)于響應(yīng)變量的選擇,最常用的是誤差,也就是分類問(wèn)題的誤分類錯(cuò)誤或回歸問(wèn)題的均方誤差。此外,還可以使用風(fēng)險(xiǎn)度量(損失函數(shù))。
在結(jié)束機(jī)器學(xué)習(xí)實(shí)驗(yàn)的驗(yàn)證后,選定了某一算法和相應(yīng)的因素,這時(shí)希望給出其期望誤差。為此需要使用另一個(gè)在實(shí)驗(yàn)訓(xùn)練過(guò)程中未曾使用過(guò)的檢驗(yàn)集(test set)。一般地,給定一個(gè)數(shù)據(jù)集,會(huì)留1/3作為檢驗(yàn)集。而其余的做交叉驗(yàn)證產(chǎn)生多組訓(xùn)練集和驗(yàn)證集用于實(shí)驗(yàn)確定超參數(shù),通??梢酝ㄟ^(guò)抽樣來(lái)對(duì)數(shù)據(jù)集進(jìn)行分割。
實(shí)際上,對(duì)于準(zhǔn)確率相差不大的學(xué)習(xí)器,需要很多的檢驗(yàn)集才能予以分辨。如90% 和 90.1%的準(zhǔn)確率,需要檢驗(yàn)集容量達(dá)到10000才可能檢測(cè)到這0.1% 的性能提升。但這0.1%的性能提升有時(shí)候?qū)τ跊Q策非常重要,大數(shù)據(jù)時(shí)代使得我們可以實(shí)現(xiàn)這樣的提升。
通過(guò)機(jī)器學(xué)習(xí)實(shí)驗(yàn)找到最好的因素設(shè)置后,就可以進(jìn)行機(jī)器學(xué)習(xí)任務(wù)了。這時(shí)確定了因素的機(jī)器學(xué)習(xí)任務(wù),可以使用之前實(shí)驗(yàn)過(guò)程中使用的訓(xùn)練和驗(yàn)證集來(lái)作為機(jī)器學(xué)習(xí)任務(wù)的數(shù)據(jù)。
在做實(shí)驗(yàn)的過(guò)程中,最好保留一些中間結(jié)果,尤其是一些大型試驗(yàn)。這樣可以隨時(shí)在需要時(shí)重新運(yùn)行整個(gè)實(shí)驗(yàn)的一部分。實(shí)驗(yàn)過(guò)程中的所有結(jié)果都應(yīng)當(dāng)是可再現(xiàn)的。
交叉驗(yàn)證
給定數(shù)據(jù)集,從該數(shù)據(jù)集中產(chǎn)生
對(duì)訓(xùn)練集/驗(yàn)證集
。要保持訓(xùn)練集和驗(yàn)證集盡可能大,使得誤差的估計(jì)具有魯棒性。往往數(shù)據(jù)集
不夠大,不能簡(jiǎn)單地通過(guò)將其分為K個(gè)部分來(lái)獲得訓(xùn)練集/驗(yàn)證集,而是通過(guò)不同劃分來(lái)重復(fù)使用
,這就成為交叉驗(yàn)證。
在劃分?jǐn)?shù)據(jù)集時(shí),要保持不同集合間的重疊盡可能小。還要確保在抽取子集時(shí),保證各類比例符合實(shí)際,不擾亂類的先驗(yàn)概率,這稱為分層。
K折交叉驗(yàn)證
在折交叉驗(yàn)證時(shí)中,數(shù)據(jù)集
被隨機(jī)地劃分
等分
。并將
份數(shù)據(jù)中的一份保留做驗(yàn)證集,其余
份合并作為訓(xùn)練集,從而產(chǎn)生
對(duì)訓(xùn)練集/驗(yàn)證集。
這種方法比較常見,但也存在一些問(wèn)題。首先其為了保證訓(xùn)練集足夠大,使得驗(yàn)證集較小。其次,訓(xùn)練集相當(dāng)大程度上存在重疊,任意兩份訓(xùn)練集都有份數(shù)據(jù)重疊。實(shí)踐中,K一般取10~30。K越大,訓(xùn)練集的實(shí)例比例就越大。
5
2交叉驗(yàn)證
52交叉驗(yàn)證通過(guò)將數(shù)據(jù)集
均分為兩部分,來(lái)獲得等大小的訓(xùn)練集和驗(yàn)證集。每一次均分通過(guò)隨機(jī)不放回抽樣實(shí)現(xiàn),得到的兩部分?jǐn)?shù)據(jù)
,
分別作為訓(xùn)練集和驗(yàn)證集。一般五次均分得到的十組訓(xùn)練集/驗(yàn)證集已經(jīng)共享了許多實(shí)例,所以不再獲取更多的均分?jǐn)?shù)據(jù)集,所以稱為*2交叉驗(yàn)證。
更多的交叉驗(yàn)證方式和應(yīng)用場(chǎng)景在《scikit-learn 中的交叉驗(yàn)證方法》中結(jié)合 scikit-learn 提供的交叉驗(yàn)證方法進(jìn)行了介紹。
分類器性能的度量
對(duì)于分類器,特別是對(duì)于兩類問(wèn)題,已經(jīng)提出了各種度量。在兩類問(wèn)題中,存在四種情況,正確預(yù)測(cè)的正例(真正true positive),錯(cuò)誤預(yù)測(cè)的正例(假負(fù)false negative),正確預(yù)測(cè)的負(fù)例(真負(fù)true negative),錯(cuò)誤預(yù)測(cè)的負(fù)例(假正false positive)。

在兩類問(wèn)題中存在兩種類型的錯(cuò)誤:假正(TypeⅠerror)、假負(fù)(Type Ⅱ error)。通常所關(guān)注的性能度量有以下幾種:
| 性能度量 | 公式 |
|---|---|
| 真正率(TPR) | |
| 假正率(FPR) | |
| 誤差 | |
| 精度(precision) | |
| 召回率(recall) | 同 真正率(TPR) |
| 靈敏度(sensitivity) | 同 真正率(TPR) |
| 特效型(specificity) | 1 - 假正率(FPR) |
假設(shè)系統(tǒng)返回正例的概率為,對(duì)于負(fù)例有
,并且如果
,則系統(tǒng)預(yù)測(cè)“正的”。如果
接近于1,則幾乎不預(yù)測(cè)為正類,將沒有假正例,但也只有少數(shù)真正例。隨著減小
來(lái)增加真正例數(shù),但同時(shí)又引入假正例的風(fēng)險(xiǎn)。
對(duì)于不同的,得到許多(TPR,FPR)值對(duì),連接它們得到接受者操作特征(ROC)曲線。
![]() ROC曲線
|
![]() 相交的ROC曲線
|
|---|
理想情況下,分類器的真正率為1,假正率為0。因此ROC曲線越靠近左上角的分類器越好。在對(duì)角線上,真決策和假?zèng)Q策一樣多,這時(shí)最壞的情況。如果兩條ROC曲線相交,則在不同的損失條件下,在上方的好于在下方的。
ROC曲線下方的面積稱作AUC,理想情況下,分類器的AUC為1。所以如果一個(gè)分類器的AUC較大,則它更可取。通過(guò)計(jì)算AUC,可以比較不同的分類器在不同損失條件下平均的整體性能。
精度(precision)和召回率(reacll)在則是從返回的符合要求的樣本量的角度來(lái)考慮的。精度是預(yù)測(cè)到的且符合要求的樣本數(shù)除以預(yù)測(cè)到的所有樣本的總數(shù)。召回率則是預(yù)測(cè)到的符合要求的樣本數(shù)除以所有符合要求的樣本的總數(shù)。如果精度是1,則所有預(yù)測(cè)到的數(shù)據(jù)都符合要求,但可能還存在一些符合要求的幾率沒有被預(yù)測(cè)到。而如果召回率是1,則意味著所有符合要求的數(shù)據(jù)都被預(yù)測(cè)到了,但仍然可能預(yù)測(cè)了一些不符合要求的數(shù)據(jù)。
從另一個(gè)角度但以相同的目的,還有兩個(gè)度量,就是靈敏度(sensitivity)和特效型(specificity)。靈敏度與真正率和召回率相同。特效型則度量預(yù)測(cè)負(fù)實(shí)例的好壞程度,是真負(fù)實(shí)例數(shù)除以負(fù)實(shí)例總數(shù)。
對(duì)于K>2個(gè)類,如果使用0/1誤差,則類混淆矩陣是一個(gè)K*K矩陣,其中元素是屬于
類但被分類到
類的實(shí)例個(gè)數(shù)。理想情況下,所有非對(duì)角線元素均應(yīng)為0,表示沒有錯(cuò)誤分類。

