机器学习(一)基础常用损失函数、评价指标、距离、指标
机器学习(一)基础常用损失函数、评价指标、距离、指标
机器学习(一)
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作用相同,但适用于稀疏情况