机器学习系列 - 6. 重要概念补充

1. 多项式回归 & Pipeline

1.1 多项式回归:

研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial Regression)。多项式回归是线性回归模型的一种,其回归函数关于回归系数是线性的。其中自变量x和因变量y之间的关系被建模为n次多项式。

如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。在一元回归分析中,如果变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。

由于任一函数都可以用多项式逼近,因此多项式回归有着广泛应用。

其实多项式回归在算法并没有什么新的地方,完全是使用线性回归的思路,关键在于为数据添加新的特征,而这些新的特征是原有的特征的多项式组合,采用这样的方式就能解决非线性问题。

这样的思路跟PCA这种降维思想刚好相反,而多项式回归则是升维,添加了新的特征之后,使得更好地拟合高维数据。

1.2 Pipeline:

在具体编程实践时,可以使用sklearn中的pipeline对操作进行整合。Pipeline就是将所有步骤都放在一起。参数传入一个列表,列表中的每个元素是管道中的一个步骤。每个元素是一个元组,元组的第一个元素是名字(字符串),第二个元素是实例化。

2. 偏差与方差

偏差(bias)(欠拟合):偏差衡量了模型的预测值与实际值之间的偏离关系。例如某模型的准确度为96%,则说明是低偏差;反之,如果准确度只有70%,则说明是高偏差。

方差(variance)(过拟合):方差描述的是训练数据在不同迭代阶段的训练模型中,预测值的变化波动情况(或称之为离散情况)。从数学角度看,可以理解为每个预测值与预测均值差的平方和的再求平均数。通常在模型训练中,初始阶段模型复杂度不高,为低方差;随着训练量加大,模型逐步拟合训练数据,复杂度开始变高,此时方差会逐渐变高。

模型误差 = 偏差 + 方差 + 不可避免的误差(噪音)。一般来说,随着模型复杂度的增加,方差会逐渐增大,偏差会逐渐减小,见下图:


偏差与方差的权衡:

我们要知道偏差和方差是无法完全避免的,只能尽量减少其影响。

1.在避免偏差时,需尽量选择正确的模型,一个非线性问题而我们一直用线性模型去解决,那无论如何,高偏差是无法避免的。

2.有了正确的模型,我们还要慎重选择数据集的大小,通常数据集越大越好,但大到数据集已经对整体所有数据有了一定的代表性后,再多的数据已经不能提升模型了,反而会带来计算量的增加。而训练数据太小一定是不好的,这会带来过拟合,模型复杂度太高,方差很大,不同数据集训练出来的模型变化非常大。

3.最后,要选择合适的模型复杂度,复杂度高的模型通常对训练数据有很好的拟合能力。

其实在机器学习领域,主要的挑战来自方差。处理高方差的手段有:

1.降低模型复杂度

2.减少数据维度,降噪

3.增加样本数

4.使用验证集

偏差衡量了模型的预测值与实际值之间的偏离关系,主要的原因可能是对问题本身的假设是不正确的,或者欠拟合。方差描述的是模型预测值的变化波动情况(或称之为离散情况),模型没有完全学习到问题的本质,通常原因可能是使用的模型太复杂,过拟合。

参数或者线性的算法一般是高偏差低方差;非参数或者非线性的算法一般是低偏差高方差。所以我们需要调整参数来去衡量方差和偏差的关系。

3. 模型正则化 L1&L2 正则

模型正则化(Regularization),是对学习算法的修改,限制参数的大小,减少泛化误差而不是训练误差。

L1正则化:在目标函数中加了L1范数这一项。使用L1正则化的模型叫做LASSO回归。绝对值和最小。

注意事项:

1.取值范围是1~n,即不包含。这是因为,不是任何一个参数的系数,是截距。反映到图形上就是反映了曲线的高低,而不决定曲线每一部分的陡峭与缓和。所以模型正则化时不需要。

2.对于超参数\alpha系数,在模型正则化的新的损失函数中,要让每个都尽可能小的程度占整个优化损失函数程度的多少。即\alpha的大小表示优化的侧重。

L2正则化:在目标函数中加了L2范数这一项。使用L2正则化的模型叫做岭回归。平方和最小。

L2范数能让解比较小(靠近0),但是比较平滑(不等于0)且不具有稀疏性。

L1正则化就是在损失函数后边所加正则项为L1范数,加上L1范数容易得到稀疏解(0比较多),一般来说L1正则化较常使用。

L2正则化就是损失后边所加正则项为L2范数,加上L2正则相比于L1正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于0(但不是等于0,所以相对平滑)的维度比较多,降低模型的复杂度。

你可能感兴趣的:(机器学习系列 - 6. 重要概念补充)