Day44:线性回归详解与案例

alt

在前一节中,我们介绍了监督学习和无监督学习的概念以及其特点,也用线性回归演示了监督学习的基本过程,现在我们详细来讲解一下线性回归的原理和应用。

1. 线性回归原理

线性回归是一种基本的统计学习方法,用于建立输入特征和输出标签之间的线性关系。它假设输入特征与输出标签之间存在一个线性的关系,通过最小化预测值与实际值之间的误差来拟合这个线性关系,构建这个误差的函数我们一般称之为目标函数(或者损失函数)。

数学建模过程如下:

  • 假设我们有n个样本数据,每个样本包含一个m维的输入特征向量x和一个标签y。
  • 我们的目标是找到一个m维的权重向量w和一个偏置值b,使得预测值y_hat可以通过线性组合计算得出,即y_hat = w^T * x + b,其中^T表示向量的转置。
  • 我们定义损失函数(如均方误差)来衡量预测值和实际值之间的差距,并通过最小化损失函数来求解最优的权重向量w和偏置值b。

数据优化过程如下:

  • 我们使用训练数据集进行模型训练,即通过最小化损失函数来调整权重向量w和偏置值b。
  • 常见的优化算法包括梯度下降法(Gradient Descent)和正规方程(Normal Equation)。
  • 在梯度下降法中,我们根据损失函数的梯度方向来更新权重向量w和偏置值b,直至达到最优解。
  • 在正规方程中,我们通过求解损失函数的最小二乘解析解来得到最优的权重向量w和偏置值b。

2. 线性回归案例

下面是一个使用线性回归模型对房价进行预测的案例。我们将使用加利福尼亚房价数据集,该数据集是sklearn内置的数据集,包含了加利福尼亚地区的房屋信息和对应的房价。

首先,我们需要加载数据集并进行预处理,然后使用train_test_split()函数划分训练集和测试集,其中测试集占比为20%。

from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# 加载数据集
california = fetch_california_housing()
X, y = california.data, california.target

# 数据预处理
scaler = StandardScaler()
X = scaler.fit_transform(X)

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

接下来,我们使用线性回归模型进行训练和预测,其中fit()方法已经包含了训练模型的过程。

from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

大模型-AI小册 文章被收录于专栏

1. AI爱好者,爱搞事的 2. 想要掌握第二门语言的Javaer或者golanger 3. 决定考计算机领域研究生,给实验室搬砖的uu,强烈建议你花时间学完这个,后续搬砖比较猛 4. 任何对编程感兴趣的,且愿意掌握一门技能的人

全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务