C6.3

线性回归调用方法展示

教材页

第六章,线性回归

数据

数据集:自动生成模拟数据。

通过设定真实的线性关系 y=2x+1 并叠加随机噪声来构建数据集,用于验证回归算法的有效性。

任务:

1. 利用 numpy 生成包含 100 个样本的一维特征数据 X 和目标值 y

2. 使用最小二乘法公式计算回归系数(斜率 w 和截距 b)。

3. 绘制散点图、真实函数曲线以及拟合后的回归直线进行对比。

任务

调用线性回归函数,完成线性回归模型。

Python

import numpy as np

import matplotlib.pyplot as plt

# 1. 解决中文乱码:设置字体为 SimHei (黑体) Microsoft YaHei (微软雅黑)

# Windows 系统通常自带 SimHei,如果没有可尝试 'Microsoft YaHei'

plt.rcParams['font.sans-serif'] = ['SimHei']

# 2. 解决负号显示问题:防止负号变成方块

plt.rcParams['axes.unicode_minus'] = False

# 模拟数据生成 (假设这是你之前的逻辑)

np.random.seed(42)

X = 2 * np.random.rand(100)

y = 1 + 2.5 * X + np.random.randn(100) # 真实关系 y = 2.5x + 1 + 噪声

# 简单的线性回归计算 (numpy polyfit)

m, b = np.polyfit(X, y, 1)

print(f"拟合结果: 斜率={m:.2f}, 截距={b:.2f}")

# 绘图

plt.figure(figsize=(8, 6))

# 绘制散点图

plt.scatter(X, y, color='blue', label='样本数据')

# 绘制真实直线 (y = 2.5x + 1.0)

# 注意:使用 r'$...$' 来启用 LaTeX 数学渲染模式

plt.plot(X, 1 + 2.5 * X, 'r--', label=r'真实模型 ($y=2.5x + 1.0$)')

# 绘制拟合直线

plt.plot(X, m * X + b, 'g-', label=f'拟合模型 ($y={m:.2f}x + {b:.2f}$)')

# 显示图例和标题

plt.legend()

plt.title('线性回归示例')

plt.xlabel('特征值 x')

plt.ylabel('目标值 y')

plt.show()

C++

输出

书籍

姜维.《数据分析与数据挖掘》、《数据分析》,电子工业出版社, 20232026

软件

PythonC++(附加orsci包)。