主要内容数据向量化处理
特征放缩
上采样和下采样
重采样和交叉验证
模型验证
python 代码实现
1. 数据向量化处理
对于给定的m个样本,假设最终的拟合函数是
为拟合的权重系数,则有
损失函数改写为矩阵形式
由于
, 可以得出
有公式以得到损失函数的向量表达式
2. 特征放缩
在实际中,我们不同特征的尺度大小,取值范围可能可能相差很大
例如,我们有两个特征,分别是房子的面积以及房子的卧室数。房子的面积取值范围大约是0~300,而卧室数的取值范围在0~5。这样的话,如果我们把它们关于代价函数的等高线图绘制出来的话,形如狭长同心椭圆,一个狭长的椭圆在逼近收敛的时候就会产生震荡,因为横轴方向的参数只要略微变化等高线图中显示的损失函数就会剧烈变化,从而影响收敛准确性。我们的目标是我们特征放缩的目标是把所有的特征放到同一个数量级下面。
方法:均值标准化(Mean normalization)
使用特征值减去它的均值,然后再除以它们的最大值.
3. 过拟合和欠拟合
简单理解:过拟合是在训练数据上表现良好,在未知数据上表现差,欠拟合在训练数据和未知数据上表现都很差。
首先了解泛化概念
泛化:机器学习模型学习到的概念在它处于学习的过程中时模型没有遇见过的样本时候的表现。在机器学习领域中,当我们讨论一个机器学习模型学习和泛化的好坏时,我们通常使用术语,过拟合和欠拟合.
从训练数据中学习目标函数的过程中,我们必须考虑的问题是模型在预测新数据时的泛化性能。泛化好坏是很重要的,因为我们收集到的数据只是样本,其带有噪音并且是不完全的。
Note:如果我们已经知道了目标函数的形式,我们将可以直接用它来做预测,而不是从一堆有噪音的数据中把它费力的学习出来。
机器学习中的过拟合
当某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差。这意味着训练数据中的噪音或者随机波动也被当做概念被模型学习了。而问题就在于这些概念不适用于新的数据,从而导致模型泛化性能的变差。
过拟合更可能在无参数非线性模型中发生