(参考资料:菜菜的sklearn)

重要参数,属性及接口

  • criterion
    1)输入"mse"使用均方误差mean squared error(MSE),父节点和叶子节点之间的均方误差的差额将被用来作为特征选择的标准,这种方法通过使用叶子节点的均值来最小化L2损失 。
    2)输入“friedman_mse”使用费尔德曼均方误差,这种指标使用弗里德曼针对潜在分枝中的问题改进后的均方误差
    3)输入"mae"使用绝对平均误差MAE(mean absolute error),这种指标使用叶节点的中值来最小化L1损失

  • 属性中最重要的依然是feature_importances_,接口依然是apply, fit, predict, score最核心


在回归树中,MSE不只是我们的分枝质量衡量指标,也是我们最常用的衡 量回归树回归质量的指标,我们追求的是MSE越小越好

注意!!回归树的接口score返回的是R平方,并不是MSE。R平方的定义如下:

其中u是残差平方和,v是总平方和。
**虽然均方误差永远为正,但是sklearn当中使用均方误差作为评判标准时,却是计算”负均方误差”(neg_mean_squared_error)。**这是因为sklearn在计算模型评估指标的时候,会考虑指标本身的性质,均 方误差本身是一种误差,所以被sklearn划分为模型的一种损失(loss),因此在sklearn当中,都以负数表示。真正的均方误差MSE的数值,其实就是neg_mean_squared_error去掉负号的数字。

实例:一维回归图像的绘制

用回归树来拟合正弦曲线,并添加一些噪声来 观察回归树的表现。
1.导入需要的库

import numpy as np
from sklearn.tree import DecisionTreeRegressor
import matplotlib.pyplot as plt

2.创建一条含有噪声的正弦曲线

#创建一条含噪声的正弦曲线
rng=np.random.RandomState(1)   #生成随机数种子
5*rng.rand(80,1)   #rand()生成0~1之间的随机数
X = np.sort(5 * rng.rand(80,1), axis=0)   #生成的横坐标的数据
y=np.sin(X).ravel()
y[::5]+=3*(0.5-rng.rand(16))    #[::5],5是步长,每5个数取出来一个加上一个随机数,以此制造噪声
plt.figure()
plt.scatter(X,y,s=20,edgecolor="black",c="darkorange",label="data")  #画散点图


3.实例化训练模型

#实例化训练模型
regr_1 = DecisionTreeRegressor(max_depth=2)
regr_2 = DecisionTreeRegressor(max_depth=5)
regr_1.fit(X, y)
regr_2.fit(X, y)
  1. 测试集导入模型,预测结果
X_test=np.arange(0.0,5.0,0.01)[:,np.newaxis]   #arange(起始点,结束点,步长),[:np.newaxis]用于升维
y_1=regr_1.predict(X_test)    #生成预测值
y_2=regr_2.predict(X_test)

5.绘制图像

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=2", linewidth=2)  #画折线图
plt.plot(X_test, y_2, color="yellowgreen", label="max_depth=5", linewidth=2)
plt.xlabel("data")
plt.ylabel("target")
plt.title("Decision Tree Regression")
plt.legend()
plt.show()

机器学习笔记——决策树之回归树相关推荐

  1. 机器学习笔记——决策树之分类树

    一.什么是决策树 决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题. 本文主要介 ...

  2. 机器学习 | 决策树之回归树

    机器学习 | 决策树之回归树 上文提到决策树不仅可用于分类,还可进行回归,本文将继续记录回归决策树. 文章目录 机器学习 | 决策树之回归树 前言 一.回归树的构建方法 二.递归二分法 三.回归树的剪 ...

  3. CART分类决策树、回归树和模型树算法详解及Python实现

    机器学习经典算法详解及Python实现–CART分类决策树.回归树和模型树 摘要: Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用 ...

  4. Scikit-Learn 机器学习笔记 -- 决策树

    Scikit-Learn 机器学习笔记 – 决策树 参考文档: handson-ml import numpy as np# 加载鸢尾花数据集 def load_dataset():from skle ...

  5. 机器学习-决策树之回归树python实战(预测泰坦尼克号幸存情况)(三)

    本文用通俗易懂的方式来讲解分类树中的回归树,并以"一维回归的图像绘制"和"泰坦尼克号幸存者预测"两个例子来说明该算法原理. 以下是本文大纲: 1 Decisio ...

  6. 机器学习十大算法之-CART分类决策树、回归树和模型树

    转载(http://blog.163.com/zhoulili1987619@126/blog/static/35308201201542731455261/) Classification And ...

  7. 机器学习(8)sklearn画决策树(回归树)

    目录 一.DecisionTreeRegressor 1.criterion 2.接口 3.交叉验证 二.用sklearn画回归树(基于波士顿房价训练模型) 1.导入库 2.训练模型 3.用Graph ...

  8. [机器学习算法]决策树和CART树

    决策树综述 决策树的工作原理 决策树(decision tree)分类法是一种简单但广泛使用的分类技术.以是否贷款违约的二分类问题为例,当我们希望根据给定的训练集习得一个模型对新出现的贷款人进行分类时 ...

  9. 经典算法详解--CART分类决策树、回归树和模型树

    Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Reg ...

最新文章

  1. 隐藏在mock之后的‘快感’
  2. 中国互联网的抑郁:抄与被抄都很痛
  3. java hive配置_Hive配置项的含义详解(1)
  4. 人称代词和Be动词的现在简单肯定式_1
  5. 使用C#: 自动切换鼠标的左右手习惯
  6. 华人团队再获ACL最高奖,这次来自字节跳动的NLP基础研究
  7. linux服务器连接中文,Linux系统遇到SecureCRT连接到linux服务器之后出现乱码问题
  8. java最长同值路径_力扣——最长同值路径
  9. 20. 有效的括号 python
  10. 技嘉Z370 HD3P + i7-8700K + GTX1080 装黑苹果 High Sierra 10.13.6
  11. 卫星遥感数据处理软件SeaDAS
  12. linux的管理权限命令,Linux权限管理命令
  13. 怎么提高win服务器性能,电脑升级win10后,必做的40项性能优化,值得收藏
  14. 苹果摆脱对中国制造的依赖?iPhone14的拆解结果显示恰恰相反,更离不开中国制造了...
  15. 联想t450进入bios设置按哪个键_thinkpad笔记本怎么进bios设置|联想thinkpad开机进bios按哪个键-系统城...
  16. android 让手机震动,Android手机震动的设置步骤
  17. 发票代码的含义(专,普)
  18. 在 Android 中执行 Linux 终端命令
  19. 图灵社区一个有关express的系列文章
  20. 综合性实验:停车场管理程序

热门文章

  1. 两大微服务框架dubbo和spring cloud对比
  2. Debug程序的使用
  3. bzoj1854: [Scoi2010]游戏 贪心
  4. this super的用法
  5. 紫书搜索 习题7-4 UVA - 818 Cutting Chains 暴力+dfs判环+位运算
  6. 一开机未通过输入密码登录,就出现用户名或密码错误??
  7. lucene3.0中使用MultiFieldQueryParser多字段查找
  8. 接口测试怎么进行,如何做好接口测试
  9. JMeter中使用“用户自定义变量”实现参数化
  10. 怎么做软件安全性测试