一、线性回归
1.最小二乘法:最小化均方误差MSE,即点到直线的欧式距离最小,从而求解w和b
2.优点:速度快,建模简单,解释性强
3.缺点:异常值敏感
from sklearn.linear_model import LinearRegression
'''
(1)fit_intercept:是否计算截距。False-模型没有截距
(2)normalize: 当fit_intercept设置为False时,该参数将被忽略。
如果为真,则回归前的回归系数X将通过减去平均值并除以l2-范数而归一化。
(3)n_jobs:指定线程数
'''
model = LinearRegression(fit_intercept=True, normalize=False)
model.coef_ #回归系数
model.intercept_ #回归截距
二、多项式回归
1.随机梯度下降(SGD):求解w和b
2.优点:能拟合非线性数据
3.缺点:需要先验知识,指数选择不当容易过拟合
from sklearn.preprocessing import PolynomialFeatures #多项式回归
model = PolynomialFeatures(degree=2)
model.fit_transform(X_train)
三、正则化
- 在损失函数中,为每一个特征加一个惩罚项
1.lasso回归/L1正则化
- 权值向量w中各个元素的绝对值之和
- 用于稀疏矩阵
- 特征选择中常用
- 损失函数不可导,梯度下降不能用
- 利用坐标轴下降法进行求解,沿着坐标轴的方向,每次总是固定另外n-1个值,求另外一个的局部最优值。
2.岭回归/L2正则化
- 权值向量w中各个元素的平方和然后再求平方根