机器学习(一)
1.基础
1.1 数据集划分方式
- 留出法
- 按正负例比例划分数据集,多次训练模型取平均
- 交叉验证
- k折交叉验证形成k个数据集,每次取其中的 1k 1 k 作为验证集
Bootstrapping
- 每次从样本容量为D的集合重复的取元素D次,形成新的样本容量为D数据集
- 某一样样本始终不出现的概率为 (1−1D)D ( 1 − 1 D ) D ,取极限后, limD→∞(1−1D)D≈1e lim D → ∞ ( 1 − 1 D ) D ≈ 1 e ,约为0.368
比较
- 自助法适合于数据集小,难以有效划分的训练集测试集使用,此外划分不同的训练集测试集适合集成学习。
- 自助法改变了数据的初始分布,引入估计偏差,数据量足够交叉验证更多使用。
- 交叉验证可以降低模型的方差,更加稳定
1.2 常用损失函数
L2损失
loss=1n∑i=1n(y^i−yi)2(1) (1) l o s s = 1 n ∑ i = 1 n ( y ^ i − y i ) 2L1损失
loss=1n∑i=1n|y^i−yi|(2) (2) l o s s = 1 n ∑ i = 1 n | y ^ i − y i |
L1 不可导,可采用坐标轴下降的方式进行计算- 延着坐标轴的方向进行参数的更新,不依赖于梯度
- 每次更新固定m-1个参数,只对一个参数进行优化,求局部极小值点
- 对于可微凸函数,如果参数的一个解在对于函数在某个坐标轴上能达到最小值,那么这个参数就是f的全局最小点
- 坐标轴下降法在每次迭代中在当前点处沿一个坐标方向进行一维搜索 ,固定其他的坐标方向,找到一个函数的局部极小值。而梯度下降总是沿着梯度的负方向求函数的局部最小值
交叉熵损失 nn
loss=−1n∑i=1n∑j=1kyijlogy^ij(3) (3) l o s s = − 1 n ∑ i = 1 n ∑ j = 1 k y i j l o g y ^ i j指数损失 Adaboost
loss=1n∑i=1ne−yiy^i(4) (4) l o s s = 1 n ∑ i = 1 n e − y i y ^ iHinge loss svm
loss=1n∑i=1nCmax(0,1−y