sklearn机器学习:决策树tree.DecisionTreeClassifier()

sklearn中的决策树分类器

sklearn中的决策树分类器函数,格式如下: 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

这个参数是用来决定不纯度的计算方法。sklearn提供了两种选择:

  • 输入 “entropy”,使用信息熵(Entropy)
  • 输入 “gini”,使用基尼系数(Gini Impurity)

比起基尼系数,信息熵对不纯度更加敏感,对不纯度的惩罚最强。但是在实际使用中,信息熵和基尼系数的效果基本相同。信息熵的计算比基尼系数缓慢一些,因为基尼系数的计算不涉及对数。另外,因为信息熵对不纯度更加敏感,所以信息熵作为指标时,决策树的生长会更加 ”精细”,因此对于高纬数据或者噪声很多的数据,信息熵很容易易过拟合,基尼系数在这种情况下效果往往比较好。当模型拟合程度不足的时候,即当模型在训练集和测试集上都表现不太好的时候,使用信息熵。当然,这些不是绝对的。
综上,对criterion的选择方法总结如下:

  • criterion如何影响模型:确定不纯度的计算方法,帮忙找出最佳结点和最佳分支,不纯度越低,决策树对训练集的拟合越好;
  • criterion选项:不填默认为基尼系数,填写gini使用基尼系数,填写entropy使用信息增益;
  • criterion如何选取参数:通常就使用基尼系数。
     数据维度很大,噪音很大时使用基尼系数;
     维度低,数据比较清晰的时候,信息熵和基尼系数没区别;
     当决策树的拟合程度不够的时候,使用信息熵;
    两个都试试,当一个不好用时就换另外一个。

建立一颗树

#Sklearn中实现决策树
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
'''魔法函数%matplotlib inline:
模仿命令行来访问IPython的内置magic函数,
其中:%matplotlib可以使用指定的界面库显示图表,
inline表示将图表嵌入到Notebook中'''
%matplotlib inline 
#导入tree算法库
from sklearn import tree
#导入load_wine数据集
from sklearn.datasets import load_wine
#导入train_test_split数据集切分模块
from sklearn.model_selection import train_test_split
#探索数据
wine = load_wine()
#wine.data属性数据体量
wine.data.shape

运行结果

(178, 13)
#wine.target标签数据体量
wine.target.shape

运行结果

(178,)
#如果wine是一张表,应该长这样:
pd.concat([pd.DataFrame(wine.data),pd.DataFrame(wine.target)],axis=1
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值