1.Demo

  1. from sklearn import tree
  2. import pydotplus
  3. import numpy as np
  4. #李航p59表数据
  5. #年龄,有工作,有自己房子,信贷情况,类别
  6. #青年0 中年1 老年2
  7. #否0 是1
  8. #一般0 好1 非常好2
  9. datasets = np.array([['', '', '', '', ''],
  10. ['', '', '', '', ''],
  11. ['', '', '', '', ''],
  12. ['', '', '', '', ''],
  13. ['', '', '', '', ''],
  14. ['', '', '', '', ''],
  15. ['', '', '', '', ''],
  16. ['', '', '', '', ''],
  17. ['', '', '', '', ''],
  18. ['', '', '', '', ''],
  19. ['', '', '', '', ''],
  20. ['', '', '', '', ''],
  21. ['', '', '', '', ''],
  22. ['', '', '', '', ''],
  23. ['', '', '', '', '']])
  24. X = datasets[:,:4]
  25. Y = datasets[:,4:5]
  26. clf = tree.DecisionTreeClassifier()
  27. clf.fit(X,Y)
  28. dot_data = tree.export_graphviz(clf,out_file=None)
  29. graph = pydotplus.graph_from_dot_data(dot_data)
  30. graph.write_pdf("Tree.pdf")

 生成的可视化的决策树

2.DecisionTreeClassifier

class sklearn.tree.DecisionTreeClassifier(criterion=’gini’splitter=’best’max_depth=Nonemin_samples_split=2min_samples_leaf=1min_weight_fraction_leaf=0.0max_features=Nonerandom_state=Nonemax_leaf_nodes=Nonemin_impurity_decrease=0.0min_impurity_split=Noneclass_weight=Nonepresort=False)

重要参数

criterion : string, optional (default=”gini”)

用来指定特征选择的方法,有"entropy"和"gini"两个选择

entropy指定用信息增益,使用ID3、C4.5算法

gini指定用基尼不纯度,使用CART决策树算法

splitter : string, optional (default=”best”)

用来指定怎么寻找最优划分点,有"best"和"random"两个选择

best指定在所有特征中找最优划分点

random指定在随机部分划分中找最优划分点

默认的"best"适合样本量不大的时候,而如果样本数据量非常大,此时决策树构建推荐"random"

max_depth : int or None, optional (default=None)

用来指定决策树的最大深度

通常将max_depth=3作为初始值,将数据可视化查看下拟合情况,在调整树的深度

通常用来解决过拟合问题

min_samples_split : int, float, optional (default=2)

用来指定子树划分条件

默认是2,当只有一个样本的时候,不在划分子树

当样本数很大时,才会考虑增加这个值

限制决策树增长,避免过拟合

min_samples_leaf : int, float, optional (default=1)

用来指定叶子节点包含的最少样本

当样本数很大时,才会考虑增加这个值

限制决策树增长,避免过拟合

scikit-learn 决策树 分类问题的更多相关文章

  1. scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类 (python代码)

    scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类数据集 fetch_20newsgroups #-*- coding: UTF-8 -*- import ...

  2. (原创)(四)机器学习笔记之Scikit Learn的Logistic回归初探

    目录 5.3 使用LogisticRegressionCV进行正则化的 Logistic Regression 参数调优 一.Scikit Learn中有关logistics回归函数的介绍 1. 交叉 ...

  3. Scikit Learn: 在python中机器学习

    转自:http://my.oschina.net/u/175377/blog/84420#OSC_h2_23 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的 ...

  4. (原创)(三)机器学习笔记之Scikit Learn的线性回归模型初探

    一.Scikit Learn中使用estimator三部曲 1. 构造estimator 2. 训练模型:fit 3. 利用模型进行预测:predict 二.模型评价 模型训练好后,度量模型拟合效果的 ...

  5. sklearn CART决策树分类

    sklearn CART决策树分类 决策树是一种常用的机器学习方法,可以用于分类和回归.同时,决策树的训练结果非常容易理解,而且对于数据预处理的要求也不是很高. 理论部分 比较经典的决策树是ID3.C ...

  6. 决策树分类算法及python代码实现案例

    决策树分类算法 1.概述 决策树(decision tree)——是一种被广泛使用的分类算法. 相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置 在实际应用中,对于探测式的知识发现 ...

  7. 用Python开始机器学习(2:决策树分类算法)

    http://blog.csdn.net/lsldd/article/details/41223147 从这一章开始进入正式的算法学习. 首先我们学习经典而有效的分类算法:决策树分类算法. 1.决策树 ...

  8. python 之 决策树分类算法

    发现帮助新手入门机器学习的一篇好文,首先感谢博主!:用Python开始机器学习(2:决策树分类算法) J. Ross Quinlan在1975提出将信息熵的概念引入决策树的构建,这就是鼎鼎大名的ID3 ...

  9. 机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者

    python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/l ...

  10. R语言学习笔记—决策树分类

    一.简介 决策树分类算法(decision tree)通过树状结构对具有某特征属性的样本进行分类.其典型算法包括ID3算法.C4.5算法.C5.0算法.CART算法等.每一个决策树包括根节点(root ...

随机推荐

  1. 001_python多进程实例

    一.工作中需要执行zk数据对比,需要按照机器进行并发,举例以下的例子 # coding:utf8 # !/usr/bin/python import time from multiprocessing ...

  2. Django视图(views)

    1.FBV (基于函数的视图) 实例 url.py url(r'^add_publicer/',views.add_publicer) def add_publicer(request): if re ...

  3. c++ cout、cin、endl

    cout是标准输出流对象,<<是输出操作符:cin是标准输入流对象,>>是输入操作符:endl是换行符操作符.他们都属于C++标准库,所以都在std的名字空间里.所以要在开头写 ...

  4. 《jmeter:菜鸟入门到进阶》系列

    jmeter是我从事软件测试工作以来接触的第一个性能测试工具,也是耗费时间精力最多的一个工具,当然,学习jmeter过程中,由于知识储备不够,也顺带学习了很多其他相关的一些知识. 一直有个想法,就是把 ...

  5. 基于Metronic的Bootstrap开发框架--工作流模块功能介绍

    在很早之前的随笔里面,已经介绍了WInform框架中工作流模块的功能,不过由于工作流模块中界面处理部分比较麻烦,一直没有在Bootstrap框架中进行集成,最近由于项目的关系,花了不少精力,把工作流模 ...

  6. windows 比较文件命令--fc

    dos环境下的比较文件命令 win7帮助 D:\test>fc /? 比较两个文件或两个文件集并显示它们之间 的不同 FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LI ...

  7. Python——Django目录说明

    一.Django安装好后,建立djangosite的开发项目 #django-admin startproject djangosite 二.djangosite目录内容 ''' djangosite ...

  8. PHP 5.6 中 Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version

    解决方法 找到php.ini  文件, 把always_populate_raw_post_data  修改为-1 就行了. always_populate_raw_post_data=-1

  9. hihoCoder #1770 : 单调数(数位dp)

    题面 我们定义一个数是单调数,当且仅当构成这个数每一个数位都是单调不降或不增的. 例如 \(123\) 和 \(321\) 和 \(221\) 和 \(111\) 是单调的,而 \(312\) 不是单 ...

  10. <Android基础>(四) Fragment Part 1

    Fragment 1)Fragment的简单用法 2)动态添加Fragment 3)在Fragment中模拟返回栈 4)Fragment和活动之间通信 第四章 Fragment Fragment是一种 ...