机器学习之线性回归
一、线性回归定义
定义:一种通过建立自变量(特征)与因变量(目标值)之间的线性关系(如\(y = w1x1 +w2x2+...+wnxn+b)来预测连续型输出的监督学习方法。
核心目标:找到最优参数W(权重)和b(偏置值),使模型预测值与真实值的误差最小。
二、线性回归分类
1.单变量线性回归(Simple Linear Regression)
只有一个自变量,模型形式:y = wx+b。
示例:用房屋面积来预测房价
2.多变量线性回归(Multiple Linear Regression)
含多个自变量,模型形式:y = w1x1+w2x2+...+wnxn+b(可简写为:y = W**T X+b,其中W为参数向量,X为特征向量)。
示例:用面积、楼层、房龄等预测房价。
三、应用场景
1.预测连续值:如房价、销售额、温度、股票价格等。
2.变量关系分析:判断自变量对因变量的影响程度(如广告投入对销量的影响)。
3.示例:电商平台用用户浏览时长、历史购买次数预测未来消费金额。
四、线性回归问题的求解
1.损失函数(衡量误差的指标)
均方误差(MSE):最常用损失函数,定义为预测值与真实值差值平方的平均值。
公式:L(W,b) = 1/m Σm.i=1 (yi - (X^TX Xi + b))**2(m为样本数)
注释:MSE是凸函数,便于用梯度下降等方法求最小值,且对异常值敏感(平方放大误差)。
2.求解方法
(1)正规方程法(Normal Equation)
原理:直接通过数学推导求解损失函数最小化时的参数 W,无需迭代。
公式:当模型含偏置 b 时(可将 b 视为 w0x0),其中 x0=1)),参数向量 W 满足W = (X^TX X)**-1 X^TX y(X 为含偏置项的特征矩阵,y 为真实值向量)。
适用场景:样本量较小(m<10000),特征数不多时;无需调参,一步到位。
局限:当 X^TX 不可逆(如特征线性相关)时无法使用;样本量大时计算 ((X^TX)^-1) 效率低。
(2)梯度下降算法(Gradient Descent)
原理:通过迭代优化参数,沿损失函数梯度负方向更新参数,逐步逼近最小值。
步骤:
1.初始化参数 W 和 b(如全为 0)
2.计算损失函数对 W 和 b 的偏导数(梯度)
3.按学习率更新参数
4.重复步骤2-3,直接满足条件(可以直接梯度次数或者目标范围)
注释:
学习率需要调优:过大会梯度震荡,过小会效率缓慢。
适用场景:样本量大、特征数多,计算效率优于正规方程
五、线性回归API
python-scikit-learn
from sklearn.linear_model import LinearRegression
model = LinearRegression() # 初始化模型(默认用正规方程)
model.fit(X_train, y_train) # 训练模型
y_pred = model.predict(X_test) # 预测
特定:自动处理多变量,默认包含偏置项,支持标准化输入(需配合StandardScaler
)。
六、小结
线性回归是最简单的回归模型,核心是拟合线性关系,通过最小化 MSE 求解参数,可选择正规方程(小数据)或梯度下降(大数据)实现。适用于连续值预测和变量关系分析,但无法拟合非线性数据(需结合多项式特征等扩展)。