# -*- coding: utf-8 -*-
"""
Created on Sat Nov 9 10:42:38 2019
Python机器学习算法库——决策树(scikit-learn学习 - 决策树)
06-18 阅读数 1万+
决策树决策树(DTs)是一种用于分类和回归的非参数监督学习方法。目标是创建一个模型,通过从数据特性中推导出简单的决策规则来预测目标变量的值。例如,在下面的例子中,决策树通过一组if-then-else... 博文 来自: Yeoman92的博客
# -*- coding: utf-8 -*-
"""
Created on Sat Nov 9 10:42:38 2019
@author: asus
“”"
“”"
决策树
目的:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import mglearn
from sklearn.model_selection import train_test_split
#导入乳腺癌数据集
from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier
#决策树并非深度越大越好,考虑过拟合的问题
#mglearn.plots.plot_animal_tree()
#mglearn.plots.plot_tree_progressive()
#获取数据集
cancer = load_breast_cancer()
#对数据集进行切片
X_train,X_test,y_train,y_test = train_test_split(cancer.data,cancer.target,
stratify = cancer.target,random_state = 42)
#查看训练集和测试集数据
print(‘train dataset :{0} ;test dataset :{1}’.format(X_train.shape,X_test.shape))
#建立模型(基尼不纯度算法(gini)),使用不同最大深度和随机状态和不同的算法看模型评分
tree = DecisionTreeClassifier(random_state = 0,criterion = ‘gini’,max_depth = 5)
#训练模型
tree.fit(X_train,y_train)
#评估模型
print(“Accuracy(准确性) on training set: {:.3f}”.format(tree.score(X_train, y_train)))
print(“Accuracy(准确性) on test set: {:.3f}”.format(tree.score(X_test, y_test)))
print(tree)
# 参数选择 max_depth,算法选择基尼不纯度算法(gini) or 信息熵(entropy)
def Tree_score(depth = 3,criterion = ‘entropy’):
“”"
参数为max_depth(默认为3)和criterion(默认为信息熵entropy),
函数返回模型的训练精度和测试精度
“”"
tree = DecisionTreeClassifier(criterion = criterion,max_depth = depth)
tree.fit(X_train,y_train)
train_score = tree.score(X_train, y_train)
test_score = tree.score(X_test, y_test)
return (train_score,test_score)
#gini算法,深度对模型精度的影响
depths = range(2,25)#考虑到数据集有30个属性
scores = [Tree_score(d,‘gini’) for d in depths]
train_scores = [s[0] for s in scores]
test_scores = [s[1] for s in scores]
plt.figure(figsize = (6,6),dpi = 144)
plt.grid()
plt.xlabel(“max_depth of decision Tree”)
plt.ylabel(“score”)
plt.title("‘gini’")
plt.plot(depths,train_scores,’.g-’,label = ‘training score’)
plt.plot(depths,test_scores,’.r–’,label = ‘testing score’)
plt.legend()
#信息熵(entropy),深度对模型精度的影响
scores = [Tree_score(d) for d in depths]
train_scores = [s[0] for s in scores]
test_scores = [s[1] for s in scores]
plt.figure(figsize = (6,6),dpi = 144)
plt.grid()
plt.xlabel(“max_depth of decision Tree”)
plt.ylabel(“score”)
plt.title("‘entropy’")
plt.plot(depths,train_scores,’.g-’,label = ‘training score’)
plt.plot(depths,test_scores,’.r–’,label = ‘testing score’)
plt.legend()
运行结果:
很明显看的出来,决策树深度越大,训练集拟合效果越好,但是往往面对测试集的预测效果会下降,这就是过拟合。
参考书籍:《Python机器学习基础教程》
有 0 个人打赏
发表评论
添加代码片
还能输入1000个字符
3.1决策树理论--python深度机器学习
08-03 阅读数 166
参考彭亮老师的视频教程:转载请注明出处及彭亮老师原创视频教程:http://pan.baidu.com/s/1kVNe5EJ0.机器学习中分类和预测算法的评估:准确率速度强壮行可规模性可解释性 1.... 博文 来自: aijun123456的博客
【机器学习】CART决策树原理及python实现
10-23 阅读数 28
本文为本人在学习机器学习决策树部分的一些笔记和思考,以及python编程实现算法的具体步骤决策树(decisiontree)是一类常见的机器学习方法.在已知各种情况发生概率的基础上,通过构成决策树来求... 博文 来自: 睡觉的咖啡
【机器学习算法-python实现】决策树-Decision tree(2) 决策树的实现
04-25 阅读数 1万+
(转载请注明出处:http://blog.csdn.net/buptgshengod)1.背景 接着上一节说,没看到请先看一下上一节关于数据集的划分数据集划分。现在我们得到了每个特征值得信息熵增益... 博文 来自: 李博Garvin的专栏
五款高效率黑科技神器工具,炸裂好用,省时间
10-20 阅读数 1万+
loonggg读完需要4分钟速读仅需2分钟感觉我好久好久没有给大家分享高质量的软件和插件了。今天周末,难得在家休息一下,痛下决心,分享一些我认为的高效率工具软件给大家。废...... 博文
动画:用动画给女朋友讲解 TCP 四次分手过程
10-21 阅读数 2万+
作者 | 小鹿 来源 | 公众号:小鹿动画学编程
写在前边
大家好,我们又见面了,做为一个业余的动画师,上次的用动画的形式讲解 TCP 三次握手过程再各大平台收到了广大读者的喜爱,说文章有趣、有…
博文
程序员必须掌握的核心算法有哪些?
10-21 阅读数 5万+
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,... 博文
python 程序员进阶之路:从新手到高手的100个模块
10-23 阅读数 3万+
在知乎和CSDN的圈子里,经常看到、听到一些 python 初学者说,学完基础语法后,不知道该学什么,学了也不知道怎么用,一脸的茫然。近日,CSDN的公众号推送了一篇博客,题目叫做《迷思:Python... 博文
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
10-22 阅读数 2万+
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树
动…
博文
程序员不懂浪漫?胡扯!
10-22 阅读数 1万+
程序员男朋友你的程序员男朋友为你做过什么暖心的事情呢?我的男朋友是一个程序员,他有很多大家在网络上吐槽的程序员的缺点,比如加班很多,没空陪我吃饭逛街看电影,比如说他有的时...... 博文
Java 8:一文掌握 Lambda 表达式
10-23 阅读数 1万+
本文将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并对 Lambda 表达式的原理进行分析,最后对 Lambda 表达式的优缺点进行一个总... 博文
Python中几个非常有趣的模块
10-24 阅读数 1万+
最近学习Python,发现了许多有趣的模块。感觉开启了新世界的大门,因为我也不是对所有模块都熟悉,所以今天不是讲代码。 1、ItChat 这是一个微信自动回复的模块,因为我微信一直无法登陆,所以也没有... 博文
Linux/C/C++ 不可错过的好书
10-24 阅读数 4161
来源:公众号【编程珠玑】
作者:守望先生
ID:shouwangxiansheng
前言
经常有读者让我推荐书籍,这次我就把我私藏的计算机书单分享给你们!不过由于时间匆忙,不会进行更加详细…
博文
Python自动化完成tb喵币任务
10-25 阅读数 1万+
2019双十一,tb推出了新的活动,商店喵币,看了一下每天都有几个任务来领取喵币,从而升级店铺赚钱,然而我既想赚红包又不想干苦力,遂使用python来进行手机自动化操作,目测全网首发!
用到的库:
…
博文
从月薪3K的中专生,到身家千万的CTO!人生最大的对手,就是自已
10-25 阅读数 1万+
关注“技术领导力”博客,独家大厂干货推送
文/Daniel.W
David坐在我对面,窗外是梦境般的外滩夜景,繁星点点的璀璨灯火,散落在黄浦江两岸。我转过头对David说,你丫挺会享受啊,约我…
博文
这应该是把计算机网络五层模型讲的最好是文章了,看不懂你打我
10-25 阅读数 1万+
帅地:用心写好每一篇文章!
前言
天各一方的两台计算机是如何通信的呢?在成千上万的计算机中,为什么一台计算机能够准确着寻找到另外一台计算机,并且把数据发送给它呢?
可能很多人都听说过网络通信的 5 …
博文
单点登录(SSO)
10-26 阅读数 1万+
一、SSO(单点登录)介绍
SSO英文全称Single SignOn,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用…
博文
漫话:什么是 https ?这应该是全网把 https 讲的最好的一篇文章了
10-26 阅读数 1万+
今天这篇文章,讲通过对话的形式,让你由浅入深着知道,为什么 Https 是安全的。
一、对称加密
一禅:在每次发送真实数据之前,服务器先生成一把密钥,然后先把密钥传输给客户端。之后服务器给客…
博文
史上最全的mysql基础教程
10-28 阅读数 3673
启动与停止
启动mysql服务
sudo /usr/local/mysql/support-files/mysql.server start
停止mysql服务
sudo /usr/loc…
博文
为什么你学不会递归?告别递归,谈谈我的经验
10-28 阅读数 1万+
可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! 可能也有一大部分人知道递归,也能看的懂递归,但在实... 博文
大学四年,分享看过的优质书籍
10-27 阅读数 1万+
数据结构与算法是我在大学里第一次接触到的,当时学了很多其他安卓、网页之类的,一开始就感觉纳闷,数据结构和算法学这个有啥用,再加上上的是一所野鸡大学,老师讲的也是模模糊糊,平时做项目、练习也几乎不用数据... 博文
2019双十一淘宝天猫刷喵币
10-28 阅读数 1万+
实现步骤
下载并安装Auto.js
官网网址:https://hyb1996.github.io/AutoJs-Docs
Github地址:https://github.com/hyb1996/Au…
博文
有哪些让程序员受益终生的建议
10-28 阅读数 1万+
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。
敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自…
博文
最近程序员频繁被抓,如何避免面向监狱编程!?
10-28 阅读数 5万+
最近,有关程序员因为参与某些项目开发导致被起诉,甚至被判刑的事件发生的比较多: 某程序员因为接了个外包,帮别人写了个软件,结果这个软件被用于赌博导致被抓。 某公司利用爬虫抓取用户信息,最后被发现,导致... 博文
一文搞懂什么是TCP/IP协议
10-28 阅读数 1万+
什么是TCP/IP协议?
计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件…
博文
各大公司在GitHub上开源投入排名分析
11-05 阅读数 2120
基于GitHub的数据进行分析各个公司在开源上的投入排名 博文
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
10-28 阅读数 7万+
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频... 博文
学习 Java 应该关注哪些网站?
10-28 阅读数 1万+
经常有一些读者问我:“二哥,学习 Java 应该关注哪些网站?”,我之前的态度一直是上知乎、上搜索引擎搜一下不就知道了。但读者对我这个态度很不满意,他们说,“我在问你,又不是问知乎,问搜索引擎。”你还... 博文
哪些 Java 知识不需要再学了
10-28 阅读数 9254
张无忌在学太极拳的时候,他爹的师父张三丰告诫他一定要把之前所学习的武功全部忘掉,忘得越多就会学得越快。 同样的,自学 Java 的时候一定要先知道哪些 Java 知识不需要再学了,毕竟技术的更新迭代就... 博文
二叉树(从建树、遍历到存储)Java
11-06 阅读数 430
目录一、结构二、二叉树的遍历1.前序遍历(递归+非递归)2.中序遍历(递归+非递归)3.后序遍历(递归+非递归)4.层次遍历代码功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图... 博文
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
11-03 阅读数 2658
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。... 博文
大学四年,我把私藏的自学「学习网站/实用工具」都贡献出来了
10-29 阅读数 2万+
在分享之前,先说说初学者如何学习编程,这个话题想必非常的重要,要学好编程,给你一些学习网站也好、实用工具也好,但前提是你知道如何去学习它。 见过很多初学者,以及小鹿我刚开始学习的时候,也是自己瞎摸索,... 博文
中国麻将:世界上最早的区块链项目
10-29 阅读数 2万+
中国麻将:世界上最早的区块链项目
最近区块链这个玩意又被市场搞的很是火热,相信大部分人都不太清楚这玩意到底是怎么样的一个概念,它来了,它来了,它到底是啥~ 国家都开始发文支持了,下面是一个通俗易懂的…
博文
比特币原理详解
10-29 阅读数 7296
一、什么是比特币
比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是…
博文
Python 基础(一):入门必备知识
10-30 阅读数 1万+
Python 入门必备知识,你都掌握了吗? 博文
Spring简介、框架核心、优缺点、应用场景
10-29 阅读数 2649
文章目录Spring简介Spring的设计目标Spring的优缺点优点缺点Spring的应用场景 Spring简介
Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是…
博文
这30个CSS选择器,你必须熟记(上)
10-30 阅读数 1万+
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...... 博文
L 型程序员,要火!
10-29 阅读数 7633
作者 | 胡巍巍出品 | CSDN(ID:CSDNnews)试问人间职业谁最迷?敲代码的程序员算一个。既要被当作修电脑的,还要被当作做网站的;既要被当作杀毒的,还要被当作...... 博文
兼职程序员一般可以从什么平台接私活?
10-31 阅读数 2万+
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~
根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。
所谓的兼职职位众…
博文
程序员接私活怎样防止做完了不给钱?
10-31 阅读数 1万+
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。
那…
博文
没有更多推荐了,返回首页
©️2019 CSDN
皮肤主题: 游动-白
设计师:
上身试试