二戰周志華《機器學習》-3-6章知識點拾遺

1、第三章:線性模型

多分類學習:不失一般性,考慮N個類別,多分類學習的基本思路是"拆解法",即將多分類任務拆為若干個二分類任務求解。具體來說,先對問題進行拆分,然后為拆出的每個二分類任務訓練一個分類器;在測試時,對這些分類器的預測結果進行集成以獲得最終的多分類結果。
最經典的拆分策略有三種:一對一,一對其余,多對多。

多分類學習:一對一策略(OvO):給定數據集D,其中有N個分類,那么一對一的策略將這N個類別兩兩配對,從而產生N(N-1)/2個二分類任務,例如OvO將為區分類別Ci和Cj訓練一個分類器,該分類器把D中的Ci類樣例作為正例,Cj類樣例作為反例。在測試階段,新樣本將同時提交給所有分類器,于是我們會得到N(N-1)/2個結果,最終結果可通過投票產生:即把被預測的最多的類別作為最終的分類結果。

多分類學習:一對多策略(OvR):OvR則是每次講一個類的樣例作為正例,所有其他類的樣例作為反例來訓練N個分類器,在測試時若僅有一個分類器預測為正類,則對應的類別標記便是最終的分類結果,如果有多個分類器預測為正類,則通常考慮各分類器的預測置信度,選擇置信度最大的類別標記作為分類結果。

下圖展示了OvO和OvR策略的示意圖:

多分類學習:多對賭策略(MvM):MvM每次將若干個類作為正類,若干個其他類作為反類,MvM的正反類構造必須有特殊的設計,不能隨意選取,這里我們介紹一種最常用的MvM技術,“糾錯輸出碼”(EOOC):
EOOC是將編碼的思想引入類別拆分,并盡可能在解碼過程中具有容錯性,EOOC的工作過程主要分為兩步:
編碼:對N個類別做M次劃分,每次劃分將一部分類別劃分為正類,一部分劃分為反類,從而形成一個二分類訓練集;這樣一共產生M個訓練集,可訓練出M個分類器。
解碼:M個分類器分別對測試樣本進行預測,這些預測標記組成一個編碼,將這個預測編碼與每個類別各自的編碼進行比較,返回其中距離最小的類別作為最終預測結果。
類別劃分通過編碼矩陣指定,編碼矩陣有多種形式,最常見的是二元碼和三元碼,前者將每個類別分別指定為正類和反類,后者在這個基礎上增加了停用類。如下是EOOC的示意圖:

2、第四章:決策樹

連續值處理:最簡單的策略是采用二分法,連續屬性如果有N個取值,則有N-1個分割點,然后就可以對這N-1個分割點分別計算其信息增益,以選取最好的分割點。

缺失值處理:直接上圖:

3、第五章:神經網絡

如何跳出局部極小:神經網絡中容易陷入局部極小的問題,那么實際中如何跳出局部極小呢?主要有以下幾種策略:
1)以多組不同的參數值初始化多個神經網絡,按標準方法訓練后,取其中誤差最小的解作為最終參數,這相當于從多個不同的初始點開始搜索,這樣就可能陷入不同的局部極小,從中進行選擇有可能獲得更接近全局最小的結果。
2)模擬退火,模擬退火在每一步都以一定的概率接受比當前解更差的結果,從而有助于跳出局部極小,在每步迭代過程中,接受次優解的概率要隨著時間的推移而逐漸降低,從而保證算法的穩定性。
3)使用隨機梯度下降,與標準梯度下降法精確計算梯度不同,隨機梯度下降法在計算梯度時加入了隨機因素,于是,即便陷入局部極小點,它計算出的梯度仍可能不為0,這樣就有機會跳出局部極小繼續搜索。
4)遺傳方法也經常用來訓練神經網絡以更好的逼近全局最小。

4、第六章:支持向量機

支持向量機回歸SVR

這樣我們可以得到一個帶正則項的損失函數:

可以看到,這個誤差函數中后面一部分與SVM中的目標函數類似,我們再將二次誤差函數替換為?個? -不敏感誤差函數,于是SVR問題可形式為:

? -不敏感誤差函數如下:

通過引入松弛變量的方式,我們可以重新表達最優化問題。對于每個數據點xn,我們現在需要兩個松弛變量,如下圖所示:

目標點位于上圖管道中的條件為:

引入松弛變量之后,在上圖中管道上下兩側的點滿足的條件為:

這樣,支持向量回歸機的優化問題可以寫為:

同樣,使用拉格朗日乘子法將約束條件帶入目標函數中:

同樣使用SVM中求解對偶問題的思路,可以得到:

使用這些結果消去拉格朗日函數中對應的變量,得到SVR的對偶問題:

這樣,得到的SVR回歸模型為:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容