📅  最后修改于: 2023-12-03 15:04:10.357000             🧑  作者: Mango
本篇文章将介绍使用Python和sklearn库进行决策树回归的方法。决策树是一种常用的分类和回归算法,在数据挖掘和机器学习领域中有广泛应用。通过输入变量的值,决策树可以推断出目标变量的可能值,并构建一棵基于规则的树形结构,用于对新数据进行分类或预测。
在使用sklearn库进行决策树回归之前,需要先安装必要的Python库。
pip install pandas matplotlib sklearn
我们将使用sklearn库自带的波士顿房价数据集,这个数据集包含了506个位置不同的波士顿市房屋的各种信息,并标注了每个房屋的出售价格。
from sklearn.datasets import load_boston
boston = load_boston()
X = boston.data
y = boston.target
上面的代码中,我们首先从sklearn.datasets模块导入数据集,然后分别将房屋的各种信息和价格赋值给X和y。
import pandas as pd
import numpy as np
# 将数据拆分为训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
为了评估模型的表现,我们需要将数据集拆分为训练集和测试集。
接下来,我们将使用sklearn库中的DecisionTreeRegressor类构建一个决策树回归模型。对于决策树回归,我们使用均方误差(MSE)作为损失函数,找到能够最小化损失函数的最优决策树模型。
from sklearn.tree import DecisionTreeRegressor
regressor = DecisionTreeRegressor(random_state=0)
regressor.fit(X_train, y_train)
上面的代码中,我们首先从sklearn.tree模块导入DecisionTreeRegressor类,然后实例化一个决策树回归对象regressor,并指定参数random_state=0,以便每次运行得到的结果都是完全一致的。
接着,我们用训练集(X_train, y_train)拟合(regressor.fit)模型。
接下来,我们使用测试集(X_test, y_test)评估模型的表现。
y_pred = regressor.predict(X_test)
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)
我们首先用模型(regressor)对测试集(X_test)进行预测(regressor.predict),并将结果赋值给变量y_pred。
接着,我们从sklearn.metrics模块导入平均均方误差(mean_squared_error)函数,计算模型的均方误差,并将结果赋值给mse变量。均方误差(MSE)是真实值与预测值之间的平方误差的平均值。
最后,我们打印均方误差(MSE)。
我们可以将模型的预测结果和真实值进行可视化,直观了解模型表现是否良好。
import matplotlib.pyplot as plt
plt.scatter(y_test, y_pred)
plt.xlabel("True Values")
plt.ylabel("Predictions")
plt.show()
上面的代码中,我们首先从matplotlib库中导入pyplot模块,并将其重命名为plt,以便更方便地绘制图形。
接着,我们将测试集的真实值(y_test)和对应的预测值(y_pred)绘制在二维坐标轴上。横坐标为真实值,纵坐标为预测值。如果模型表现良好,点的分布将接近于一条直线。
最后,我们使用plt.show()函数显示图形。
本篇文章介绍了使用Python和sklearn库进行决策树回归的方法。我们首先学习了必要的库的安装和数据处理方法,然后构建了一个决策树回归模型,并使用测试数据评估了模型的表现。最后,我们将模型的预测结果和真实值进行了可视化。