Skip to Content
机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)
book

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

by Aurélien Géron
October 2020
Intermediate to advanced
693 pages
16h 26m
Chinese
China Machine Press
Content preview from 机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)
决策树
167
训练算法比较每个节点上所有样本上的所有特征(如果设置了 max_features,则更
少)。比较每个节点上所有样本的所有特征会导致训练复杂度为
O
(
n
×
m
log
2
(
m
))。对于小
训练集(少于几千个实例),Scikit-Learn 可以通过对数据进行预排序(设置 presort =
True)来加快训练速度,但是这样做会大大降低大训练集的训练速度。
6.6 基尼不纯度或熵
默认使用的是基尼不纯度来进行测量,但是,你可以将超参数 criterion 设置为
"entropy" 来选择熵作为不纯度的测量方式。熵的概念源于热力学,是一种分子混乱
程度的度量:如果分子保持静止和良序,则熵接近于零。后来这个概念推广到各个领域,
其中包括香农的信息理论,它衡量的是一条信息的平均信息内容
4
:如果所有的信息都
相同,则熵为零。在机器学习中,它也经常被用作一种不纯度的测量方式:如果数据集
中仅包含一个类别的实例,其熵为零。公式 6-3 显示了第
i
个节点的熵值的计算方式。
例如,图 6-1 中深度 2 左侧节点的熵值等于
−−
54 54 54 54
49 49 5 5
log log 0.445
22
 
 
 
1
公式 6-3:熵
H pp
i ik ik
=
p
ik
k
,
n
=1
0
, 2,
log ( )
那么到底应该使用基尼不纯度还是熵呢?其实,大多数情况下,它们并没有什么大的不
同,产生的树都很相似。基尼不纯度的计算速度略微快一些,所以它是个不错的默认选
择。它们的不同在于,基尼不纯度倾向于从树枝中分裂出最常见的类别,而熵则倾向于 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

算法技术手册(原书第2 版)

算法技术手册(原书第2 版)

George T.Heineman, Gary Pollice, Stanley Selkow
Go语言编程

Go语言编程

威廉·肯尼迪
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey

Publisher Resources

ISBN: 9787111665977