2022-05-04随机森林

通俗易懂的随机森林模型讲解

小木希望学园

于 2018-04-17 22:42:09 发布

41092
收藏 215
分类专栏: 数学模型 文章标签: 随机森林 机器学习 分类 数据挖掘
版权

数学模型
专栏收录该内容
8 篇文章17 订阅
订阅专栏
通俗易懂的随机森林模型讲解
大家好,我是你们的好朋友小木。对于随机森林的模型,网上已经有灰常灰常多的讲解,大家讲的也非常的不错。但绝大多数大神讲解都是注重于理论,把算数的地方都给忽略了,我这次要以举例子的方法来讲解,这样可以让大家更好的理解随机森林模型。

首先我们来定义一下随机森林,啥叫随机森林呢,森林指的是有一堆大树的地方,随机指每棵大树种植的过程中施肥的种类是随机地选择的。但是好好地一个模型怎么就变成大树了呢?当然不是啦,这里大树指的是决策树,而施肥指的是不同的限定条件。接下来,又有小朋友问我啥叫决策树,好大的一棵树啊,不懂o(∩_∩)o ,那么我就来讲一下啥叫决策树。

   顾名思义,决策就是评价的意思,我们用一颗大树评价一个事物,这样的大树就叫做决策树。那么我们决策啥?往后看就直到了

比如小木想要找女朋友,但他是个人,他有自己喜欢的类型,不是任何人都会同意的。我们现在有一个中介公司给小木介绍了五个女孩,她们的条件、以及小木是否想见面分别如表1所示:

表1

女孩编号

长相

性格

年龄

学历

住址

小木是否选择

1

温柔

26

硕士

城市

2

平淡

24

高中

城市

3

超凶

20

本科

城市

4

温柔

25

硕士

农村

5

平淡

30

本科

城市

6

超凶

28

博士

农村

我们要决策的就是小木是否选择见面,其中结果有两个,一个是是,一个是否。

这个表格中有长相、性格、年龄、学历、小木是否选择几项,除了年龄之外全都是文字,我们要建立数学模型这是不可以的,那么我们必须给它们转换为数字形式,转换之后如表2所示:

表2

女孩编号

长相

性格

年龄

学历

住址

小木是否选择

1

白1

温柔2

26

硕士2

城市

否0

2

黑0

平淡1

24

高中4

城市

否0

3

白1

超凶0

20

本科1

城市

是1

4

黑0

温柔2

25

硕士2

农村

否0

5

白1

平淡1

30

本科1

城市

否0

6

黑0

超凶0

28

博士3

农村

是1

这个表格把各个变量都应用上了数字,例如性格中,分为了0,1,2三类。我们分完类别之后呢,下一步我们就要选择一个特征,然后判断小木是否见面。特征怎么选?我们用一个叫做熵值公式,它的计算公式如下:

(1)

举个例子,比如分析小木是否选择见面,在表格2里面,选择“是”情况有两种,“否”情况有三种,共五个,所以选择“是”的概率为2/6=0.33,选择否的概率为4/6=0.67。然后我们把0.4和0.6带入公式(1)中,得到:H0=-(0.33log20.33+0.67log20.67)=0.92

同理,对于学历来说,共有4种:高中、本科、硕士、博士,概率分别为:1/6、2/6、2/6、1/6,并将其带入公式2中:

(2)

其中,|Di|/|D|指的是高中、学士、硕士、博士概率。计算Hi的时候,我们带入的总数目是高中、学士、硕士、博士的数量,比如学士有两个,且一个小木不选,一个小木选,概率分别是0.5、0.5。类似于高中数学中的H(Di|Hj),要是不能理解就按照下面的计算方式直接带入数据就行:

通过式(2)可求得H4。

同理,我们得出各个特征的Hi值,然后用得出的Hi值与H0分别作差,也就是Hi-H0,然后得到如下表3:

表3

特征

长相H1

性格H2

年龄H3

学历H4

住址H5

小木是否选择H0

0.92

0

0.67

0.67

0.92

H-H0

0

0.92

0.25

0.25

0

我们把这些都算完了,就差年龄了,年龄这个条件我们却发现了,每一个年龄的概率是1/6,我们应该这么算?不,为啥呢,因为我们这里没有29岁,也没有21,22,23岁,我们要一个个算的话,那么就漏掉这四个年龄了,那怎么办?我们只好坐在轮椅上,双脚离地想想了,我们这么一想,唉,发现一个秘密。如果你说是,年龄在2030之间,那么我就告诉你:恭喜你回答正确!因为在2030之间,我们取一个中间值25,如果小于25我们就算0,如果大于等于25就算1,那么我们就得出了表4:

表4

女孩编号

长相

性格

年龄

学历

住址

小木是否选择

1

白1

温柔2

26 1

硕士2

城市0

否0

2

黑0

平淡1

24 0

高中4

城市0

否0

3

白1

超凶0

20 0

本科1

城市0

是1

4

黑0

温柔2

25 1

硕士2

农村1

否0

5

白1

平淡1

30 1

本科1

城市0

否0

6

黑0

超凶0

28 1

博士3

农村1

是1

我们这里大于等于25的一共有4个,小于的一共有2个,那么它们的概率分别为4/6、2/6,通过式1计算,就能得出H=0.92,因此,我们获得完整的表5:

表5

特征

长相H1

性格H2

年龄H3

学历H4

住址H5

小木是否选择H0

0.92

0

0.87

0.67

0.67

0.92

H-H0

0

0.92

0.05

0.25

0.25

0

熵值代表着混乱的程度,我们高中学过,熵值越大,说明越混乱。熵差代表着啥呢,代表着信息增益,也可以叫做纯度,说白了与小木找对象的不确定度是0.92,如果就看性格,不确定度是0,增益最大,也就是说看完性格之后就就知道怎么挑了,说明分类的纯度大,如果就看长相,不确定度增益小,也就是不挑长相,所以对找对象用途很不大,说明纯度小。总结来说是信息增益越大,挑的越容易。因为长相增益为0,那么我们就把它排除在外,不算它了。

我们建立第一颗决策树,首先随机地选择两个限定条件,一个是性格,另外一个是年龄,我们发现增益最大的是性格,也就是性格作为决策树的顶点,然后随机选择几个样本(由于样本就6个,我们就都选择了)并按照这性格分别划分三个细节,如图1所示:

图1

图1中,文字底下的数字表示的和表4中的相同,例如平淡中[1,0]表示:[平淡,小木不选择]。其中最后一位红字表示小木的选择,从图中我们可以看出,小木对于温柔、平淡的女生是拒绝的,对超凶的女生是直接选择的。对超凶的女生,小木是百分百选择的。因此后边的学历我们也就不用看了。这样一颗决策树就建立完成了。

接下来,按照同样方法再随机地选择两个限定条件,如学历、年龄。信息增益最大的那个是学历,也就是学历作为决策树的顶点,然后随机选择几个样本(由于样本就6个,我们就都选择了),按照这性格分别划分四个细节:高中、本科、硕士、博士如图2所示:

图2

我们发现高中和硕士小木不选,而博士小木选择,本科有歧义,我们还需要往下面再分类。我们按照同样的方法,把年龄分为25岁以下和25岁以上(包含25岁),图3所示:

图3

我们再生成一个大树,选择住址和性格(因为样本太少了,所以我们这里瞎编一个大树,不符合计算规则,不用多想了),如图4所示:

图4

这样,我们建立了三颗决策树,接下来,我们需要把测试数据带入进去判断小木是否选择,比如我们有表6:

表6

女孩编号

长相

性格

年龄

学历

住址

1

黑0

平淡1

24 0

高中4

城市1

2

白1

超凶0

30 1

硕士2

农村1

3

黑0

平淡1

26 1

本科1

农村1

然后我们把条件分别带入三棵树中。比如第一个女孩带入第一颗大树,首先判断性格,性格是平淡的,小木不会选择,所以结果为0。第二棵树,首先判断学历是高中,小木不会选择所以结果为0。带入第三棵树,判断居住地是城市,接下来判断性格为平淡,所以小木不选,结果为0。其它数据同理计算,我们会得出表格7:

表7

女孩编号

结果1

结果2

结果3

最终结果

1

0

0

0

0

2

1

0

1

1

3

1

0

0

0

从表格我们可以得出最终的结果,最终的结果一般是两种计算方法,第一种是少数服从多数,第二种是平均值,因为这次结果只有0和1,所以选择少数服从多数的计算方式。

   至此我们的随机森林就计算完成啦。最后总结一下随机森林的计算步骤:

(1)导入数据,条件及其结果(比如女孩自身条件是条件,小木是否选择见面是结果)

(2)设定一个常数N,作为筛选的样本数目(一般小于样本总数M,由于该举例里面样本太少了,所以我就让N=M了)。

(3)设定一个常数a,作为筛选条件的数目(一般小于总数)

(4)设定一个常数X,作为决策树数目,并创建X个决策树(创建时,每个决策树随机选定数目为a的条件,随即选定数目为N的样本)

(5)创建完成后,带入测试样本,以结果少数服从多数或平均值作为最终测试结果,并与真实结果做对比,判断是否符合实际。

————————————————

如果对我的课程感兴趣的话,欢迎关注小木希望学园-微信公众号:

mutianwei521
————————————————
版权声明:本文为CSDN博主「小木希望学园」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013631121/article/details/79982162

你可能感兴趣的:(2022-05-04随机森林)