西瓜書筆記
第2章 模型評估與選擇
訓練集上的誤差稱為訓練誤差或經驗誤差。
新樣本上的誤差稱為泛化誤差。
測試集上的測試誤差作為泛化誤差的近似。
過擬合無法避免,只能緩解。
訓練/測試集的劃分要儘可能保持資料分佈的一致性,例如在分類任務中至少要保持樣本比例相似。
保留類別比例的取樣方式通常稱為分層取樣。
自助取樣(有放回取樣):通過自主取樣,初始資料集中約有36.8%的樣本未出現在取樣資料集中。
第3章 線性模型
類別不平衡問題:欠取樣或者過取樣。過取樣不能簡單地對初始正例樣本進行重複取樣,否則會招致嚴重的過擬合,過取樣的代表演算法SMOTE是通過對訓練集裡的正例進行差值來產生額外的正例;欠取樣法的代表演算法EasyEnsemble是利用整合學習機制,將反例劃分為若干個集合供不同學習器使用,這樣對每個學習器來看都進行了欠取樣,但在全域性來看卻不會丟失重要資訊。
第4章 決策樹
資訊熵是度量樣本集合純度最常用的一種指標。假定當前樣本集合中第 \(k\) 類樣本所佔的比例為\(p_k(k=1,2...,|\gamma|)\),則 \(D\) 的資訊熵定義為
\[Ent(D) = -\sum_{k=1}^{|\gamma|}p_k\log_2p_k \]資訊熵越小,純度越高。
用屬性 \(a\) 對樣本集 \(D\) 進行劃分所獲得的資訊增益
\[Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) \]資訊增益越大,使用屬性 \(a\) 來進行劃分所獲得的純度提升越大,ID3決策樹學習演算法就是以資訊增益為準則來選擇劃分屬性。
C4.5決策樹演算法使用增益率來選擇最優劃分屬性,增益率定義為
\[Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} \]其中
\[IV(a)={-\sum_{v=1}^V\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|}} \]CART決策樹使用基尼指數來選擇劃分屬性,資料集D的純度可用基尼值來度量:
\[Gini(D)=\sum_{k=1}^{|\gamma|}\sum_{k'\neq k}p_kp_{k'}\\=1-\sum_{k=1}^{|\gamma|}p_k^2 \]\(Gini(D)\)反映了從資料集D中隨機抽取兩個樣本,其類別標記不一致的概率,該值越小,資料集純度越高
屬性\(a\)的基尼指數定義為
\[Gini_index(D,a)=\sum_{v=1}^V\frac{|D^v|}{|D|}Gini(D^v) \]選擇那個使得劃分後基尼指數最小的屬性作為最優劃分屬性。
第5章 神經網路
有兩種策略用來緩解BP網路的過擬合,一種是早停,若訓練集誤差降低但驗證集誤差升高,則停止訓練。第二種是正則化,加一個懲罰項。
現實任務中,人們常採用以下策略,來試圖跳出區域性極小,從而進一步接近全劇最小:
-
以多組不同引數值初始化,取其中誤差最小的解作為最終引數。
-
使用模擬退火,模擬退火在每一步都以一定概率接受比當前解更差的結果,從而有助跳出區域性極小。
-
使用隨機梯度下降。
第6章 支援向量機
距離超平面最近的訓練樣本點稱為支援向量,兩個異類支援向量到超平面的距離之和為
\[\gamma=\frac{2}{\|w\|} \]它被稱為“間隔”。要找到具有“最大間隔”的劃分超平面,即
\[\max_{w,b} \frac{2}{\|w\|}\\ s.t.\ \ y_i(w^Tx_i+b) \geq 1, i=1,2,...,m \]可重寫為
\[\min_{w,b} \frac{1}{2}\|w\|^2\\ s.t.\ \ y_i(w^Tx_i+b) \geq 1, i=1,2,...,m \]對上式使用拉格朗日乘子法可得到其對偶問題,對每條約束新增拉格朗日乘子\(\alpha_i\geq0\),則該問題的拉格朗日函式可寫為
\[L(w,b,\alpha)=\frac{1}{2}\|w\|^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b)) \]令\(L(w,b,\alpha)\)對\(w\)和\(b\)的偏導為零可得
\[w=\sum_{i=1}^m\alpha_iy_ix_i\\ 0=\sum_{i=1}^m\alpha_iy_i \]即可得到對偶問題。
svm的一個重要性質:訓練完成後,大部分的訓練樣本都不需要保留,最終模型僅與支援向量有關。
核函式:將樣本從原始空間對映到一個更高維的特徵空間,使得樣本在這個特徵空間內線性可分,如果原始空間是有限維,即屬性數有限,那麼一定存在一個高維特徵空間使樣本可分。
軟間隔svm:允許svm在一些樣本上出錯
硬間隔svm:所有樣本都必須劃分正確
SVR假設我們能容忍\(f(x)\)與\(y\)之間最多有\(\epsilon\)的偏差,即僅當\(f(x)\)與\(y\)之間的差別絕對值大於\(\epsilon\)時才計算損失
第7章 貝葉斯分類器
樸素貝葉斯
樸素:假設各個特徵之間相互獨立,由此可以簡化計算
貝葉斯公式
\[p(A|B) = \frac{P(B|A)P(A)}{P(B)} \]優點:
(1)演算法邏輯簡單,易於實現
(2)分類過程中時空開銷小
缺點:理論上,樸素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實際上並非總是如此,這是因為樸素貝葉斯模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,在屬性個數比較多或者屬性之間相關性較大時,分類效果不好。
第8章 整合學習
整合中只包含同種型別的個體學習器,這樣的整合是同質的,同質整合中的個體學習器叫基學習器,相應的學習演算法稱為基學習演算法。
整合中包含不同種類型的個體學習器,這樣的整合是異質的,異質整合中的個體學習器叫組間學習器。
要獲得好的整合,個體學習器應好而不同,即個體學習器要有一定的準確性,要有多樣性。
整合學習大致分為兩大類,即個體學習器間存在強依賴關係、必須序列生成的序列化方法,以及個體學習器間不存在強依賴關係、可同時生成的並行化方法;前者代表是Boosting,後者代表是Bagging和隨機森林。
Boosting
Boosting是一族可將弱學習器提升為強學習器的演算法,工作機制:先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練樣本分佈進行調整,使得先前基學習器做錯的訓練樣本在後續受到更多關注,然後基於調整後的樣本分佈來訓練下一個基學習器;如此重複進行,直至基學習器數目達到事先指定的值\(T\),最終將這\(T\)個基學習器進行加權結合。
Boosting主要關注降低偏差。能基於泛化效能相當弱的學習期構建出很強的整合。
Bagging
Bagging使用有放回取樣(bootstrap sampling)採集到T個樣本集,對每個樣本集訓練出一個基學習器,對分類任務使用簡單投票法,迴歸任務使用簡單平均法。
Stacking
當訓練資料很多時,一種更為強大的結合策略是使用“學習法”,例如Stacking,先從初始訓練集訓練出初級學習器,然後生成一個新資料集用於訓練次級學習器,在這個新資料集中,初級學習器的輸出被當作樣例輸入特徵,而初始樣本的標記仍被當做樣例標記
第9章 聚類
距離聚類Kmeans
- 假定我們要對N個樣本觀測做聚類,要求聚為K類,首先選擇K個點作為初始中心點;
- 接下來,按照距離初始中心點最小的原則,把所有觀測分到各中心點所在的類中;
- 每類中有若干個觀測,計算K個類中所有樣本點的均值,作為第二次迭代的K箇中心點;
- 然後根據這個中心重複第2、3步,直到收斂(中心點不再改變或達到指定的迭代次數),聚類過程結束。
第10章 降維
KNN
KNN的原理就是當預測一個新的值x的時候,根據它距離最近的K個點是什麼類別來判斷x屬於哪個類別
PCA
PCA的主要思想是將n維特徵對映到k維上,這k維是全新的正交特徵也被稱為主成分,是在原有n維特徵的基礎上重新構造出來的k維特徵。PCA的工作就是從原始的空間中順序地找一組相互正交的座標軸,新的座標軸的選擇與資料本身是密切相關的。其中,第一個新座標軸選擇是原始資料中方差最大的方向,第二個新座標軸選取是與第一個座標軸正交的平面中使得方差最大的,第三個軸是與第1,2個軸正交的平面中方差最大的。依次類推,可以得到n個這樣的座標軸。通過這種方式獲得的新的座標軸,我們發現,大部分方差都包含在前面k個座標軸中,後面的座標軸所含的方差幾乎為0。於是,我們可以忽略餘下的座標軸,只保留前面k個含有絕大部分方差的座標軸。事實上,這相當於只保留包含絕大部分方差的維度特徵,而忽略包含方差幾乎為0的特徵維度,實現對資料特徵的降維處理。