機器學習(一)基礎常用損失函數、評價指標、距離、指標
機器學習(一)
1.基礎
1.1 數據集划分方式
- 留出法
- 按正負例比例划分數據集,多次訓練模型取平均
- 交叉驗證
- k折交叉驗證形成k個數據集,每次取其中的1k1k作為驗證集
-
Bootstrapping
- 每次從樣本容量為D的集合重復的取元素D次,形成新的樣本容量為D數據集
- 某一樣樣本始終不出現的概率為 (1−1D)D(1−1D)D,取極限后,limD→∞(1−1D)D≈1elimD→∞(1−1D)D≈1e,約為0.368
-
比較
- 自助法適合於數據集小,難以有效划分的訓練集測試集使用,此外划分不同的訓練集測試集適合集成學習。
- 自助法改變了數據的初始分布,引入估計偏差,數據量足夠交叉驗證更多使用。
- 交叉驗證可以降低模型的方差,更加穩定
1.2 常用損失函數
-
L2損失
loss=1n∑i=1n(y^i−yi)2(1)(1)loss=1n∑i=1n(y^i−yi)2 -
L1損失
loss=1n∑i=1n|y^i−yi|(2)(2)loss=1n∑i=1n|y^i−yi|
L1 不可導,可采用坐標軸下降的方式進行計算- 延着坐標軸的方向進行參數的更新,不依賴於梯度
- 每次更新固定m-1個參數,只對一個參數進行優化,求局部極小值點
- 對於可微凸函數,如果參數的一個解在對於函數在某個坐標軸上能達到最小值,那么這個參數就是f的全局最小點
- 坐標軸下降法在每次迭代中在當前點處沿一個坐標方向進行一維搜索 ,固定其他的坐標方向,找到一個函數的局部極小值。而梯度下降總是沿着梯度的負方向求函數的局部最小值
-
交叉熵損失 nn
loss=−1n∑i=1n∑j=1kyijlogy^ij(3)(3)loss=−1n∑i=1n∑j=1kyijlogy^ij -
指數損失 Adaboost
loss=1n∑i=1ne−yiy^i(4)(4)loss=1n∑i=1ne−yiy^i -
Hinge loss svm
loss=1n∑i=1nCmax(0,1−yy^)+Ω(y^)(5)(5)loss=1n∑i=1nCmax(0,1−yy^)+Ω(y^)
經驗風險 + 結構風險
1.3 常用性能度量
- 准確率
Accuracy=TP+TNN(6)(6)Accuracy=TP+TNN
- 准確率在類別極度不平衡問題上,作為評級指標不是十分合適。例如,1000個樣本中,990個正例,10個負例,分類器預測准確率為90%,而全將樣本作為正例都有99%的准確率。
- 查准率
Precision=TPTP+FP(7)(7)Precision=TPTP+FP
- 查准率可以理解為,分類器判斷的正例中有多少是正確的。
- 查全率
Recall=TPTP+FN(8)(8)Recall=TPTP+FN
- 查全率可以理解為,分類器找出了多少的正例。
- F1值
F1=2PRP+R(9)(9)F1=2PRP+R
- P, R成反向趨勢,P增加R減少,F1綜合考慮了P、R
- P(縱軸)-R(橫軸) 曲線
- 以學習器的預測結果對樣例進行排序,排在前面的認為是正例,排在后面的認為是負例,則可以計算當前的P-R值。
- 曲線底下面積越大一般來說性能越好。
- Precision@k RecSys
Precision@k=∑ni=1rec(ui,k)∩I(ui)n∗k(10)(10)Precision@k=∑i=1nrec(ui,k)∩I(ui)n∗k - Recall@k RecSys
Recall@k=∑ni=1rec(ui,k)∩I(ui)∑ni=1|I(ui)|(11)(11)Recall@k=∑i=1nrec(ui,k)∩I(ui)∑i=1n|I(ui)| - ROC 曲線
TPR=TPTP+FN(12)(12)TPR=TPTP+FN
FPR=FPTN+FP(13)(13)FPR=FPTN+FP
- ROC 曲線泛化性能的好壞,縱軸為真正率,橫軸為假正率,逐個將樣本作為正例,得到ROC曲線
- AUC
- AUC為ROC曲線底下面積
- 分類器在二分類時預測概率,需要設置閾值判斷正負例。
- 考慮的是樣本預測排序質量,與排序損失緊密聯系。
Rank Loss=1m+m−∑x+∈D+∑x−∈D−(I(f(x+)<f(x−))+12(I(f(x+)=f(x−)))(14)(14)Rank Loss=1m+m−∑x+∈D+∑x−∈D−(I(f(x+)<f(x−))+12(I(f(x+)=f(x−)))
AUC=1−Rank LossAUC=1−Rank Loss - 排序質量的好壞綜合體現了學習器期望泛化性能的好壞,重視查准率在排序靠前的位置截斷,重視查全率在排序靠后的位置截斷
1.4 常用距離、相似度
- 閔可夫斯基距離
dist(xi,xj)=(∑k=1n|xik−xjk|p)1p(15)(15)dist(xi,xj)=(∑k=1n|xik−xjk|p)1p
- p=2,歐式距離
- p=1,曼哈頓距離
- 馬氏距離
dist(xi,xj)=(xi−xj)Ts−1(xi−xj)−−−−−−−−−−−−−−−−−−√(16)(16)dist(xi,xj)=(xi−xj)Ts−1(xi−xj)
- 閔可夫斯基距離在使用之前需要標准化,而馬氏距離不需要
- 馬氏距離 與量綱無關,排除了變量之間相關性的干擾
- 余弦相似度
sim(xi,xj)=xi⋅xj||xi||⋅||xj||(17)(17)sim(xi,xj)=xi⋅xj||xi||⋅||xj|| - 皮爾遜相關系數
sim(xi,xj)=(xi−μi)⋅(xj−μj)||(xi−μi)||⋅||xj−μj||(18)(18)sim(xi,xj)=(xi−μi)⋅(xj−μj)||(xi−μi)||⋅||xj−μj||
- 對余弦相似度去中心化
- TF IDF
TF(xi)=Nxi∑mk=1Nxk(19)(19)TF(xi)=Nxi∑k=1mNxk
IDF(xi)=log|D|1+|Dcontain_xi|(20)(20)IDF(xi)=log|D|1+|Dcontain_xi|
TF−IDF(xi)=TF(xi)⋅IDF(xi)(21)(21)TF−IDF(xi)=TF(xi)⋅IDF(xi)
1.5 信息論指標
- 熵
H(x)=−∑xp(x)logp(x)(22)(22)H(x)=−∑xp(x)logp(x)
- 熵可以看成是觀察事件X發生后我們獲得的期望信息量,H(x)越大,那么說明我們獲得的信息量越大
- 條件熵
H(x|z)=−∑x∑zp(x,z)logp(x|z)=∑xp(x)H(x|Z=z)(22)(22)H(x|z)=−∑x∑zp(x,z)logp(x|z)=∑xp(x)H(x|Z=z)
- 表明已知z對x帶來的期望信息
- 相對熵
KL(p||q)=∑xp(x)logp(x)q(x)(23)(23)KL(p||q)=∑xp(x)logp(x)q(x)
- KL散度衡量概率密度的距離 相對於原分布p,分布q損失的信息量。
- 互信息、信息增益
Gain(x,z)=H(x)−H(x|z)(24)(24)Gain(x,z)=H(x)−H(x|z)
- 已知特征z為識別x帶來了多少的信息。
- 信息增益
GainRatio(x,z)=H(x)−H(x|z)Hx(z)(25)(25)GainRatio(x,z)=H(x)−H(x|z)Hx(z) - Gini指數
Gini(D)=1−∑i=1cp2i(26)(26)Gini(D)=1−∑i=1cpi2
-
(Keras)——keras 損失函數與評價指標詳解
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。1、目標函數
(1)mean_squared_error / mse 均方誤差,常用的目標函數,公式為((y_pred-y_true)**2).mean()
(2)mean_absolute_error / mae 絕對值均差,公式為(|y_pred-y_true|).mean()
(3) mean_absolute_percentage_error / mape公式為:(|(y_true - y_pred) / clip((|y_true|),epsilon, infinite)|).mean(axis=-1) * 100,和mae的區別就是,累加的是(預測值與實際值的差)除以(剔除不介於epsilon和infinite之間的實際值),然后求均值。
(4)mean_squared_logarithmic_error / msle公式為: (log(clip(y_pred, epsilon, infinite)+1)- log(clip(y_true, epsilon,infinite)+1.))^2.mean(axis=-1),這個就是加入了log對數,剔除不介於epsilon和infinite之間的預測值與實際值之后,然后取對數,作差,平方,累加求均值。
(5)squared_hinge 公式為:(max(1-y_truey_pred,0))^2.mean(axis=-1),取1減去預測值與實際值乘積的結果與0比相對大的值的平方的累加均值。
(6)hinge 公式為:(max(1-y_truey_pred,0)).mean(axis=-1),取1減去預測值與實際值乘積的結果與0比相對大的值的的累加均值。
(7)binary_crossentropy: 常說的邏輯回歸, 就是常用的交叉熵函
(8)categorical_crossentropy: 多分類的邏輯2、性能評估函數:
(1)binary_accuracy: 對二分類問題,計算在所有預測值上的平均正確率
(2)categorical_accuracy:對多分類問題,計算再所有預測值上的平均正確率
(3)sparse_categorical_accuracy:與categorical_accuracy相同,在對稀疏的目標值預測時有用
(4)top_k_categorical_accracy: 計算top-k正確率,當預測值的前k個值中存在目標類別即認為預測正確
(5)sparse_top_k_categorical_accuracy:與top_k_categorical_accracy作用相同,但適用於稀疏情況