机器学习之线性回归学习总结

一、线性回归核心概念

  1. 基本定义:通过属性的线性组合进行预测的模型,目标是找到一条直线、平面或高维超平面,使预测值与真实值的误差最小化。
  2. 数学表达式
    • 单变量:f(x)=w0​+w1​x(w0​为截距,w1​为权重)
    • 多变量:f(x)=w1​x1​+w2​x2​+...+wd​xd​+b
    • 向量形式:f(x)=wTx+b(w权重向量,b为偏置)

二、模型求解方法

  • 最小二乘法:基于均方误差(对应欧氏距离)最小化进行求解,试图找到使所有样本到直线的欧氏距离之和最小的直线。
  • 参数估计:通过求误差函数E(w,b)的最小值确定参数w和b,过程为对w和b求导并令导数为 0,求解得到最优参数。

三、评估指标

  1. 误差平方和(SSE/RSS):SSE=∑i=1m​(yi​−y^​i​)2,反映预测值与真实值的总误差。
  2. 均方误差(MSE):MSE=n1​∑i=1n​(yi​−y^​i​)2,是 SSE 的平均值,消除了样本数量的影响。
  3. 决定系数(R²):R2=1−SSTSSE​=1−VarMSE​,越接近 1 说明模型拟合效果越好,其中 SST 为总平方和,Var 为真实值的方差。

四、多元线性回归

  • 表达式:y=w0​+w1​x1​+w2​x2​+...+wn​xn​,适用于多个特征变量的场景,通过多个特征的线性组合进行预测。

五、sklearn 线性回归工具

  • 函数:linear_model.LinearRegression()
  • 主要参数
    • fit_intercept:是否有截距,默认为 True,若为 False 则直线过原点。
    • normalize:是否将数据归一化,默认为 False。

六、课堂练习:波士顿房价预测

1. 代码实现

python

运行

# 导入必要的库
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.datasets import make_regression  # 生成模拟回归数据集

# 生成模拟的房价相关数据集(特征数为5,样本数为500)
X, y = make_regression(n_samples=500, n_features=5, noise=20, random_state=42)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建线性回归模型
model = LinearRegression(fit_intercept=True, normalize=False)

# 训练模型
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 评估模型
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f"均方误差(MSE):{mse}")
print(f"决定系数(R²):{r2}")
print("模型系数:", model.coef_)
print("截距:", model.intercept_)

2. 代码说明

  • 数据划分:将数据集按 8:2 的比例划分为训练集和测试集,用于模型的训练和评估。
  • 模型创建与训练:使用LinearRegression创建模型,设置有截距且不进行数据归一化,然后用训练集训练模型。
  • 模型评估:通过计算均方误差(MSE)和决定系数(R²)评估模型性能,MSE 越小、R² 越接近 1,说明模型效果越好,同时输出模型的系数和截距,可了解各特征对房价的影响程度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值