scikit-learn 决策树 分类问题
1.Demo
- from sklearn import tree
- import pydotplus
- import numpy as np
- #李航p59表数据
- #年龄,有工作,有自己房子,信贷情况,类别
- #青年0 中年1 老年2
- #否0 是1
- #一般0 好1 非常好2
- datasets = np.array([['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', ''],
- ['', '', '', '', '']])
- X = datasets[:,:4]
- Y = datasets[:,4:5]
- clf = tree.DecisionTreeClassifier()
- clf.fit(X,Y)
- dot_data = tree.export_graphviz(clf,out_file=None)
- graph = pydotplus.graph_from_dot_data(dot_data)
- graph.write_pdf("Tree.pdf")
生成的可视化的决策树
2.DecisionTreeClassifier
class sklearn.tree.
DecisionTreeClassifier
(criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=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 决策树 分类问题的更多相关文章
- scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类 (python代码)
scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类数据集 fetch_20newsgroups #-*- coding: UTF-8 -*- import ...
- (原创)(四)机器学习笔记之Scikit Learn的Logistic回归初探
目录 5.3 使用LogisticRegressionCV进行正则化的 Logistic Regression 参数调优 一.Scikit Learn中有关logistics回归函数的介绍 1. 交叉 ...
- Scikit Learn: 在python中机器学习
转自:http://my.oschina.net/u/175377/blog/84420#OSC_h2_23 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的 ...
- (原创)(三)机器学习笔记之Scikit Learn的线性回归模型初探
一.Scikit Learn中使用estimator三部曲 1. 构造estimator 2. 训练模型:fit 3. 利用模型进行预测:predict 二.模型评价 模型训练好后,度量模型拟合效果的 ...
- sklearn CART决策树分类
sklearn CART决策树分类 决策树是一种常用的机器学习方法,可以用于分类和回归.同时,决策树的训练结果非常容易理解,而且对于数据预处理的要求也不是很高. 理论部分 比较经典的决策树是ID3.C ...
- 决策树分类算法及python代码实现案例
决策树分类算法 1.概述 决策树(decision tree)——是一种被广泛使用的分类算法. 相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置 在实际应用中,对于探测式的知识发现 ...
- 用Python开始机器学习(2:决策树分类算法)
http://blog.csdn.net/lsldd/article/details/41223147 从这一章开始进入正式的算法学习. 首先我们学习经典而有效的分类算法:决策树分类算法. 1.决策树 ...
- python 之 决策树分类算法
发现帮助新手入门机器学习的一篇好文,首先感谢博主!:用Python开始机器学习(2:决策树分类算法) J. Ross Quinlan在1975提出将信息熵的概念引入决策树的构建,这就是鼎鼎大名的ID3 ...
- 机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者
python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/l ...
- R语言学习笔记—决策树分类
一.简介 决策树分类算法(decision tree)通过树状结构对具有某特征属性的样本进行分类.其典型算法包括ID3算法.C4.5算法.C5.0算法.CART算法等.每一个决策树包括根节点(root ...
随机推荐
- 001_python多进程实例
一.工作中需要执行zk数据对比,需要按照机器进行并发,举例以下的例子 # coding:utf8 # !/usr/bin/python import time from multiprocessing ...
- Django视图(views)
1.FBV (基于函数的视图) 实例 url.py url(r'^add_publicer/',views.add_publicer) def add_publicer(request): if re ...
- c++ cout、cin、endl
cout是标准输出流对象,<<是输出操作符:cin是标准输入流对象,>>是输入操作符:endl是换行符操作符.他们都属于C++标准库,所以都在std的名字空间里.所以要在开头写 ...
- 《jmeter:菜鸟入门到进阶》系列
jmeter是我从事软件测试工作以来接触的第一个性能测试工具,也是耗费时间精力最多的一个工具,当然,学习jmeter过程中,由于知识储备不够,也顺带学习了很多其他相关的一些知识. 一直有个想法,就是把 ...
- 基于Metronic的Bootstrap开发框架--工作流模块功能介绍
在很早之前的随笔里面,已经介绍了WInform框架中工作流模块的功能,不过由于工作流模块中界面处理部分比较麻烦,一直没有在Bootstrap框架中进行集成,最近由于项目的关系,花了不少精力,把工作流模 ...
- windows 比较文件命令--fc
dos环境下的比较文件命令 win7帮助 D:\test>fc /? 比较两个文件或两个文件集并显示它们之间 的不同 FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LI ...
- Python——Django目录说明
一.Django安装好后,建立djangosite的开发项目 #django-admin startproject djangosite 二.djangosite目录内容 ''' djangosite ...
- 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
- hihoCoder #1770 : 单调数(数位dp)
题面 我们定义一个数是单调数,当且仅当构成这个数每一个数位都是单调不降或不增的. 例如 \(123\) 和 \(321\) 和 \(221\) 和 \(111\) 是单调的,而 \(312\) 不是单 ...
- <Android基础>(四) Fragment Part 1
Fragment 1)Fragment的简单用法 2)动态添加Fragment 3)在Fragment中模拟返回栈 4)Fragment和活动之间通信 第四章 Fragment Fragment是一种 ...