來源:https://zhuanlan.zhihu.com/p/82105066
一.常見手推公式部分
1.1 LR手推、求導(dǎo)、梯度更新
1.2 SVM原形式、對(duì)偶形式
1.3 FM公式推導(dǎo)
1.4 GBDT手推
1.5 XGB推導(dǎo)
1.6 AUC計(jì)算
1.7 神經(jīng)網(wǎng)絡(luò)的反向傳播
二.常見機(jī)器學(xué)習(xí)通用問題
2.1評(píng)價(jià)指標(biāo)
2.1.1 分類問題指標(biāo):
分類問題的評(píng)價(jià)指標(biāo)大多基于混淆矩陣計(jì)算所得

- 正確率(Accuracy):識(shí)別對(duì)了的正例(TP)與負(fù)例(TN)占總識(shí)別樣本的比例。
缺點(diǎn):類別比例不均衡時(shí)影響評(píng)價(jià)效果。

- 精確率(Precision):識(shí)別對(duì)了的正例(TP)占識(shí)別出的正例的比例。其中,識(shí)別出的正例等于識(shí)別對(duì)了的正例加上識(shí)別錯(cuò)了的正例。

- 召回率(Recall):識(shí)別對(duì)了的正例(TP)占實(shí)際總正例的比例。其中,實(shí)際總正例等于識(shí)別對(duì)了的正例加上識(shí)別錯(cuò)了的負(fù)例(真正例+偽負(fù)例)。

- F-Score,是召回率R和精度P的加權(quán)調(diào)和平均,顧名思義即是為了調(diào)和召回率R和精度P之間增減反向的矛盾,該綜合評(píng)價(jià)指標(biāo)F引入了系數(shù)α對(duì)R和P進(jìn)行加權(quán)調(diào)和,表達(dá)式如下:

- ROC曲線,也稱受試者工作特征。以FPR為橫軸,TPR為縱軸,繪制得到的曲線就是ROC曲線。ROC曲線下的面積即為AUC。面積越大代表模型的分類性能越好。

- AUC:隨機(jī)挑選一個(gè)正樣本以及負(fù)樣本,算法將正樣本排在負(fù)樣本前面的概率就是AUC值。 M為正類樣本的數(shù)目,N為負(fù)類樣本的數(shù)目。

特點(diǎn):AUC的評(píng)價(jià)效果不受正負(fù)樣本比例的影響。因?yàn)楦淖冋?fù)樣本比例,橫縱坐標(biāo)大小同時(shí)變化。整體不變。
2.1.2回歸問題評(píng)價(jià)指標(biāo):
- MAE(Mean Absolute Error)是絕對(duì)誤差的平均值??梢愿玫胤从愁A(yù)測(cè)值誤差的實(shí)際情況

- MSE(Mean Square Error)是真實(shí)值與預(yù)測(cè)值的差值的平方然后求和平均。通過平方的形式便于求導(dǎo),所以常被用作線性回歸的損失函數(shù)。

- RMSE(Root Mean Square Error)衡量觀測(cè)值與真實(shí)值之間的偏差。常用來作為機(jī)器學(xué)習(xí)模型預(yù)測(cè)結(jié)果衡量的標(biāo)準(zhǔn)。 受異常點(diǎn)影響較大。

- R-square(決定系數(shù)),分母理解為原始數(shù)據(jù)的離散程度,分子為預(yù)測(cè)數(shù)據(jù)和原始數(shù)據(jù)的誤差,二者相除可以消除原始數(shù)據(jù)離散程度的影響。

2.2優(yōu)化器
2.2.1 梯度下降法(gradient descent)
選擇最陡峭的地方下山——這是梯度下降法的核心思想:它通過每次在當(dāng)前梯度方向(最陡峭的方向)向前“邁”一步,來逐漸逼近函數(shù)的最小值。


梯度下降法根據(jù)每次求解損失函數(shù)LL帶入的樣本數(shù),可以分為:全量梯度下降(計(jì)算所有樣本的損失),批量梯度下降(每次計(jì)算一個(gè)batch樣本的損失)和隨機(jī)梯度下降(每次隨機(jī)選取一個(gè)樣本計(jì)算損失)。
缺點(diǎn):
- 學(xué)習(xí)率設(shè)定問題,如果學(xué)習(xí)速率過小,則會(huì)導(dǎo)致收斂速度很慢。如果學(xué)習(xí)速率過大,那么其會(huì)阻礙收斂,即在極值點(diǎn)附近會(huì)振蕩。
- 模型所有的參數(shù)每次更新都是使用相同的學(xué)習(xí)速率。
- 陷入局部最小值和鞍點(diǎn)。
2.2.2 Momentum
為了解決隨體梯度下降上下波動(dòng),收斂速度慢的問題,提出了Momentum優(yōu)化算法,這個(gè)是基于SGD的,簡單理解,就是為了防止波動(dòng),取前幾次波動(dòng)的平均值當(dāng)做這次的W。

beta為新引入的超參,代表之前的dW的權(quán)重。

缺點(diǎn):
依舊使用同一學(xué)習(xí)率alpha,比較難學(xué)習(xí)一個(gè)較好的學(xué)習(xí)率。
2.2.3 Adagrad
在前面介紹的算法中,每個(gè)模型參數(shù)θi使用相同的學(xué)習(xí)速率η,而Adagrad在每一個(gè)更新步驟中對(duì)于每一個(gè)模型參數(shù)θi使用不同的學(xué)習(xí)速率ηi。其更新方程為:

其中,Gt∈Rd×d是一個(gè)對(duì)角矩陣,其中第i行的對(duì)角元素eii為過去到當(dāng)前第i個(gè)參數(shù)θi的梯度的平方和,epsilon是一個(gè)平滑參數(shù),為了使得分母不為0。
缺點(diǎn):
梯度衰減問題,Gt是不斷增加的,導(dǎo)致學(xué)習(xí)率不斷衰減,最終變得非常小。
2.2.4 RMSprop
RMSprop使用指數(shù)加權(quán)平均來代替歷史梯度的平方和:


RMSprop對(duì)梯度較大的方向減小其學(xué)習(xí)速率,相反的,在梯度較小的方向上增加其學(xué)習(xí)速率。
缺點(diǎn):
仍然需要全局學(xué)習(xí)率:n
2.2.5 Adam
Adam是Momentum 和 RMSprop的結(jié)合,被證明能有效適用于不同神經(jīng)網(wǎng)絡(luò),適用于廣泛的結(jié)構(gòu)。是目前最常用的優(yōu)化方法,優(yōu)勢(shì)明顯。

簡單選擇方法:
數(shù)據(jù)量小可以用SGD。
稀疏數(shù)據(jù)則選擇自適應(yīng)學(xué)習(xí)率的算法;而且,只需設(shè)定初始學(xué)習(xí)率而不用再調(diào)整即很可能實(shí)現(xiàn)最好效果。
Adagrad, Adadelta, RMSprop, Adam可以視為一類算法。RMSprop 與 Adadelta本質(zhì)相同,都是為了解決Adagrad的學(xué)習(xí)率消失問題。
目前來看,無腦用 Adam 似乎已經(jīng)是最佳選擇。
2.3損失函數(shù)
1.損失函數(shù):用來評(píng)價(jià)模型的預(yù)測(cè)值和真實(shí)值不一樣的程度,損失函數(shù)越好,通常模型的性能越好。損失函數(shù)通常作為學(xué)習(xí)準(zhǔn)則與優(yōu)化問題相聯(lián)系,即通過最小化損失函數(shù)求解和評(píng)估模型。
2.期望風(fēng)險(xiǎn):模型定義:
1.損失函數(shù):用來評(píng)價(jià)模型的預(yù)測(cè)值和真實(shí)值不一樣的程度,損失函數(shù)越好,通常模型的性能越好。損失函數(shù)通常作為學(xué)習(xí)準(zhǔn)則與優(yōu)化問題相聯(lián)系,即通過最小化損失函數(shù)求解和評(píng)估模型。
2.期望風(fēng)險(xiǎn):模型 F(x) 關(guān)于聯(lián)合分布 P(X,Y) 的平均意義下的代價(jià)損失,稱為風(fēng)險(xiǎn)函數(shù)(risk function)或期望損失(expected loss)。
3.經(jīng)驗(yàn)風(fēng)險(xiǎn):模型 F(x) 關(guān)于訓(xùn)練數(shù)據(jù)集的平均損失,稱為經(jīng)驗(yàn)風(fēng)險(xiǎn)。當(dāng)樣本量趨于無窮時(shí),經(jīng)驗(yàn)風(fēng)險(xiǎn)趨于期望風(fēng)險(xiǎn)。
4.經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化:基于最小化平均訓(xùn)練誤差的訓(xùn)練過程被稱為經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化。當(dāng)模型是條件概率分布,損失函數(shù)是對(duì)數(shù)損失函數(shù)的時(shí)候,經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化等價(jià)于極大似然估計(jì)。
5.結(jié)構(gòu)風(fēng)險(xiǎn)最小化:指的是經(jīng)驗(yàn)風(fēng)險(xiǎn)+正則化項(xiàng)表示結(jié)構(gòu)風(fēng)險(xiǎn)。是為了防止過擬合而提出來的策略。
分類損失函數(shù):
1.0-1損失函數(shù)

非凸函數(shù),應(yīng)用較少。
2.交叉熵?fù)p失函數(shù)(log對(duì)數(shù)損失函數(shù))

交叉熵實(shí)際上是用于衡量兩個(gè)分布之間的距離。
在二分類中使用 Sigmoid 函數(shù)將模型的輸出壓縮到 (0, 1) 區(qū)間內(nèi),模型判定樣本為正負(fù)的概率分別為:

假設(shè)數(shù)據(jù)點(diǎn)之間獨(dú)立同分布,則似然可以表示為:

對(duì)似然取對(duì)數(shù),然后加負(fù)號(hào)變成最小化負(fù)對(duì)數(shù)似然,即為交叉熵?fù)p失函數(shù)的形式。
對(duì)數(shù)損失函數(shù)和交叉熵?fù)p失函數(shù)是等價(jià)的。

3.合頁損失函數(shù)

hinge損失函數(shù)表示如果被分類正確,損失為0,否則損失就為 1-yF(x)。SVM就是使用這個(gè)損失函數(shù)。
合頁損失不僅懲罰預(yù)測(cè)錯(cuò)的,并且對(duì)于預(yù)測(cè)對(duì)了但是置信度不高的也會(huì)給一個(gè)懲罰,只有置信度高的才會(huì)有零損失。
健壯性相對(duì)較高,對(duì)異常點(diǎn)、噪聲不敏感。
回歸損失函數(shù)
1.均方誤差(Mean Square Error,MSE)
[圖片上傳失敗...(image-7a5629-1629446034617)]
平均絕對(duì)誤差即L1損失,平均絕對(duì)誤差指的就是模型預(yù)測(cè)值 f(x) 與樣本真實(shí)值 y 之間距離的平均值。
MAE 大部分情況下梯度都是相等的,這意味著即使對(duì)于小的損失值,其梯度也是大的。不利于函數(shù)的收斂和模型的學(xué)習(xí)。
2.均方誤差(Mean Square Error,MSE)

均方誤差即L2損失,均方誤差指的就是模型預(yù)測(cè)值 f(x) 與樣本真實(shí)值 y 之間距離平方的平均值。
MSE 曲線的特點(diǎn)是光滑連續(xù)、可導(dǎo),便于使用梯度下降算法,是比較常用的一種損失函數(shù)。而且,MSE 隨著誤差的減小,梯度也在減小,這有利于函數(shù)的收斂。
3.Huber Loss

Huber Loss 包含了一個(gè)超參數(shù) δ。δ 值的大小決定了 Huber Loss 對(duì) MSE 和 MAE 的側(cè)重性。
過擬合問題
- 增加數(shù)據(jù)、添加噪聲
- early stooping
- 數(shù)據(jù)均衡(過采樣、將采樣)
-
正則化(L1,L2)
1.解空間形狀:加入正則化項(xiàng)即為約束條件:形成不同形狀的約束解空間。
2 導(dǎo)數(shù):L2的導(dǎo)數(shù)為2X,平滑。L1導(dǎo)數(shù)為X,-X,存在突變的極值點(diǎn)
3.先驗(yàn):加入正則化項(xiàng)相當(dāng)于引入?yún)?shù)的先驗(yàn)知識(shí):L1引入拉普拉斯,L2引入高斯分布
L1可以做到特征篩選和得到稀疏解。L2加速訓(xùn)練 -
Dropout
減小參數(shù)規(guī)模
隨機(jī)丟棄產(chǎn)生不同網(wǎng)絡(luò),形成集成,解決過擬合,加速訓(xùn)練 -
Batch normolization
加快訓(xùn)練、消除梯度消失(爆炸)、防止過擬合 不適用太小batch、CNN
常見激活函數(shù)
- sigmoid和softmax
sigmoid只做值非線性變化映射到(0,1),用于二分類。
softMax變化過程計(jì)算所有結(jié)果的權(quán)重,使得多值輸出的概率和為1。用于多分類。 指數(shù)運(yùn)算速度慢。梯度飽和消失。 - tanh函數(shù)
雙曲正切函數(shù)。以0為中心,有歸一化的作用。 - ReLu和Leaky ReLu
大于0為1,小于0為0,計(jì)算速度快。
leaky輸入為負(fù)時(shí),梯度仍有值,避免死掉。
樣本不平衡
- 欠采樣:隨機(jī)欠采樣、easysampling、KNN
- 過采樣:隨機(jī)過采樣、SMOTE(人工合成)
- 數(shù)據(jù)增強(qiáng)
- 代價(jià)敏感學(xué)習(xí):誤分類代價(jià)不同
- 適合的評(píng)價(jià)指標(biāo):準(zhǔn)確率、F值、AUC、G-Mean
模型評(píng)估指標(biāo)
- 準(zhǔn)確率、精確率、召回率
- F1score
- roc曲線和AUC
- AUC和logloss
距離衡量與相似度
- 歐幾里得距離、馬哈拉諾比斯距離、曼哈頓距離、切比雪夫距離、明可夫斯基距離、海明距離、編輯距離
- 余弦相似度、皮爾森相關(guān)系數(shù)、Jaccard相似系數(shù)、Tanimoto系數(shù)、對(duì)數(shù)似然相似度/對(duì)數(shù)似然相似率、互信息/信息增益,相對(duì)熵/KL散度、信息檢索--詞頻-逆文檔頻率(TF-IDF)、詞對(duì)相似度--點(diǎn)間互信息
特征選擇的方法
- 目的:簡化模型,降低過擬合,減少內(nèi)存和計(jì)算開銷,增強(qiáng)泛化
- 過濾方法:
覆蓋率、皮爾遜相關(guān)系數(shù)、Fisher、最大方差閾值、卡方檢驗(yàn) - 封裝方法: 完全搜索、啟發(fā)式搜索(隨機(jī)森林,KNN,SVM)
- 嵌入方法: 正則化項(xiàng)(L1)、輸出模型特征重要性
決策樹剪枝
- 預(yù)剪枝:提前結(jié)束決策樹的增長:類目數(shù)量、方差 性能提升
- 后剪枝:決策樹生長完成之后再進(jìn)行剪枝
WOE/IV值計(jì)算公式



常見的數(shù)據(jù)分箱方法
- 等距離(寬)
- 等頻率(深)
- 卡方分箱(有監(jiān)督)
處理海量數(shù)據(jù)方法
- HAsh法:hash映射,hash統(tǒng)計(jì)+堆/歸并/快速排序
- 雙層桶法:重找中位數(shù)(劃分?jǐn)?shù)據(jù)、統(tǒng)計(jì)個(gè)數(shù))
- Bit-map:為每個(gè)數(shù)分配bit,遍歷改變狀態(tài)
- Trie樹、數(shù)據(jù)庫
- 外排序
- map reduce
Kmean缺陷與改進(jìn)
- 確定K值:可視化觀測(cè),試算K:BIC、AIC,平均質(zhì)心距離
- 啟發(fā)迭代:選取質(zhì)心,計(jì)算距離,標(biāo)注樣本,計(jì)算質(zhì)心,迭代計(jì)算距離……
- 缺點(diǎn):K值選取,非凸不收斂、異常點(diǎn)敏感
- 改進(jìn):離群點(diǎn)檢測(cè)、自動(dòng)選取K值
隨機(jī)森林
- 常見調(diào)參:
n_estimators:森林中決策樹的個(gè)數(shù),默認(rèn)是10
criterion:度量分裂質(zhì)量,信息熵或者基尼指數(shù)
max_features:特征數(shù)達(dá)到多大時(shí)進(jìn)行分割
max_depth:樹的最大深度
min_samples_split:分割內(nèi)部節(jié)點(diǎn)所需的最少樣本數(shù)量
bootstrap:是否采用有放回式的抽樣方式
min_impurity_split:樹增長停止的閥值
XGB
- 特征重要性的評(píng)估:損失函數(shù)在特征分裂前后的平均增益

XGB的分裂準(zhǔn)則:損失函數(shù)增益最大化
XGB常用調(diào)參: n_estimators:迭代次數(shù),子樹的數(shù)量
max_depth、min_child_weigh:樹深,孩子節(jié)點(diǎn)最小樣本權(quán)重和
gamma、alpha、lambda:后剪枝比例,L1,L2正則化系數(shù)
subsample、colsample_bytree:樣本采樣、列采樣
eta:削減已學(xué)樹的影響,為后面學(xué)習(xí)騰空間
tree_method:gpu_histGPU 加速
LGB
-常用調(diào)參:
num_iterations、learning_rate:迭代次數(shù),學(xué)習(xí)率
max_depth、min_data_in_leaf、num_leaves:控制樹的大小
lambda_l1、lambda_l2、min_split_gain:L1、L2、最小切分
feature_fraction、bagging_fraction:隨機(jī)采樣特征和數(shù)據(jù)
device:GPU
GBDT、XGB、LGB比較
- XGB比GBDT新增內(nèi)容:
1.損失函數(shù):加入正則化項(xiàng):L1葉子節(jié)點(diǎn)數(shù),L2葉子節(jié)點(diǎn)輸出Score
2.導(dǎo)數(shù):使用代價(jià)函數(shù)的二階展開式來近似表達(dá)殘差
3.基分類器:XGB支持線性分類器做基分類器
4.處理缺失值:尋找分割點(diǎn)時(shí)不考慮缺失值。分別計(jì)算缺失值在左右的增益。測(cè)試首出現(xiàn)缺失,默認(rèn)在右。
5.近似直方圖算法:采用加權(quán)分位數(shù)法來搜索近似最優(yōu)分裂點(diǎn) 6.Shrinkage(縮減):將學(xué)習(xí)到的模型*系數(shù),削減已學(xué)模型的權(quán)重
7.列采樣:特征采樣。
8.并行計(jì)算:特征預(yù)排序,特征分裂增益計(jì)算(均在特征粒度上) - LGB比XGB新增內(nèi)容(GBDT+GOSS+EFB):
1.節(jié)點(diǎn)分裂準(zhǔn)則:XGB一次分裂一層節(jié)點(diǎn)(浪費(fèi)),LGB深度優(yōu)先分裂(過擬合)
2.決策樹算法:基于histogram直方圖分箱操作。減存加速
3.直接支持類別特征,無需獨(dú)熱操作
4.特征并行,數(shù)據(jù)并行
5.GOSS:單邊采樣:保留大梯度樣本,隨機(jī)采樣小梯度樣本
6EFB:歸并很少出現(xiàn)的特征為同一類
Stacking和Blending
LDA、PCA與SVD
線性判別分析 Linear Discriminate Analysis(監(jiān)督)
PCA用于方陣矩陣分解
SVD用于一般矩陣分解 - LDA(類別區(qū)分最大化方向投影)
在標(biāo)簽監(jiān)督下,進(jìn)行類似PCA的主成分分析
構(gòu)造類間的散布矩陣 SB 以及 類內(nèi)散布矩陣 SW - PCA(方差最大化方向投影) 構(gòu)建協(xié)方差矩陣 最大化投影方差:信號(hào)具有較大方差,讓數(shù)據(jù)在主軸方向投影方差最大 最小平方誤差:方差最大,即樣本點(diǎn)到直線距離最?。ㄗ钚∑椒秸`差)
- SVD
左右為正交矩陣:用于壓縮行、列 中間為對(duì)角陣:奇異值
SVM
- 為什么要轉(zhuǎn)化成對(duì)偶形式
方便核函數(shù)的引入(轉(zhuǎn)化后為支持向量內(nèi)積計(jì)算,核函數(shù)可以在低緯中計(jì)算高維的內(nèi)積),改變復(fù)雜度(求W變成求a(支持向量數(shù)量)) - SVM的超參:C和gamma,C正則系數(shù),gamma決定支持向量的數(shù)量
- SVM的核函數(shù)
有效性:核函數(shù)矩陣KK是對(duì)稱半正定矩陣
常見核函數(shù):線性核函數(shù),多項(xiàng)式核函數(shù),高斯核函數(shù),指數(shù)核函數(shù)
區(qū)別:線性簡單,可解釋性強(qiáng),只用于線性可分問題。多項(xiàng)式可解決非線性,參數(shù)太多。高斯只需要一個(gè)參數(shù),計(jì)算慢,容易過擬合。 - 選擇方式
特征維數(shù)高選擇線性核
樣本數(shù)量可觀、特征少選擇高斯核(非線性核)
樣本數(shù)量非常多選擇線性核(避免造成龐大的計(jì)算量)
EM
用于含有隱變量的概率模型參數(shù)的極大似然估計(jì)