有一个房间,里面有 100 个人,每个人有 100 元。每过一会,每个有钱的人给随机的其他人 1 元,经过一段时间后,房间内的资金分配情况是怎样?
也许有人会认为最终大家的钱趋于平均数,其实不然,你可以使用自己熟悉的编程语言来实现,下图的结果是模拟 45 人初始为 45 元的结果,100 个人结果也是一样的。
这个结果和现实世界中的财富占比是一致的,我想,这大概就是运气吧。
不确定性才是客观世界的本质属性。换句话说,上帝还真就掷骰子。不确定性的世界只能使用概率模型来描述,通过概率模型来量化信息量,进而做出各种预测,来帮助决策。本文介绍机器学习中的决策树算法,如果你能看懂,我的目的就达到了。
先提出一个问题:如何让计算机生成一个树,根据眼睛、头发、身高来区分一个人是不是东方人?训练数据集如下所示:
no | eye | hair | height | result |
---|---|---|---|---|
1 | Black | Black | Short | Yes |
2 | Black | White | Tall | Yes |
3 | Black | White | Short | Yes |
4 | Black | Black | Tall | Yes |
5 | Brown | Black | Tall | Yes |
6 | Brown | White | Short | Yes |
7 | Blue | Gold | Tall | No |
8 | Blue | Gold | Short | No |
9 | Blue | White | Tall | No |
10 | Blue | Black | Short | No |
11 | Brown | Gold | Short | No |
为了让你有个直观的认识,这里先给出答案:
有了这个树,再依据眼睛、发色、身高来判断是否是东方人,就非常简单了,这个树就是决策树。
你肯定想知道,这是怎么做到的?
程序、算法都是人脑设计的,想弄明白电脑是如何做的,先思考人脑会如何解决这个问题。
为了创建决策树,我们先要选择一个节点作为根节点,有三个特征,该选哪个呢?理论上所有特征都可以作为根节点,但如果选择不恰当,