使用scikit-learn实现线性回归对自定义数据集进行拟合

1. 引入必要的库

首先,需要引入必要的库。scikit-learn提供了强大的机器学习工具,pandas和numpy则用于数据处理,matplotlib用于结果的可视化。

python 复制代码
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt

2. 加载自定义数据集

假设有一个CSV文件custom_dataset.csv,其中包含特征(自变量)和标签(因变量)。使用pandas来加载数据。

python 复制代码
# 加载自定义数据集
data = pd.read_csv('custom_dataset.csv')

# 假设数据集中有两列:'feature'为特征,'target'为标签
X = data[['feature']].values  # 特征需要是二维数组
y = data['target'].values     # 标签

3. 数据集划分

为了评估模型的性能,需要将数据集划分为训练集和测试集。这样可以确保模型在未见过的数据上进行测试,从而评估其泛化能力。

python 复制代码
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

4. 创建并训练线性回归模型

使用scikit-learn中的LinearRegression类,可以轻松地创建并训练线性回归模型。

python 复制代码
# 创建线性回归模型
model = LinearRegression()

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

5. 模型预测与评估

在模型训练完成后,使用测试集进行预测,并评估模型的性能。常用的评估指标包括均方误差(MSE)和决定系数(R²)。

python 复制代码
# 进行预测
y_pred = model.predict(X_test)

# 计算均方误差和决定系数
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f'Mean Squared Error: {mse:.2f}')
print(f'R² Score: {r2:.2f}')

6. 结果可视化

为了更好地理解模型的拟合效果,可以绘制真实值和预测值的散点图,以及拟合的直线。

python 复制代码
# 可视化结果
plt.scatter(X_test, y_test, color='black', label='实际数据')
plt.plot(X_test, y_pred, color='blue', linewidth=3, label='拟合线')

plt.xlabel('特征')
plt.ylabel('目标值')
plt.title('线性回归拟合')
plt.legend()
plt.show()

7. 进一步讨论

在线性回归中,模型的系数(权重)表示特征对目标值的影响。可以通过以下方式查看模型的系数:

python 复制代码
# 打印模型系数和截距
print(f'Coefficient: {model.coef_[0]:.2f}')
print(f'Intercept: {model.intercept_:.2f}')
相关推荐
人工智能训练1 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
yaoming1681 小时前
python性能优化方案研究
python·性能优化
码云数智-大飞2 小时前
使用 Python 高效提取 PDF 中的表格数据并导出为 TXT 或 Excel
python
biuyyyxxx3 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
极客数模3 小时前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab
小鸡吃米…5 小时前
机器学习中的代价函数
人工智能·python·机器学习
Li emily6 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
m0_561359676 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
Ulyanov6 小时前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲
2401_838472517 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python