机器学习之决策树

3.5 决策树
    3.5.1 认识决策树
        如何高效的进行决策?
            特征的先后顺序
    3.5.2 决策树分类原理详解
        已知 四个特征值 预测 是否贷款给某个人
        先看房子,再工作 -> 是否贷款 只看了两个特征
        年龄,信贷情况,工作 看了三个特征

在这里插入图片描述
理解公式的例子:信息熵其实就是衡量不确定性的大小
在这里插入图片描述
xi其实就是最后目标类的个数,只有是或者否两类,是概率为9/15.否概率为6/15
信息增益
在这里插入图片描述
条件熵的作用是:确定那个条件相对来说更能消除不确定性
公式理解:比如我要算年龄作为条件的条件熵,那么年龄下有三类所以首先分每个三分之一,再看青年,在青年下是和否两类,所以用信息熵公式是如上图所示

最终计算也可见下图:计算结果就为信息增益
在这里插入图片描述

API
在这里插入图片描述
树的深度大小的意思就是,若默认就会设置的很精细,但是可能导致过拟合,因此,有些时候不必这么精细
代码实现:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

def decision_iris():
    """
    用决策树对鸢尾花进行分类
    :return:
    """
    # 1)获取数据集
    iris = load_iris()

    # 2)划分数据集
    x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)

    # 3)决策树预估器
    estimator = DecisionTreeClassifier(criterion="entropy")
    estimator.fit(x_train, y_train)

    # 4)模型评估
    # 方法1:直接比对真实值和预测值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n", y_predict)
    print("直接比对真实值和预测值:\n", y_test == y_predict)

    # 方法2:计算准确率
    score = estimator.score(x_test, y_test)
    print("准确率为:\n", score)

结果:

y_predict:
 [0 2 1 2 1 1 1 1 1 0 2 1 2 2 0 2 1 1 1 1 0 2 0 1 2 0 2 2 2 1 0 0 1 1 1 0 0
 0]
直接比对真实值和预测值:
 [ True  True  True  True  True  True  True False  True  True  True  True
  True  True  True  True  True  True False  True  True  True  True  True
  True  True  True  True  True False  True  True  True  True  True  True
  True  True]
准确率为:
 0.9210526315789473

可以看到,在小样本量中KNN算法是准确率最高的

决策树可视化:
在这里插入图片描述

 # 可视化决策树
  export_graphviz(estimator, out_file="iris_tree.dot", feature_names=iris.feature_names)

feature_names=iris.feature_names把输出前缀改成特征名
可视化效果大致如图:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值