在一些问题中,常常希望根据已有数据,确定目标变量(输出,即因变量)与其它变量(输入,即自变量)的关系。当观测到新的输入时,预测它可能的输出值。这种方法叫回归分析(确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法)。
- 自变量的数量:一元回归和多元回归分析。
- 线性关系:线性回归分析和非线性回归分析。
- 一元线性回归:只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示。
- 多重线性回归分析:如果回归分析中包括两个或两个以上的自变量,且自变量之间存在线性相关。
常用方法
线性回归
线性回归模型通常是处理因变量是连续变量的问题。最小二乘法是用于拟合回归线最常用的方法。对于观测数据,它通过最小化每个数据点到线的垂直偏差平方和来计算最佳拟合线。 在计算总偏差时,偏差先平方,所以正值和负值没有抵消。 线性回归通常是人们在学习预测模型时首选的技术之一。在这种技术中,因变量是连续的,自变量可以是连续的也可以是离散的,回归线的性质是线性的。
逻辑回归
为什么要在公式中使用对数log呢?因为在这里使用的是二项分布(因变量),需要选择一个对于这个分布最佳的连结函数。它就是logit函数。在上述方程中,通过观测样本的极大似然估计值来选择参数,而不是最小化平方和误差。 逻辑回归属于分类算法,预测结果是离散的分类,例如判断用户是否会点击某条广告。因此逻辑回归是一种经典的二分类算法。
改造方法:
OvR(One vs Rest),一对剩余的意思,有时候也称它为 OvA(One vs All);一般使用 OvR,更标准;n 种类型的样本进行分类时,分别取一种样本作为一类,将剩余的所有类型的样本看做另一类,这样就形成了 n 个二分类问题,使用逻辑回归算法对 n 个数据集训练出 n 个模型,将待预测的样本传入这 n 个模型中,所得概率最高的那个模型对应的样本类型即认为是该预测样本的类型; OvO(One vs One),一对一的意思;n 类样本中,每次挑出 2 种类型,两两结合,一共有Cn2C_n^2Cn2 种二分类情况,使用 Cn2C_n^2Cn2种模型预测样本类型,有 Cn2 个预测结果,种类最多的那种样本类型,就认为是该样本最终的预测类型; 改造方法不是指针对逻辑回归算法,而是在机器学习领域有通用性,所有二分类的机器学习算法都可使用此方法进行改造,解决多分类问题;
多项式回归(Polynomial Regression)
对于一个回归方程,如果自变量的指数大于1,那么它就是多项式回归方程。 通常,多项式回归的方法是通过增加特征的方法,将高次项变换为1次项,从而将多项式回归问题转化为线性回归问题。
逐步回归(Stepwise Regression)
在处理多个自变量时,可以使用逐步回归。在这种技术中,自变量的选择是在一个自动的过程中完成的,其中包括非人为操作。
通过观察统计的值,来识别重要变量。逐步回归通过增删制定标准的协变量来拟合模型。 (1)标准逐步回归法。该方法做两件事情,即增加和删除每个步骤所需的预测。 (2)向前选择法。该方法从模型中最显著的预测开始,然后为每一步添加变量(依据AIC值)。 (3)向后剔除法。该方法与模型的所有预测同时开始,然后在每一步消除最小显著性的变量。 使用最少的预测变量数来最大化预测能力。是处理高维数据集的方法之一。
回归正则化办法
正则化是一种常见的防止过拟合的方法,一般原理是在代价函数后面加上一个对参数的约束项,这个约束项被叫做 正则化项 (regularizer)。
套索回归(Lasso Regression)
- 弥补最小二乘和逐步回归的不足,可以很好的进行特征选择
- 很好解决了特征多重共线性的问题
- 特征高度相关,模型倾向于选择一个特征忽略其它特征,会导致结果的不稳定
岭回归(Ridge Regression)
自变量高度相关时使用,此时使用最小二乘虽然偏差不大,但方差会很大,进而导致观测值与真实值相差甚远。岭回归通过给回归估计值添加一个偏差值,来降低标准误差。 线性等式中的预测误差来自偏差和方差,我们这里讨论来自方差的误差。 岭回归通过收缩参数λ(lambda)解决多重共线性问题。岭回归的损失函数(loss function)是在最小二乘法的损失函数的基础上添加了一个惩罚函数,该函数是回归系数向量的l2范数的λ倍。
两个组成部分。第一个是最小二乘项,另一个是β平方的λ倍,其中β是相关系数向量,与收缩参数一起添加到最小二乘项中以得到一个非常低的方差。
弹性网络回归(ElasticNet)
ElasticNet是Lasso和Ridge回归技术的混合体。它使用L1来训练并且L2优先作为正则化矩阵。 当有多个相关的特征时,ElasticNet是很有用的。Lasso 会随机挑选他们其中的一个,而ElasticNet则会选择两个。
支持向量机回归(SVR)
优点:
- 不仅支持线性模型,对于数据和特征之间的非线性关系也能很好抓住;
- 不需要担心多重共线性问题,可以避免局部极小化问题,提高泛化性能,解决高维问题;
- 支持向量回归虽然不会在过程中直接排除异常点,但会使得由异常点引起的偏差更小。
缺点:计算复杂度高,在面临数据量大的时候,计算耗时长。
拟合程度检验–R²
R2R^2R2
- 总偏差平方和(SST):实际值与实际值平均值的差的平方和
- 回归平方和(SSR):观测值与实际值均值的差的平方和。它是由于自变量x的变化引起的y的变化,反映了y的总偏差中由于x与y之间的线性关系引起的y的变化部分,是可以由回归直线来解释的。
- 残差平方和(SSE):它是除了x对y的线性影响之外的其他因素对y变化的作用,是不能由回归直线来解释的。(一般会通过以自变量或者观测量为横坐标去绘制残差图,对拟合效果进行评价)
- SST=SSR SSE
模型评价
回归分析在数据量远大于特征数量时往往能表现出比较优良的效果,但是需要注意的是线性模型对于特征之间的共线性非常敏感,当特征之间存在共线性时,数据稍微有一些变动(噪声的存在)都会对回归结果产生巨大影响。
python实现
scikit-learn库