数据集划分
训练集(Training Set):用于模型训练的数据
验证集(Validation Set):也叫作开发集(Dev Set)用来做模型选择(model selection),即做模型的最终优化及确定,用来辅助我们的模型构建
测试集(Test Set):为了测试已经训练好的模型的精确度
常见划分比例
6:2:2或者7:1:2
在深度学习中,98:1:1(假设有百万级数据)
交叉验证
- 使用训练集训练k个模型
- 用k个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)
- 选取代价函数最小的模型
- 用步骤3选出的模型对测试集计算得出推广误差(代价函数的值)
不平衡数据的处理
首先是什么不平衡
举个例子:
y的取值10000条,发现9999条都为正例,其中1条为负例,这是极端的情况。
常见的处理方法有:采样和代价敏感学习
采样有又分为:
具体采样的详解,讲得还算是比较详细
【传送门】
代价敏感学习:是指不同类别的样本提供不同权重,从而让机器学习模型进行学习的一种方法
常见的风险控制、入侵检测等任务,都有严重的数据不平衡现象,那么在算法学习的时候,为少类样本设置更高的学习权重,从而让算法更加专注于少类样本的分类情况,提高少类样本的查全率,但是也会将很多多类样本分类为少类样本,降低少类样本分类的查准率。
评价指标
【传送门】
评价指标已经提及了,这里黄老师给了一个实际案例
正则化、偏差和方差
为什么要标准化/归一化?
答:提升模型精度,不同维度之间的特征在数值上有一定比较新,可以大的提高分类器的准确性。
加速模型收敛,在寻求最优解的过程明显变得平缓,更容易获得正确的收敛到最优解。
大概这么理解:
为标准化的数据就好比没有浇筑沥青水泥的乡村公路,汽车在上面行驶,比较缓慢,当铺好路浇筑沥青水泥过后,道路条件升级,汽车提速,能快速到达目的地!!
【传送门】
这篇博文详细介绍了数据归一化
那么问题来了?
什么时候需要做归一化处理、标准化处理呢?
GOOD !
正则化是针对拟合来讲的。一般有过拟合和欠拟合
过拟合就是
过拟合的处理办法:模型在训练数据上损失函数较小,预测
准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。
欠拟合的处理办法:
常见的正则化有
L
1
和
L
2
L_1和L_2
L1和L2处理办法,以及Dropout正则化
总的来说都是对损失函数在后面加一项式子
【传送门】
总的来说,Dropout解决的是过拟合问题,就是在前向网络传播的时候,让某个神经元以一定概率值P停止工作,提高模型的泛化能力。
偏差和方差