C6_Decision Tree 决策树初探 以及安装Graphviz可视化生成的决策树

决策树和svm一样是一种通用机器学习算法
既可以做回归,也可以做分类
同时也是Random Forest 随机森林的基本组件

iris数据集

安德森鸢尾花卉数据集,是一类多重变量分析数据集
部分数据

image.png

train

这里我们就是用DecisionTreeClassifier简单的fit了这些数据。然后将它输出成一个graphviz文件,使用这个文件我们就可以讲生成的决策树可视化。

生成的文件

当然,只有这个文件的时候我们是什么也看不到的,里面大概长这样:
dot

这个时候我们需要下载Graphviz这个绘图软件
注意,在这里

https://graphviz.gitlab.io/_pages/Download/Download_windows.html
Windows用户下载这个

安装完之后把安装目录加到环境变量的path里
bin

之后在cmd中输入dot -version检测是否安装成功


dot -version

切换到生成的dot文件所在目录下,输入

dot -Tpng iris_tree.dot -o iris_tree.png


然后我们获得了这个png

iris_tree.png

可以看出,我们只是用了花瓣长度和花瓣宽度两个特征去判别这个样本属于哪一种Iris,首先看长度,小于2.45的就直接被判定成是setosa了,大于的再根据宽度判断是versicolor还是virginica。

决策树的一大好处就是不需要非常大的数据量,也不需要特征缩放和中心化
samples指的是这一类中有多少样本。

value告诉你实际上分布的情况是怎样的,比如第一层的左边的节点里有50个样本,这50个样本全是属于setosa类的,然而右节点里有100个样本,50个是versicolor,50个是virginica。

gini指的是这个节点的纯度,第一层的左边的节点50个样本中全是输入setosa类的,所以是纯的,gini为0。右边的节点是versicolor类,但有一半是virginica,所以gini是0.5。第二层左边是versicolor类,有53个样本但其中只有49个真的是versicolor,所以
gini=1-(0/54)2-(49/54)2 -(5/54)2 ≈0.168。

sklean 使用Cart算法,只能生成二叉树,如果是ID3之类的算法一个节点可以有更多子节点。

决策树的决策边界

Decision Tree通常被当成是一种白盒模型,因为看图就明白它所做的预测的原理都是可以被简单地理解的,而随机森林和神经网络算法则通常被当成黑盒模型。

也可以做概率估计

CART 训练算法

全称Classification And Regression Tree
简单地说就是选取一个特征 k 和一个阈值tk,将训练集分割成两部分,寻找k和tk的方法就是找到一组能够产生最纯的子集的(k,tk).
损失函数为


损失函数

其中G是子集中的不纯度,m是子集中样本数量。
然后它会在子集中做同样的事,,当然我们会加一些制约防止它一直这么干下去。

CART算法是一种贪心算法,通常会给出一个优秀的解,但不一定是最优的选择。不幸的是找出最优的那棵树是一个NP完全问题。

正则化超参数

决策树是一种nonparametric(非参数的)模型,它的参数对训练来说不是很重要,所以很容易就过拟合了。防止过拟合的方法被称作正则化,正则化参数取决于你所用的模型,在sklearn里我们用max_depth来防止过拟合。

DecisionTreeClassifier 有一些其他的参数来规范树的形状。

  • min_samples_split(在被分割前这个子集必须至少包含这么多samples)
  • min_samples_leaf(一个叶节点里必须至少有那么多samples)
  • min_weight_fraction_leaf(大概和上一个一样)
  • max_leaf_nodes(最多有多少节点)
  • max_features(最多有多少特征用来分割)
正则化前:正则化后
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • 1、模型原理 (一)原理 1、原理:引入信息熵(不确定程度)的概念,通过计算各属性下的信息增益程度(信息增益越大,...
    Python_Franklin阅读 12,277评论 0 17
  • 决策树理论在决策树理论中,有这样一句话,“用较少的东西,照样可以做很好的事情。越是小的决策树,越优于大的决策树”。...
    制杖灶灶阅读 5,812评论 0 25
  • 决策树: ID3:其核心是在决策树的各级节点上,实用信息增益(information gain)作为属性的选择标准...
    Vince_zzhang阅读 2,052评论 0 0
  • 前言: 通过第前面的学习介绍了机器学习回归模型创建的流程,并且知道了机器学习要做的事情是找到目标函数,优化它,通过...
    飘涯阅读 6,341评论 4 83
  • 工作日午饭前,经历了一次真正的“谈判”,虽然谈判的过程根本不会有任何记录,因为讨论的结果是不用直接谈判方式,改直接...
    吴佟阅读 192评论 0 0