目录

一、DecisionTreeRegressor

1、criterion

2、接口

3、交叉验证

二、用sklearn画回归树(基于波士顿房价训练模型)

1、导入库

2、训练模型

3、用Graphviz画回归树

三、回归树对正弦函数上的噪音点降噪

1、导入库

2、生成带噪音点的正弦函数

3、训练模型

4、画plt图


一、DecisionTreeRegressor

sklearn.tree._classes.DecisionTreeRegressor

def __init__(self,
             *,
             criterion: Any = "squared_error",
             splitter: Any = "best",
             max_depth: Any = None,
             min_samples_split: Any = 2,
             min_samples_leaf: Any = 1,
             min_weight_fraction_leaf: Any = 0.0,
             max_features: Any = None,
             random_state: Any = None,
             max_leaf_nodes: Any = None,
             min_impurity_decrease: Any = 0.0,
             ccp_alpha: Any = 0.0) -> None

1、criterion

criterion作为回归树的衡量分枝的指标,也是衡量回归树回归质量的指标,有三种标准:

(1)“mse”:均方误差,父节点和叶子节点之间的均方误差的差额来作为特征选择的标准,这种方法通过叶子节点的的均值来最小化L2损失

(2)“friedman_mse”:费尔德曼均方误差,针对潜在分枝问题改进后的均方误差

(3)“mae”:绝对平均误差,这种方法通过使用叶子节点的中值来最小化L1损失

计算机中默认用负均方误差(neg_mean_squared_error)来进行运算与存储。

2、接口

回归树中的重要接口仍然是apply,fit,score,predict,feature_importance_。

但是score返回的是R^2,即相关系数,而非MSE。

可以通过参数scoring来指定负均方误差返回。

score=cross_val_score(dtg,boston.data,boston.target,cv=10,scoring='neg_mean_squared_error')

3、交叉验证

交叉验证:通过将数据划分为n份,依次使用其中一份作为测试集,其他n-1份作为训练集,多次计算模型的精确性来评估模型的平均准确程度。由于训练集和测试集的划分会存在干扰模型的结果,因此多次进行交叉验证来求出平均值,能提升模型准确率。

二、用sklearn画回归树(基于波士顿房价训练模型)

1、导入库

from sklearn.datasets import load_boston                #导入波士顿房价数据集
from sklearn.model_selection import cross_val_score     #交叉验证函数
from sklearn.tree import DecisionTreeRegressor          #回归树
from sklearn import tree                                #导入tree

2、训练模型

boston=load_boston()
dtg=DecisionTreeRegressor(random_state=0)             #criterion默认为MSE
score=cross_val_score(dtg                             #十次交叉验证,boston.data,boston.target,cv=10,scoring='neg_mean_squared_error')print(score)                                          #输出负均方误差

3、用Graphviz画回归树

import graphviz                            #导入graphviz库
feature_names=boston.feature_names         #标签使用boston房价特征
data_graph=tree.export_graphviz(dtg.fit(boston.data,boston.target)  #第一个参数是训练好的模型,不是回归树类,feature_names=feature_names,filled=True,rounded=True)
graph=graphviz.Source(data_graph)
graph.view()

回归树的图太庞大的,不便在此处演示。

三、回归树对正弦函数上的噪音点降噪

1、导入库

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

2、生成带噪音点的正弦函数

rng=np.random.RandomState(1)            #随机数种子
x=np.sort(10*rng.rand(80,1),axis=0)     #生成0-10之间随机数x取值
y=np.sin(x).ravel()                     #生成正弦曲线y值
y[::5]+=1*(0.5-rng.rand(16))            #正弦函数上每过五个点生成一个随机噪音,共16个点

3、训练模型

regr_1=DecisionTreeRegressor(max_depth=5)            #分别生成深度为5和8的回归树
regr_2=DecisionTreeRegressor(max_depth=8)
regr_1=regr_1.fit(x,y)                               #训练模型
regr_2=regr_2.fit(x,y)

4、画plt图

x_test=np.arange(0,10,0.01)[:,np.newaxis]             #对x_test进行升维,其中':'在的位置为原始维度,np.newaxis为补充维度
y_1=regr_1.predict(x_test)
y_2=regr_2.predict(x_test)plt.figure()                                          #展开画布
plt.scatter(x,y,s=20,color='r')
plt.plot(x_test,y_1,color='b',label='max_depth=5')
plt.plot(x_test,y_2,color='g',label='max_depth=8')    #过拟合
plt.legend()                                          #坐标显示
plt.show()

从图中可以看出max_depth=8时,过于依赖数据(包括噪音点),造成过拟合。

机器学习(8)sklearn画决策树(回归树)相关推荐

  1. 【机器学习】监督学习--(回归)决策树③--回归树

    注:数据集在文章末尾 (1)回归树 import numpy as np import matplotlib.pyplot as plt from sklearn import tree# 载入数据 ...

  2. 机器学习(五)—— 决策树回归模型和集合算法

    决策树回归模型和集合算法 1. 决策树概述 决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率 --百度百科 决策树就是我们通常所 ...

  3. 推荐系统笔记:决策树回归树

    决策树和回归树经常用于数据分类. 决策树是为那些因变量(target,label)是分类的情况而设计的,而回归树是为那些因变量(target,label)是数值的情况而设计的.          在讨 ...

  4. Python 机器学习 利用sklearn构建决策树的实现 2

    决策树 import numpy as npimport os%matplotlib inlineimport matplotlibimport matplotlib.pyplot as pltplt ...

  5. Python机器学习 使用sklearn构建决策树复习

    熵值的计算公式如上图. 预剪枝:是在决策树的生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分即结束树的构建并将当前节点标记为叶结点: 后剪枝:是先从训练 ...

  6. Lesson 8.3Lesson 8.4 ID3、C4.5决策树的建模流程CART回归树的建模流程与sklearn参数详解

    Lesson 8.3 ID3.C4.5决策树的建模流程 ID3和C4.5作为的经典决策树算法,尽管无法通过sklearn来进行建模,但其基本原理仍然值得讨论与学习.接下来我们详细介绍关于ID3和C4. ...

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

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

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

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

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

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

最新文章

  1. 使用SHA256证书进行微软数字签名代码签名
  2. 状态模式 设计模式_设计模式:状态
  3. django web 自定义通用权限控制
  4. 机器学习数据集哪里找:最佳数据集来源盘点 1
  5. 使用HttpClient连接池进行https单双向验证
  6. OpenSSL生成root CA及签发证书
  7. 全新的基于 Windows NT (2000/XP/2003) 的媒体解码包.
  8. classmethod自己定制
  9. Java web 实现视频在线播放的常用几种方法
  10. android studio设置SVN忽略
  11. WIN10为什么手机连接电脑开启热点后,电脑不能上网?
  12. 5、ORB-SLAM闭环检测之通过求解出来的sim3寻找当前关键帧和闭环候选帧之间的更多匹配
  13. 算法设计与分析课设-探寻宝藏-双线程DP问题-C语言
  14. AD域服务器作用及好处
  15. Unity开发VR项目(四)—— 创建VR场景
  16. 使用cryptsetup加密硬盘
  17. win7安全模式如何打开计算机管理,Win7怎么退出安全模式 win7系统退出安全模式的方法...
  18. java thread dump
  19. 服务器中了挖矿病毒的检测及删除方法
  20. Oracle物化视图的使用总结

热门文章

  1. 高通8996启动流程-4. lk启动之boot_linux_from_mmc
  2. Seek the Name, Seek the Fame POJ - 2752(KMP应用)
  3. Qt Quick实现局域网聊天V4版本(支持GIF动图表情包、消息聊天、拖动缩放窗口、支持Linux编译)
  4. ios12测试版软件不兼容,5款旧iPhone运行iOS12.4测试版速度比较:有点失望
  5. AlwaysOn的实施笔记
  6. 外贸人如何利用领英LinkedIn开拓海外市场?这七大妙招你要知道
  7. 把时间当作朋友-读后感
  8. 【iOS-iap防护】验证用户付费收据!拒绝iap Cracker!拒绝iap Free!让iphone越狱用户无从下手!
  9. 极好用的win10精品软件推荐
  10. Executor执行器