欢迎访问宙启技术站
智能推送

在Python中使用sklearn.tree进行决策树回归分析

发布时间:2024-01-05 19:40:10

在Python中,使用scikit-learn库中的sklearn.tree模块可以进行决策树回归分析。决策树回归是一种非参数的回归方法,通过构建一棵二叉树来拟合数据集,将输入空间划分为多个空间区域,并在每个区域内预测出相应的输出值。

首先,我们需要导入相应的库和模块:

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_squared_error, r2_score

接下来,我们可以以一个示例数据集来进行决策树回归分析。假设我们有一组房屋数据,其中包括房屋的面积和价格,我们希望通过面积来预测房屋的价格。首先,我们可以从数据集中分离出输入特征X和输出标签y:

X = np.array([[60], [70], [80], [90], [100]])
y = np.array([300, 400, 500, 600, 700])

然后,我们可以将数据集分成训练集和测试集,一般按照70%的数据作为训练集,30%的数据作为测试集:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

接下来,我们可以创建一个决策树回归模型,并对训练集进行拟合:

model = DecisionTreeRegressor(random_state=42)
model.fit(X_train, y_train)

然后,我们可以使用训练好的模型对测试集进行预测:

y_pred = model.predict(X_test)

在完成了预测之后,我们可以使用均方误差(Mean Squared Error, MSE)和确定系数(Coefficient of Determination, R2)来评估模型的拟合效果。均方误差衡量了预测值和真实值之间的差异程度,值越小表示模型的拟合效果越好;确定系数则表示模型对数据的拟合优度,值越接近1表示模型的拟合效果越好:

mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print("Mean Squared Error:", mse)
print("R^2:", r2)

最后,我们可以打印出预测结果和真实标签的对比,以便直观地了解模型的拟合效果:

for i in range(len(y_pred)):
    print("Predicted:", y_pred[i], "Actual:", y_test[i])

以上就是使用sklearn.tree进行决策树回归分析的基本步骤和示例代码。决策树回归方法简单直观,适用于各种类型的回归问题。同时,sklearn库中的决策树回归方法也提供了许多参数和选项,可以根据实际问题的要求进行调整和优化。