机器学习——随机森林算法randomForest——原理及python实现

参考:

http://blog.csdn.net/nieson2012/article/details/51279332

http://www.cnblogs.com/wentingtu/archive/2011/12/22/2297405.html

http://www.cnblogs.com/pinard/p/6156009.html

算法描述:

1、加载数据(训练数据和测试数据),假设训练集总数为N个。

2、去除掉数据集中的某些特征项(无用的特征)。

3、将预测标签从数据集中暂时去除。

4、设定每次选取的特征数目,比如每个样本有M个特征,每次我们只用2个特征。

4、循环创建每棵树:

每次从M个特征里随机选2个特征,并将标签重新加进来

从训练集中有放回的抽取N个样本,并且这个N个样本只包含3个特征,即创建了一个新的数据子集。

用创建的数据子集创建一棵树:

对数据子集进行切分:

先得到数据子集的初始基尼系数。

对于2个选取的特征:

对于特征里的每种取值:

根据特征取值切分数据集。

计算根据特征取值切分数据集得到的基尼系数。

用初始的基尼系数减去划分数据集得到的基尼系数得到基尼系数的减少量。

记录最大的减少量,及获得对应的切分特征和特征值

获得了基尼减少量及切分特征和特征值,如果减少量符合阈值,则对数据子集按照该特征和特征值切分

对数据子集切分的结果递归调用(用创建的数据子集创建一棵树)这个步骤。

递归完成则完成了一棵树的创建。

      保存每一棵树,组成森林。


你可能感兴趣的:(数据结构与算法,读书笔记)