Python使用sklearn实现的各种回归算法示例
简介
本文将介绍如何使用Python中的sklearn库来实现各种回归算法,并提供示例说明。回归算法常用于预测连续的数值型数据,并且在实际应用中有广泛的用途,如房价预测、股票价格预测等。
环境配置
在开始之前,需要安装Python和sklearn库。可以通过以下命令安装:
pip install sklearn
同时,为了展示数据的可视化和更好的分析结果,还需要安装matplotlib库:
pip install matplotlib
示例一:线性回归
线性回归是最简单且应用最广泛的回归算法之一。其目的是建立一个线性模型,使得输入特征与输出的预测值之间具有简单的线性关系。
准备数据
我们使用sklearn中自带的波士顿房价数据集来演示线性回归。数据集包含506个房价样本,每个样本有13个特征,如房屋的平均房间数、城镇犯罪率等。数据集已经被划分为训练集和测试集。
下面是数据预处理的代码:
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
# 读取并划分数据集
boston = load_boston()
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2)
建立模型
我们使用线性回归模型来建立预测模型,代码如下:
from sklearn.linear_model import LinearRegression
# 建立线性回归模型
model = LinearRegression()
# 训练模型
model.fit(X_train, y_train)
预测结果
使用训练好的模型来进行预测,代码如下:
# 进行预测
y_pred = model.predict(X_test)
结果评估
我们使用均方误差(Mean Squared Error,MSE)来评估模型的性能,代码如下:
from sklearn.metrics import mean_squared_error
# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print('MSE:', mse)
结果可视化
最后,我们可以使用matplotlib库来将预测结果可视化,代码如下:
import matplotlib.pyplot as plt
# 绘制预测值和真实值的散点图
plt.scatter(y_test, y_pred)
plt.xlabel("True Values")
plt.ylabel("Predictions")
plt.show()
示例二:多项式回归
多项式回归是一种非线性回归算法,它可以通过引入多项式项来克服线性模型的局限性。
准备数据
我们使用sklearn中自带的加利福尼亚房价数据集来演示多项式回归。数据集包含20640个房价样本,每个样本有8个特征,如房屋的经度、纬度等。
下面是数据预处理的代码:
from sklearn.datasets import fetch_california_housing
# 读取数据集
california = fetch_california_housing()
X_train, X_test, y_train, y_test = train_test_split(california.data, california.target, test_size=0.2)
建立模型
我们使用多项式回归模型来建立预测模型,代码如下:
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline
# 建立多项式回归模型,使用2次多项式
model = make_pipeline(PolynomialFeatures(2), LinearRegression())
# 训练模型
model.fit(X_train, y_train)
预测结果
使用训练好的模型来进行预测,代码如下:
# 进行预测
y_pred = model.predict(X_test)
结果评估
我们使用均方误差(Mean Squared Error,MSE)来评估模型的性能,代码如下:
# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print('MSE:', mse)
结果可视化
最后,我们可以使用matplotlib库来将预测结果可视化,代码如下:
# 绘制预测值和真实值的散点图
plt.scatter(y_test, y_pred)
plt.xlabel("True Values")
plt.ylabel("Predictions")
plt.show()
总结
本文介绍了如何使用Python中的sklearn库实现线性回归和多项式回归算法,并提供了相应的示例说明。使用sklearn可以更方便地实现各种回归算法,并且提供了方便的结果评估和可视化工具。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python使用sklearn实现的各种回归算法示例 - Python技术站