使用 scikit-learn进行简单回归分析

使用 scikit-learn(简称 sklearn)进行简单回归分析的教程。这里我们以波士顿房价数据集(Boston House Prices dataset)为例,介绍如何使用线性回归(Linear Regression)模型

环境准备

确保已经安装了 scikit-learn 库,如果没有安装,可以使用 pip 进行安装:

bash 复制代码
pip install scikit-learn

导入库

首先,我们需要导入所需的库。

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

加载数据集

使用 sklearn 内置的 load_boston 函数来加载波士顿房价数据集。

python 复制代码
# 加载数据集
boston = load_boston()
X = boston.data
y = boston.target

数据预处理

将数据集分为训练集和测试集。

python 复制代码
# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

创建模型

创建一个线性回归模型的实例。

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

训练模型

使用训练集数据来训练模型。

python 复制代码
# 训练模型
lr.fit(X_train, y_train)

模型评估

使用测试集数据来评估模型的性能。

python 复制代码
# 预测测试集
y_pred = lr.predict(X_test)
# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print(f"Mean Squared Error: {mse}")

使用模型预测

使用训练好的模型进行预测。

python 复制代码
# 使用模型预测单个数据点的房价
sample = X_test[0].reshape(1, -1)  # 确保形状正确
prediction = lr.predict(sample)
print(f"Predicted House Price: ${prediction[0]}")

可视化

我们可以选择数据集的一个特征来与目标值一起可视化,并展示回归线。

python 复制代码
# 选择一个特征进行可视化
feature_index = 5  # 例如,使用第六个特征(房间数)
# 绘制散点图
plt.scatter(X_train[:, feature_index], y_train, color='blue', label='Training data')
# 绘制回归线
plt.plot(X_train[:, feature_index], lr.predict(X_train), color='red', label='Regression line')
# 设置图表标题和图例
plt.title('Linear Regression on Boston Housing Dataset')
plt.xlabel('Number of rooms (RM)')
plt.ylabel('House price ($1000s)')
plt.legend()
# 显示图表
plt.show()

以上就是一个使用 sklearn 进行线性回归分析的基本流程。在实际应用中,可能需要对数据进行更复杂的预处理,或者尝试不同的模型和参数来优化性能。

相关推荐
数据媛5 天前
机器学习_13 决策树知识总结
人工智能·python·决策树·机器学习·numpy·pandas·sklearn
蜡笔小新..17 天前
机器学习中的关键概念:通过SKlearn的MNIST实验深入理解
人工智能·机器学习·sklearn·minist数据集
汤姆和佩琦17 天前
2025-2-3-sklearn学习(50) & (51) 完结篇 零落成泥碾作尘,只有香如故。
人工智能·python·学习·机器学习·sklearn
汤姆和佩琦21 天前
2025-1-26-sklearn学习(46) 无监督学习: 寻求数据表示 空伫立,尽日阑干倚遍,昼长人静。
学习·机器学习·sklearn
汤姆和佩琦22 天前
2025-1-28-sklearn学习(47) & (48) 万家灯火亮年至,一声烟花开新来。
人工智能·python·学习·机器学习·sklearn
纪伊路上盛名在1 个月前
ML基础3-sklearn中的1个简单的分类器例子
linux·人工智能·python·机器学习·pip·sklearn
Cacciatore->1 个月前
Sklearn 中的逻辑回归
人工智能·python·机器学习·逻辑回归·scikit-learn·sklearn
Kacey Huang1 个月前
Sklearn机器学习第十五天|机器学习算法原理
人工智能·算法·机器学习·sklearn
汤姆和佩琦1 个月前
2025-1-21-sklearn学习(43) 使用 scikit-learn 介绍机器学习 楼上阑干横斗柄,寒露人远鸡相应。
人工智能·python·学习·机器学习·scikit-learn·sklearn
汤姆和佩琦1 个月前
2025-1-20-sklearn学习(42) 使用scikit-learn计算 钿车罗帕,相逢处,自有暗尘随马。
人工智能·python·学习·机器学习·scikit-learn·sklearn