使用 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 进行线性回归分析的基本流程。在实际应用中,可能需要对数据进行更复杂的预处理,或者尝试不同的模型和参数来优化性能。

相关推荐
悟乙己1 天前
保序回归Isotonic Regression的sklearn实现案例
数据挖掘·回归·sklearn·保序回归
非门由也5 天前
《sklearn机器学习——数据预处理》类别特征编码
人工智能·机器学习·sklearn
非门由也5 天前
《sklearn机器学习——回归指标2》
机器学习·回归·sklearn
非门由也6 天前
《sklearn机器学习——特征提取》
人工智能·机器学习·sklearn
非门由也6 天前
《sklearn机器学习——管道和复合估计器》回归中转换目标
机器学习·回归·sklearn
非门由也6 天前
《sklearn机器学习——回归指标1》
机器学习·回归·sklearn
非门由也7 天前
《sklearn机器学习——管道和复合估计器》联合特征(FeatureUnion)
人工智能·机器学习·sklearn
非门由也7 天前
《sklearn机器学习——管道和复合估算器》异构数据的列转换器
人工智能·机器学习·sklearn
非门由也7 天前
《sklearn机器学习——管道和复合估算器》可视化复合估计器
人工智能·机器学习·sklearn
非门由也8 天前
《sklearn机器学习——聚类性能指标》Fowlkes-Mallows 得分
机器学习·聚类·sklearn