1.Linear Regression:(线性回归)
用一个因变量(Y)与多个自变量(x1,x2...)的关系,表达式:Y = a + W * X
简单来说, 通过一条直线来拟合自变量与因变量之间的关系。参数W,a取不同的值, 会得不同的直线, 得到最优直线的过程就是线性回归的算法过程,也就是求解参数W,a的过程。最优直线的求解是基于最小二乘法(Ordinary Least Squares)。
线性回归的应用场景:
- 自变量和因变量之间是线性关系
- 适用于low dimension, 而且每一维之间都没有共线性。
线性回归的问题:
- 线性回归存在multicollinearity(共线性), autocorrelation(自相关), heteroskedasticity(异方差)等问题
- 线性回归对异常值非常敏感, 因此数据预处理时, 要警惕异常值。
- 模型参数的估计很不稳定, 模型中输入数据的微小差异都可能导致参数估计的很多差异。
2.Logistic Regression:(逻辑回归)
逻辑回归是用来计算“事件=Success”和“事件=Failure”的概率。
应用场景:
- 用于分类场景, 尤其是因变量是二分类(0/1,True/False,Yes/No)时我们应该使用逻辑回归。
- 不要求自变量和因变量是线性关系
存在的问题:
- 防止过拟合和低拟合,应该让模型构建的变量是显著的。一个好的方法是使用逐步回归方法去进行逻辑回归。
- 逻辑回归需要大样本量,因为最大似然估计在低样本量的情况下不如最小二乘法有效。
- 独立的变量要求没有共线性。
3.Ridge Regression:(岭回归)
岭回归是模型表达方式, 非常类似于线性回归,只是在线性回归的基础上加入一个预测误差项。
表达式:y = a+ b1x1+ b2x2+....+e
偏差是最小二乘法计算方法, 方差部分是为解决共线性问题,而引入的一个惩罚项 λ (lambda) * ||beta|| ^2, 其中beta是线性模型的自变量系数。加入惩罚项是让参数收敛在比较小的方差。
这里的惩罚项,指的是wx+b表达式中的w,对w进行二范数操作。
应用场景:
- 可以解决重共线性问题, 简单的说就是自变量之间有高度相关关系。
问题: - 不能将模型系数收敛为0, 因此岭回归没有特征选择功能。
PS: ||beta||正则化, 采用的是L2 regularization
4.Lasso Regression:
Lasso回归,和岭回归非常类似,只是预测误差中方差部分不一样,
是lambda * ||beta||, 而不是lambda * ||beta||的平方。
这里的beta也就是x的系数w,我们要学习的参数,对模型的复杂程度进行约束。
应用场景:
- Lasso回归的惩罚项能收敛参数到0, 能起到特征选择的功能。
- 如果一组自变量是高线性相关, lasso选择其中一个变量而将其他项收敛到0。
问题:
- Lasso回归是为解决岭回归不能进行变量选择问题而提出的, 但Lasso不能做group selection。
- Lasso存在不一致的问题。
PS: ||beta||正则化, 采用的是L1 regularization.
参考链接: