目录

决策树的学习曲线

学习曲线

基于RMSE绘制学习曲线

基于R^2值绘制学习曲线

以max_depth参数为例,看不同参数学习曲线的不同

模型复杂度曲线


决策树的学习曲线

from sklearn import datasetsboston = datasets.load_boston()
X = boston.data
y = boston.targetfrom sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)

学习曲线

基于RMSE绘制学习曲线

from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_squared_errordef plot_learning_curve(algo, X_train, X_test, y_train, y_test):train_score = []test_score = []for i in range(1, len(X_train)+1):algo.fit(X_train[:i], y_train[:i])y_train_predict = algo.predict(X_train[:i])train_score.append(mean_squared_error(y_train[:i], y_train_predict))y_test_predict = algo.predict(X_test)test_score.append(mean_squared_error(y_test, y_test_predict))plt.plot([i for i in range(1, len(X_train)+1)], np.sqrt(train_score), label="train")plt.plot([i for i in range(1, len(X_train)+1)], np.sqrt(test_score), label="test")plt.legend()plt.show()plot_learning_curve(DecisionTreeRegressor(), X_train, X_test, y_train, y_test)

基于R^2值绘制学习曲线

from sklearn.metrics import r2_scoredef plot_learning_curve_r2(algo, X_train, X_test, y_train, y_test):train_score = []test_score = []for i in range(1, len(X_train)+1):algo.fit(X_train[:i], y_train[:i])y_train_predict = algo.predict(X_train[:i])train_score.append(r2_score(y_train[:i], y_train_predict))y_test_predict = algo.predict(X_test)test_score.append(r2_score(y_test, y_test_predict))plt.plot([i for i in range(1, len(X_train)+1)], train_score, label="train")plt.plot([i for i in range(1, len(X_train)+1)], test_score, label="test")plt.legend()plt.axis([0, len(X_train)+1, -0.1, 1.1])plt.show()plot_learning_curve_r2(DecisionTreeRegressor(), X_train, X_test, y_train, y_test)

以max_depth参数为例,看不同参数学习曲线的不同

模型复杂度曲线

from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import r2_scoremaxSampleLeaf = 506
train_scores = []
test_scores = []
for i in range(1, maxSampleLeaf+1):dt_reg = DecisionTreeRegressor(min_samples_leaf=i)dt_reg.fit(X_train, y_train)y_train_predict = dt_reg.predict(X_train)train_scores.append(r2_score(y_train, y_train_predict))test_scores.append(dt_reg.score(X_test, y_test))plt.plot([i for i in range(1, maxSampleLeaf+1)], train_scores, label="train")
plt.plot([i for i in range(1, maxSampleLeaf+1)], test_scores, label="test")
plt.xlim(506, 1)
plt.legend()
plt.show()

maxSampleLeaf = 100
train_scores = []
test_scores = []
for i in range(1, maxSampleLeaf+1):dt_reg = DecisionTreeRegressor(min_samples_leaf=i)dt_reg.fit(X_train, y_train)y_train_predict = dt_reg.predict(X_train)train_scores.append(r2_score(y_train, y_train_predict))test_scores.append(dt_reg.score(X_test, y_test))plt.plot([i for i in range(1, maxSampleLeaf+1)], train_scores, label="train")
plt.plot([i for i in range(1, maxSampleLeaf+1)], test_scores, label="test")
plt.xlim(maxSampleLeaf, 1)
plt.legend()
plt.show()

maxSamplesSplit = 300
train_scores = []
test_scores = []
for i in range(2, maxSamplesSplit+1):dt_reg = DecisionTreeRegressor(min_samples_split=i)dt_reg.fit(X_train, y_train)y_train_predict = dt_reg.predict(X_train)train_scores.append(r2_score(y_train, y_train_predict))test_scores.append(dt_reg.score(X_test, y_test))plt.plot([i for i in range(2, maxSamplesSplit+1)], train_scores, label="train")
plt.plot([i for i in range(2, maxSamplesSplit+1)], test_scores, label="test")
plt.xlim(maxSamplesSplit, 2)
plt.legend()
plt.show()

第12章 决策树 学习笔记下 决策树的学习曲线 模型复杂度曲线相关推荐

  1. 【深度学习(deep learning)】花书第12章 应用 读书笔记

    [深度学习(deep learning)]花书第12章 应用 读书笔记 第12章 应用 [深度学习(deep learning)]花书第12章 应用 读书笔记 前言 一.大规模深度学习 1.快速的CP ...

  2. cart算法_决策树学习笔记(三):CART算法,决策树总结

    点击上方"Python数据科学",选择"星标公众号" 关键时刻,第一时间送达! 作者:xiaoyu 介绍:一个半路转行的数据挖掘工程师 推荐导读:本篇为树模型系 ...

  3. 《机器学习基石》第12节课学习笔记

    第12节课  Nonlinear Transformation 这节课主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行线性分类.本节课完整学习了非线性变 ...

  4. 控制系统仿真与CAD-薛定宇-第四章matlab学习笔记

    控制系统仿真与CAD-薛定宇-第四章matlab学习笔记 04-02传递函数模型 tfdata() 传递函数属性法 04-07典型系统连接计算 pretty 用法 04-08方框图简化 04-09代数 ...

  5. Deep Learning(深度学习)学习笔记整理系列之常用模型

    Deep Learning(深度学习)学习笔记整理系列之常用模型(四.五.六.七) 九.Deep Learning的常用模型或者方法 9.1.AutoEncoder自动编码器 Deep Learnin ...

  6. PyTorch学习笔记(五):模型定义、修改、保存

    往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本系列目录: PyTorch学习笔记(一):PyTorch环境安 ...

  7. 【转】Fluent学习笔记(10)-----多相流模型

    [转]Fluent学习笔记(10)-----多相流模型 http://blog.sina.com.cn/s/blog_c041a1eb01018gbf.html 多相流是指有两种或者两种以上不同相的物 ...

  8. NetLogo学习笔记5 —— 物种与传染病模型

    NetLogo学习笔记5 -- 物种与传染病模型 (模型经过一些修改,与标准SIR模型有些出入) 在上一篇文章,我们学习了随机选择.伪并发.ifelse和of语法.实现了用于解释隔离现象的谢林模型 这 ...

  9. 【强化学习笔记】4.3 无模型的强化学习方法-蒙特卡罗算法与重要性采样

    异策略与重要性采样 因为异策略中的行动策略和目标策略不一样,也就是说行动策略产生的数据分布与目标策略的数据分布存在偏差,即即行动策略的轨迹概率分布和改善策略的轨迹概率分布不一样,因此在使用数据进行目标 ...

  10. 最大熵学习笔记(三)最大熵模型

    生活中我们常常听到人们说"不要把鸡蛋放到一个篮子里",这样能够减少风险.深究一下,这是为什么呢?事实上,这里边包括了所谓的最大熵原理(The Maximum Entropy Pri ...

最新文章

  1. 魔与道的反复较量 反垃圾邮件技术
  2. mysql 5.5 编译参数_Mysql 5.5 编译参数
  3. ajax传递对象数组
  4. 模式识别,计算机视觉,计算机图形学,智能控制,信号处理,语音识别,知识处理,机器学习,数据挖掘领域区别
  5. 文件共享服务器连接数问题,共享服务器上连接数量的设置
  6. Spring AOP底层实现原理
  7. 云头条 |华为云发布全新Slogan;AWS推出DocumentDB;FRB信号刷屏
  8. 熬夜都要看完的 Spring 干货!
  9. 设置相机的距离_数码相机的曝光判断标准是什么
  10. Nginx(一)-- 初体验
  11. MediaInfo源代码分析 4:Inform()函数
  12. mt6735 [AT Command] AP下发AT+CLAC命令后 ,手机出现宕机
  13. PDF怎么合并?分享几种非常简单的合并方法
  14. ODATA 后台报错,添加message
  15. 算法【动态规划】 | 【01】二维表结构
  16. 自门控激活函数Swish
  17. 在外公网调阅公司内网资料文件【内网穿透】
  18. sqlmap使用图解
  19. 网站导航、收录多个领域的网站、工具,持续更新中。
  20. 红米K30pro问题小记

热门文章

  1. 二建公路工程知识总结_2020二建公路实务:专题突破+高分攻略,拿分90稳过二建...
  2. Arduion 底层原理之 setup函数和loop函数
  3. coreldraw+排灯_CorelDRAW打造七彩灯泡
  4. c语言文件读入到链表函数fscanf,【求解答】c关于把文件数据放进链表,并将链表遍历...
  5. html 源码_(带手机版数据同步)中国风古典园林石业织梦模板 水墨风格园林艺术网站源码下载...
  6. mysql指定库执行sql语句_对多个mysql的一部分库进行执行sql语句
  7. matlab 一维 fft,matlab - 一维信号的频谱分析(FFT等) - 堆栈内存溢出
  8. 单片机蜂鸣器编程音乐_工程师,还有6个引脚封装的单片机?涨知识了
  9. python下载速度显示_Python获取下载速度并显示进度条
  10. Kubernetes集群管理部署