在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库中的决策树回归方法也提供了许多参数和选项,可以根据实际问题的要求进行调整和优化。
