sklearn回归树

回归树

几乎所有参数,属性及接口都和分类树一模一样。需要注意的是,在回归树中没有标签分布是否均衡的问题,因此没有class_weight这样的参数。

criterion

回归树衡量分枝质量的指标:

  1. mse:均方误差,这种方法通过使用叶子节点的均值来最小化L2损失
  2. friedman_mse:费尔德曼均方误差,这种指标针对潜在分枝中的问题改进后的均方误差
  3. mae:绝对平均误差,这种指标使用叶节点的中值来最小化L1损失
    属性中最重要的依然是feature_importances_,接口依然是apply, fit, predict, score最核心

MSE的本质就是样本真实数据和回归结果的差异。**在回归树中,MSE不只是我们的分枝质量衡量指标,也是我们最常用的衡量回归树回归质量的指标。**当使用交叉验证,或其他方式获取回归树的结果时,往往选择均方误差作为评估。回归树中,MSE越小越好。回归树的接口score返回的是R平方,并不是MSE。

均方误差永远为正,但是sklearn当中使用均方误差作为评判标准时,是计算“负均方误差”,因此在sklearn中,真正的误差MSE的数值,其实就是neg_mean_squared_error去掉负号的数字。

简单回归树工作&交叉验证cross_val_score的用法

from sklearn.datasets import load_boston
from sklearn.model_selection import cross_val_score #导入交叉验证的包
from sklearn.tree import DecisionTreeRegressor

regressor = DecisionTreeRegressor(random_state=0)
cross_val_score(regressor, boston.data, boston.target, cv=10,
                scoring = "neg_mean_squared_error" 
                #什么都不填默认返回R平方,将其改为负均方误差NMSE
               )
----------------------------------------------------------
array([-18.08941176, -10.61843137, -16.31843137, -44.97803922,
       -17.12509804, -49.71509804, -12.9986    , -88.4514    ,
       -55.7914    , -25.0816    ])

一维回归的图像绘制

在二维平面上观察决策树怎么样拟合一条曲线。我们使用回归树来拟合正弦曲线,并添加一些噪声来观察回归树的表现。

导入需要的库
import numpy as np
from sklearn.tree import DecisionTreeRegressor
import matplotlib.pyplot as plt
创建一条含有噪声的正弦曲线

基本思路:首先创造一组随机,在0-5上的横坐标轴的取值(x),然后将这一组值放到sin函数中去生成纵坐标的值(y),再对y添加噪声。

rng = np.random.RandomState(1) #添加随机种子
x = np.sort(5*rng.rand(80,1),axis=0) #进行排序
y = np.sin(x).ravel() #导入函数sinx,并进行降维
y[::5] += 3* (0.5 - rng.rand(16)) #在正弦曲线上添加噪声
模型实例化&训练&导入测试集
regr_1 = DecisionTreeRegressor(max_depth = 3)
regr_2 = DecisionTreeRegressor(max_depth = 5)
regr_1.fit(x,y)
regr_2.fit(x,y)

X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis] #np.newaxis进行升维 np.arange(起始值,最终值,步长)
y_1 = regr_1.predict(X_test) #由于传入测试集故需升维
y_2 = regr_2.predict(X_test)
绘制图像
plt.figure() #创建一个画布
plt.scatter(x, y, s=20, edgecolor="black", c="darkorange", label="data")
plt.plot(X_test, y_1,color="cornflowerblue", label="max_depth=3", linewidth=2)
plt.plot(X_test, y_2, color="yellowgreen", label="max_depth=5", linewidth=2)
plt.title("Decision Tree Regressor")
plt.legend()
plt.show()
最终结果

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
sklearn中,决策回归是通过构建回归来进行预测的。回归的结构与分类类似,但在叶节点上存储的是一个连续值,而不是离散的类别。通过对特征的逐层划分,回归可以将输入的样本分成不同的区域,并为每个区域预测一个连续的输出值。 决策回归的基本概念包括: 1. 回归的构建:从根节点开始,按照决策的分类属性逐层往下划分,直到叶节点,获得分类结果。 2. 分裂准则:决策回归使用的分裂准则一般是最小化平方误差(MSE)或平均绝对误差(MAE)。 3. 剪枝:为了防止过拟合,决策回归可以通过剪枝操作来降低模型复杂度。 在sklearn中,可以使用DecisionTreeRegressor类来构建决策回归模型。通过fit方法传入训练数据,模型会自动学习并构建回归。然后可以使用predict方法对新的数据进行预测,得到连续的输出值。 总结起来,sklearn的决策回归是一种基于回归的预测方法,通过对特征的逐层划分,将输入的样本分成不同的区域,并为每个区域预测一个连续的输出值。它是一种灵活且易于解释的预测模型,适用于处理连续型的目标变量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [sklearn中的决策回归)](https://blog.csdn.net/qq_33761152/article/details/123976106)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [机器学习--sklearn之决策(分类+回归)](https://blog.csdn.net/qq_36758914/article/details/104298371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值