用Python进行AI数据分析进阶教程43:

使用scikit-learn实现简单线性回归和多元线性回归


关键词:简单线性回归、多元线性回归、scikit-learn、特征矩阵、模型拟合

摘要:本文介绍了如何使用scikit-learn库在Python中实现简单线性回归和多元线性回归。简单线性回归用于建立单一自变量与因变量之间的线性关系,而多元线性回归则扩展到多个自变量。文章提供了两种模型的实现步骤、关键点和注意事项,包括数据格式要求、特征缩放、多重共线性问题以及特征选择的重要性。同时,通过示例代码演示了数据准备、模型创建、训练和预测的过程,并可视化了简单线性回归的结果。读者可以借此快速掌握利用scikit-learn进行线性回归建模的基本方法。

👉 欢迎订阅🔗
《用Python进行AI数据分析进阶教程》专栏
《AI大模型应用实践进阶教程》专栏
《Python编程知识集锦》专栏
《字节跳动旗下AI制作抖音视频》专栏
《智能辅助驾驶》专栏
《工具软件及IT技术集锦》专栏


在 Python 机器学习中,scikit-learn是一个强大且常用的库,可用于实现简单线性回归和多元线性回归。下面分别介绍这两种回归的实现、关键点、注意点,并给出示例。

一、简单线性回归

1、实现步骤

简单线性回归是一种用于建立一个自变量和一个因变量之间线性关系的模型。在scikit-learn中,可按以下步骤实现:

  1. 导入必要的库。
  2. 准备数据。
  3. 创建线性回归模型。
  4. 拟合模型。
  5. 进行预测。

2、关键点

  • 数据格式scikit-learn要求输入特征矩阵X是二维数组,即使只有一个特征,也需要将其转换为二维数组。目标变量y是一维数组。
  • 模型拟合使用fit方法将模型与训练数据进行拟合。
  • 预测使用predict方法进行预测。

3、注意点

  • 特征缩放简单线性回归对特征缩放不太敏感,但在某些情况下,进行特征缩放可以提高模型的收敛速度。
  • 数据质量确保数据中没有缺失值或异常值,否则可能会影响模型的性能。

4、示例代码

Python脚本

# 导入必要的库
import numpy as np  # 用于数据处理和数值计算
from sklearn.linear_model import LinearRegression  # 导入线性回归模型
import matplotlib.pyplot as plt  # 用于可视化结果

# 准备数据
# 创建自变量 X,转换为二维数组(因为 scikit-learn 要求输入特征矩阵是二维数组)
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
# 创建因变量 y,是一维数组
y = np.array([2, 4, 6, 8, 10])

# 设置支持中文的字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]

# 创建线性回归模型
model = LinearRegression()  # 初始化线性回归模型

# 拟合模型
model.fit(X, y)  # 使用训练数据拟合模型

# 进行预测
new_X = np.array([6]).reshape(-1, 1)  # 准备新的输入数据并转换为二维数组
prediction = model.predict(new_X)  # 使用模型进行预测
print(f"预测值: {prediction[0]}")  # 输出预测结果

# 可视化结果
plt.scatter(X, y, color='blue')  # 绘制原始数据的散点图
plt.plot(X, model.predict(X), color='red')  # 绘制模型拟合的直线
plt.xlabel('X')  # 设置 x 轴标签
plt.ylabel('y')  # 设置 y 轴标签
plt.title('简单线性回归')  # 设置图表标题
plt.show()  # 显示图表

以上脚本运行后的屏显结果是生成如下图形:

二、多元线性回归

1、实现步骤

多元线性回归用于建立多个自变量和一个因变量之间的线性关系,实现步骤与简单线性回归类似:

  1. 导入必要的库。
  2. 准备数据。
  3. 创建线性回归模型。
  4. 拟合模型。
  5. 进行预测。

2、关键点

  • 特征矩阵多元线性回归的特征矩阵X是一个二维数组,每一行代表一个样本,每一列代表一个特征。
  • 模型解释多元线性回归的系数表示每个特征对目标变量的影响程度。

3、注意点

  • 多重共线性当特征之间存在高度相关性时,会导致多重共线性问题,影响模型的稳定性和解释性。可以通过计算方差膨胀因子(VIF)来检测和处理多重共线性。
  • 特征选择在处理多个特征时,选择合适的特征可以提高模型的性能和可解释性。

4、示例代码

Python脚本

# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt  # 用于可视化结果
from sklearn.linear_model import LinearRegression  # 导入线性回归模型

# 准备数据
X = np.array([[1, 2], [2, 4], [3, 6], [4, 8], [5, 10]])  # 每个样本有两个特征
y = np.array([3, 6, 9, 12, 15])  # 目标变量

# 设置支持中文的字体
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]

# 创建线性回归模型
model = LinearRegression()  # 初始化线性回归模型

# 拟合模型
model.fit(X, y)  # 使用训练数据拟合模型

# 进行预测
new_X = np.array([[6, 12]])  # 正确格式:二维数组,包含一个样本,该样本有两个特征
prediction = model.predict(new_X)
print(f"预测值: {prediction[0]}")  # 输出预测结果

# 打印模型参数
print(f"系数: {model.coef_}")       # 输出模型的系数(权重)
print(f"截距: {model.intercept_}")  # 输出模型的截距项

以上脚本运行后的屏显结果是:

通过以上示例,你可以了解如何使用scikit-learn实现简单线性回归和多元线性回归,以及在实现过程中的关键点和注意点。

——The END——


🔗 欢迎订阅专栏

序号 专栏名称 说明
1 用Python进行AI数据分析进阶教程 《用Python进行AI数据分析进阶教程》专栏
2 AI大模型应用实践进阶教程 《AI大模型应用实践进阶教程》专栏
3 Python编程知识集锦 《Python编程知识集锦》专栏
4 字节跳动旗下AI制作抖音视频 《字节跳动旗下AI制作抖音视频》专栏
5 智能辅助驾驶 《智能辅助驾驶》专栏
6 工具软件及IT技术集锦 《工具软件及IT技术集锦》专栏

👉 关注我 @理工男大辉郎 获取实时更新

欢迎关注、收藏或转发。
敬请关注 我的
微信搜索公众号:cnFuJH
CSDN博客:理工男大辉郎
抖音号:31580422589

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐