使用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}')
相关推荐
爱睡懒觉的焦糖玛奇朵6 小时前
【从视频到数据集:焦糖玛奇朵的魔法工具使用说明】
人工智能·python·深度学习·学习·算法·yolo·音视频
yangshicong7 小时前
第11章:结构化输出与数据提取 —— 让 AI 直接返回你想要的数据格式
数据库·人工智能·redis·python·langchain·ai编程
言之。8 小时前
【Python】免费的中文 AI 配音方案
开发语言·人工智能·python
Warson_L8 小时前
python dict key详解
python
天天进步20158 小时前
Python全栈项目:从零手操一个高性能 API 网关
开发语言·python
安生生申9 小时前
使用pygame实现2048
开发语言·python·pygame
徐图图不糊涂10 小时前
搭建简易版的Rag系统
python·pycharm
灰灰勇闯IT10 小时前
pyasc:用 Python 调用 CANN 的推理能力
开发语言·python
明月_清风11 小时前
FastAPI 从入门到实战:3 分钟构建高性能异步 API
后端·python·fastapi
bellus-11 小时前
ubuntu26测试win10的ollama大模型性能
python