自定义数据集使用scikit-learn中的包实现线性回归方法对其进行拟合

一、导入必要的库

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

二、加载自定义数据集

python 复制代码
# 创建自定义数据集
# 假设我们有一个简单的线性关系 y = 2x + 1,并添加一些随机噪声
np.random.seed(42)  # 为了结果的可重复性设置随机种子
X = 2 * np.random.rand(100, 1)  # 100个样本,每个样本1个特征(随机生成在0到2之间的数)
y = 4 + 3 * X + np.random.randn(100, 1)  # 目标变量,添加了一些随机噪声

三、划分数据集

python 复制代码
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

四、训练线性回归模型

python 复制代码
lin_reg = LinearRegression()
lin_reg.fit(X_train, y_train)

五、预测并评估模型

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

# 评估模型
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

六、图形展示

python 复制代码
plt.scatter(X, y, color='blue', label='point')
plt.plot(X_test, y_pred, color='red', label='line')
plt.xlabel('X')
plt.ylabel('y')
plt.title('show')
plt.legend()
plt.show()

七、完整代码即结果演示

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

# 创建自定义数据集
# 假设我们有一个简单的线性关系 y = 2x + 1,并添加一些随机噪声
np.random.seed(42)  # 为了结果的可重复性设置随机种子
X = 2 * np.random.rand(100, 1)  # 100个样本,每个样本1个特征(随机生成在0到2之间的数)
y = 4 + 3 * X + np.random.randn(100, 1)  # 目标变量,添加了一些随机噪声

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练线性回归模型
lin_reg = LinearRegression()
lin_reg.fit(X_train, y_train)

# 进行预测
y_pred = lin_reg.predict(X_test)

# 评估模型
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f"均方误差: {mse}")

plt.scatter(X, y, color='blue', label='point')
plt.plot(X_test, y_pred, color='red', label='line')
plt.xlabel('X')
plt.ylabel('y')
plt.title('show')
plt.legend()
plt.show()

相关推荐
顾安r12 小时前
11.20 开源APP
服务器·前端·javascript·python·css3
萧鼎12 小时前
Python PyTesseract OCR :从基础到项目实战
开发语言·python·ocr
没有bug.的程序员13 小时前
Java 字节码:看懂 JVM 的“机器语言“
java·jvm·python·spring·微服务
下午见。15 小时前
Python基础入门:用Anaconda搭建环境的启蒙之旅
python
我叫汪枫16 小时前
Python 办公自动化入门:玩转 Excel 与 Word
python·word·excel
E_ICEBLUE16 小时前
三步完成 Markdown 到 Word/PDF 的转换:Python 教程
python·pdf·word·markdown·格式转换
后台开发者Ethan17 小时前
LangGraph ReAct应用
python·langgraph
f***686017 小时前
问题:Flask应用中的用户会话(Session)管理失效
后端·python·flask
爱吃面条的猿17 小时前
Python修改pip install 指定安装包的路径和默认镜像源
linux·python·pip
饭饭大王66617 小时前
Python 模块的概念与导入:从基础语法到高级技巧
java·服务器·python