随机森林的随机是在构建树时对训练数据点进行随机抽样,分割节点时,考虑特征的随机子集。
随机森林由决策树组成,决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一分为二
随机森林生成的树是完全生长的,便于计算每个特征的重要程度。随机森林思想是构建优秀的树,优秀的树需要优秀的特征。那么我们就需要随机改变特征值,然后测试改变前后的误差率。误差率的差距是该特征在树中的重要程度。然后求在每棵树在该特征的误差率之和称为该特征在森林中的重要程度。然后按照重要程度排序,去除森林中重要程度低的部分特征。直到剩余特征数为m为止。然后再算出每个样本在所有森林中的误差率,得到最优秀的森林。
至此我们的随机森林就计算完成啦。最后总结一下随机森林的计算步骤:
(1)导入数据,条件及其结果(比如女孩自身条件是条件,小木是否选择见面是结果)
(2)设定一个常数N,作为筛选的样本数目(一般小于样本总数M,由于该举例里面样本太少了,所以我就让N=M了)。
(3)设定一个常数a,作为筛选条件的数目(一般小于总数)
(4)设定一个常数X,作为决策树数目,并创建X个决策树(创建时,每个决策树随机选定数目为a的条件,随即选定数目为N的样本)
(5)创建完成后,带入测试样本,以结果少数服从多数或平均值作为最终测试结果,并与真实结果做对比,判断是否符合实际。
随机森林需要剪枝吗?
不需要,==后剪枝是为了避免过拟合,随机森林随机选择变量与树的数量,已经避免了过拟合,没必要去剪枝了。==一般rf要控制的是树的规模,而不是树的置信度,剩下的每棵树需要做的就是尽可能的在自己所对应的数据(特征)集情况下尽可能的做到最好的预测结果。剪枝的作用其实被集成方法消解了,所以用处不大
为什么要有放回的抽样?
保证样本集间有重叠,若不放回,每个训练样本集及其分布都不一样,可能导致训练的各决策树差异性很大,最终多数表决无法 “求同”,即最终多数表决相当于“求同”过程。