美文网首页
17. 决策树参数实例

17. 决策树参数实例

作者: 十里江城 | 来源:发表于2019-11-10 00:20 被阅读0次

使用鸢尾花数据集构建决策树

决策树参数

  • 1 熵/Gini系数作为评判指标
  • 2 splitter: 所有或随机在特征中找最好的切分点
  • 3 max_features: None(所有值), log2, sqrt, N, 特征小于50时一般选择所有
  • 4 max_depth: 达到此最大深度时停止
  • 5 min_samples_split: 达到此值时停止分裂
  • 6 min_samples_leaf: 限制叶子节点最小样本数,小于该值则被剪枝,过大则被分裂
  • 7 min_weight_fraction_leaf: 叶子节点的权重项,表示叶子节点所有样本权重和的最小值, 当权重项与样本个数的乘积<阈值则剪掉,不再分裂
  • 8 max_leaf_nodes: 超过该值不再分裂,默认None
  • 9 class_weight: 样本各类别的权重,样本数*该值>某值,则剪掉
  • 10 min_impurity_split: 某节点不纯度<该阈值则该节点不再分裂,成为叶子节点

代码

# 决策树上解决过拟合:剪枝
import pandas as pd
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
from PIL import Image
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier
from sklearn import preprocessing

%matplotlib inline 
# 在jupyter notebook或jupyter qtconsole中用到,
# 且在plot()绘制图或figure()创建画板的时候可直接在python console中生成图像
import seaborn as sb

# 载入鸢尾花数据集
iris_data = pd.read_csv('iris.csv')
# iris2 = load_iris()
# print('iris2:', iris2)
# print('iris: ' ,iris_data)

# 查看iris_data所有属性或方法
# print('dir: ' ,dir(iris_data))
# 查看数据集简介
# print('DESCR: ', iris_data.DESCR)
# feature_names = iris_data.feature_names
# print('feature_names: ', feature_names)

iris_data.columns = ['slength', 'swidth', 'plength', 'pwidth', 'class']
#  array去前五行数据的方法 < - >pandas:dataFrame.head()
# head = iris.data[:20]
head = iris_data.head()
print('head: ', head)


img = Image.open('test.jpg')
plt.imshow(img)
plt.show()

# 统计信息
desc = iris_data.describe()
print('iris_data describe: ', desc)



# seaborn很好用的画图包
# 查看特征与特征之间的关系
# iris_data: dataFrame, 不能有缺失值: dropna()去掉缺失值
sb.pairplot(iris_data.dropna(), hue = 'class')


# violin图可用于分类任务
# 创建画白色画板
plt.figure()
for column_index, column in enumerate(iris_data.columns):
    if column == 'class':
        continue
    plt.subplot(2, 2, column_index + 1)
    #  x、y、 包含属性和类别数据集
    sb.violinplot(x = 'class', y = column, data = iris_data)
    

    
# 构建决策树
# from sklearn import datasets
# X, y = datasets.load_iris()['data'], datasets.load_iris()['target']
# print("X :",X)
# print("y :", y)
# # 标准化数据
# all_inputs = preprocessing.scale(X)

all_inputs = iris_data[['slength', 'swidth', 'plength', 'pwidth']].values
all_classes = iris_data['class'].values



# 交叉验证    
(training_inputs, testing_inputs, training_classes, testing_classes) = train_test_split(
    all_inputs, all_classes, train_size = 0.75, random_state = 1)

clf = DecisionTreeClassifier(random_state = 0)

# train
clf.fit(training_inputs, training_classes)

# test
score = clf.score(testing_inputs, testing_classes)
print('score: ', score)

# predict
print(testing_inputs[0])
print(clf.predict([testing_inputs[0]]))
# print(clf.predict(testing_inputs))
print('classes: ', clf.classes_)

查看前五行数据集:

image.png

显示鸢尾花图片:


image.png

鸢尾花数据集统计信息


image.png

使用seaborn查看特征之间的关系:


image.png

或可用于分类的seaborn图:


image.png

使用决策树的预测结果如下:


image.png

相关文章

  • 17. 决策树参数实例

    使用鸢尾花数据集构建决策树 决策树参数 1 熵/Gini系数作为评判指标 2 splitter: 所有或随机在特征...

  • 机器学习 - 决策树算法[一]

    1 决策树模型与学习 1.1 决策树模型 决策树定义: 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由...

  • 决策树学习

    决策树学习的适用问题 通常决策树学习最适合具有以下特征的问题: 实例是由“属性-值”对(pair)表示的。实例是用...

  • sklearn-分类决策树

    决策树(1.10.1)(DecisionTreeClassifier) 参数: 1、criterion : str...

  • 统计学习方法——修炼学习笔记5:决策树

    一、决策树 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed ...

  • 李航统计学习方法(五)---决策树

    决策树模型与学习 决策树模型 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两...

  • 机器学习决策树—Apple的学习笔记

    决策树学习的目标:根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。 决策树学习的本质:从训练...

  • 决策树

    模型 决策树的学习目标是根据给定的训练数据集,建立一个决策树,能够对实例进行正确分类。决策树算法通常是递归选择最优...

  • 通俗地说决策树算法(三)sklearn决策树实战

    前情提要 通俗地说决策树算法(一)基础概念介绍 通俗地说决策树算法(二)实例解析 上面两篇介绍了那么多决策树的知识...

  • 决策树

    决策树 决策树是一种基本的分类方法,当然也可以用于回归。决策树模型呈树形结构。在分类问题中,表示基于特征对实例进行...

网友评论

      本文标题:17. 决策树参数实例

      本文链接:https://www.haomeiwen.com/subject/wpjobctx.html