决策树

作者: 61etj | 来源:发表于2018-11-19 00:22 被阅读0次

决策树

将问题分为多个相关联的小问题挨个解决,得到最终结果

image

为什么取x,y,为什么是2.4和1.8呢?

信息熵

数据的不确定性, 信息熵越大,不确定性越大

image

p:信息分类的比例

例:左边有3个分类,每个分类占的比例为1/10,2/10,7/10. 右边为1,0,0分别计算出信息熵如图

image

可以看出信息熵越小信息混乱程度越低

利用信息熵构建决策树

思路:遍历每个维度,将维度做排序,然后根据排序取出第一个和第二个中间的值,然后进行划分,大于等于中间的值在左子树,小于在右子树,然后把左子树的元素和右子树的y值分别拿去计算信息熵。如果小于当前信息熵最小值就保存起来。之后取第二个元素和第三个元素中间值,以此类推,寻找出最小的信息熵的值,以及左子树和右子树。当第一轮这样的循环结束后深度为1,如果信息熵过高,就可以在左子树中再进行以上步骤增加决策树的深度。

scikit-learn

import numpy as np
import matplotlib.pyplot as plt

from sklearn import datasets

iris = datasets.load_iris()
X = iris.data[:,2:]
y = iris.target

from sklearn.tree import DecisionTreeClassifier

dt_clf = DecisionTreeClassifier(max_depth=2, criterion="entropy", random_state=42) # max_depth最大深度,entropy是信息熵算法
dt_clf.fit(X, y)

y_predict = dt_clf.predict(X)

基尼系数

也是算信息熵的算法,但是速度比信息熵算法快,DecisionTreeClassifier默认使用

image

scikit-learn

import numpy as np
import matplotlib.pyplot as plt

from sklearn import datasets

iris = datasets.load_iris()
X = iris.data[:,2:]
y = iris.target

from sklearn.tree import DecisionTreeClassifier

dt_clf = DecisionTreeClassifier(max_depth=2, criterion="gini", random_state=42) #gini基尼系数算法

dt_clf.fit(X, y)

DecisionTreeClassifier的超参数

  1. max_depth 最大深度
  2. min_samples_split 一个节点至少要有多少个样本数据才继续划分
  3. min_samples_leaf 叶子节点最少要有多少样本
  4. max_leaf_nodes 最多叶子节点数

决策树解决回归问题

在回归问题中,同样将样本进行决策树划分,最终结果取划分区域那个子节点的平均数

scikit-learn

import numpy as np
import matplotlib.pyplot as plt

from sklearn import datasets

boston = datasets.load_boston()
X = boston.data
y = boston.target

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)

from sklearn.tree import DecisionTreeRegressor

dt_reg = DecisionTreeRegressor()
dt_reg.fit(X_train, y_train)

dt_reg.score(X_test, y_test)

相关文章

  • 机器学习6-决策树

    一. 决策树概述 1.1 什么是决策树 决策树输入: 测试集决策树输出: 分类规则(决策树) 1.2 决策树算法概...

  • 决策树

    1、决策树 决策树学习通常包括3个步骤: 特征选择。 决策树生成。 决策树剪枝。 决策树的学习目标是:根据给定的训...

  • 决策树

    决策树 决策树模型与学习 特征选择 决策树的生成 决策树的剪枝 CART 算法 决策树模型呈树形结构,在分类问题中...

  • 决策树算法总结

    目录 一、决策树算法思想 二、决策树学习本质 三、总结 一、决策树(decision tree)算法思想: 决策树...

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

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

  • 机器学习系列(三十六)——回归决策树与决策树总结

    本篇主要内容:回归决策树原理、回归树学习曲线、决策树总结 回归决策树原理 回归决策树树是用于回归的决策树模型,回归...

  • [机器学习]决策树

    决策树 @(技术博客)[机器学习, 决策树, python] 学习决策树首先要搞清楚决策树是什么(what),在弄...

  • 经典机器学习系列之【决策树详解】

      这节我们来讲说一下决策树。介绍一下决策树的基础知识、决策树的基本算法、决策树中的问题以及决策树的理解和解释。 ...

  • 第5章 决策树

    内容 一、决策树内容简介 二、决策树的模型与学习 三、特征选择 四、决策树生成 五、决策树剪枝 六、CART算法 ...

  • 决策树与随机森林

    PART I 决策树 (Decision Tree) 决策树基本知识 决策树何时停止生长:(I) all leaf...

网友评论

      本文标题:决策树

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