基本概念
各种函数
- 损失函数(Loss Function)度量单样本****或者一个批次的样本预测的错误程度,损失函数越小,模型就越好。常用的损失函数包括:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等
- 代价函数(Cost Function)度量全部样本集的平均误差。常用的代价函数包括均方误差、均方跟误差、平均绝对误差等
- 目标函数(Object Function)代价函数和正则化函数,最终要优化的函数
特征标准化/数据归一化/标准化
-
数据归一化和标准化都是常用的数据预处理方法,它们的目的是将不同范围的数据映射到相同的范围内,以便更好地进行模型训练
-
为什么要标准化?
- 提升模型精度:不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性
- 加速模型收敛:最优解的寻优过程会明显变得平缓,更容易正确的收敛到最优解
- 自己的理解:在特征的量级较大的时候会占到的 权重会比较大,对模型的影响也比较大
-
什么样的数据需要归一化与标准化?
- 需要数据归一化/标准化
- 线性模型,如基于距离度量的模型包括KNN(K近邻)、K-menas聚类、感知机和SVM。另外,线性回归类的几个模型一般情况下也是需要做数据归一化/标准化处理
- 不需要做数据归一化/标准化
- 决策树、基于决策树的Boosting和Bagging等集成学习模型对于特征取值大小并不敏感,如随机森林、XGBoost、LightGNM等树模型,以及朴素贝叶斯,以上这些模型不需要坐数据归一化/标准化处理
- 需要数据归一化/标准化
-
相关方法
-
归一化(最大-最小规范化)
-
- 数据归一化的目的是使得各特征对目标变量的影响一致,会将特征数据进行伸缩变化,所以数据归一化时会改变特征数据分布
-
Z-Score标准化
-
数据标准化为了不同特征之间具备可比性,经过标准化变换之后的特征数据分布没有发生改变
-
就是当数据特征取值范围或单位差异较大时,最好做一下标准化处理
-
梯度下降
梯度下降的三种形式
-
批量梯度下降:梯度下降的每一步中,都用到了所有的训练样本
-
随机梯度下降:梯度下降的每一步中,用到一个样本,在每一次计算之后便更新参数,而不需要首先将所有的训练集求和
-
小批量梯度下降:梯度下降的每一步中,用到了一定批量的训练样本
正则化
欠拟合的处理
- 添加新特征
- 当特征不足或者现有特征与样本标签相关性不强时,模型容易出现欠拟合。通过挖掘组合特征等新的特征,往往能够取得更好的效果
- 增加模型复杂度
- 简单模型的学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。例如,在线性模型中添加次高项,在神经网络模型中添加网络层数或神经元个数等
- 减小正则化系数
- 正则化用来防止过拟合的,但当模型出现欠拟合现象时,则需要针对性地减小正则化系数
过拟合的处理
- 获得更多的训练数据
- 使用更多的训练数据是解决过拟合问题最有效的手段,因为更多的样本能够让模型学习到更多更有效的特征,减小噪声的影响
- 降维
- 即丢弃一些不能帮助我们正确预测的特征,可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如PCA)
- 正则化
- 正则化的技术,保留所有的特征,但是减少参数的大小(magnitude),它可以改善或者减少过拟合问题
- 集成学习方法
- 集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险