机器学习——随机森林算法randomForest——原理及python实现
2017-07-31 15:51
375 查看
参考:
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个选取的特征:
对于特征里的每种取值:
根据特征取值切分数据集。
计算根据特征取值切分数据集得到的基尼系数。
用初始的基尼系数减去划分数据集得到的基尼系数得到基尼系数的减少量。
记录最大的减少量,及获得对应的切分特征和特征值
获得了基尼减少量及切分特征和特征值,如果减少量符合阈值,则对数据子集按照该特征和特征值切分
对数据子集切分的结果递归调用(用创建的数据子集创建一棵树)这个步骤。
递归完成则完成了一棵树的创建。
保存每一棵树,组成森林。
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个选取的特征:
对于特征里的每种取值:
根据特征取值切分数据集。
计算根据特征取值切分数据集得到的基尼系数。
用初始的基尼系数减去划分数据集得到的基尼系数得到基尼系数的减少量。
记录最大的减少量,及获得对应的切分特征和特征值
获得了基尼减少量及切分特征和特征值,如果减少量符合阈值,则对数据子集按照该特征和特征值切分
对数据子集切分的结果递归调用(用创建的数据子集创建一棵树)这个步骤。
递归完成则完成了一棵树的创建。
保存每一棵树,组成森林。
相关文章推荐
- Python机器学习-感知机原理及代码实现
- 机器学习决策树的Python实现详细流程及原理解读_2
- [(机器学习)概率统计]极大似然估计MLE原理+python实现
- 机器学习决策树的Python实现详细流程及原理解读_1
- 机器学习:K-近邻算法原理与Python代码实现
- 机器学习 Logistic回归 原理Python实现
- 机器学习之KNN算法原理及Python实现方法详解
- 机器学习(4):BP神经网络原理及其python实现
- scikit-learn机器学习(六)--朴素贝叶斯分类原理及python实现
- Python高级特性:利用类构造及析构原理实现单实例模式
- 机器学习:深度信念网络(DBN)原理和实现
- 直方图均衡化原理及其python代码实现
- python3 defaultdict使用方法与实现原理
- 随机森林的原理分析及Python代码实现
- 机器学习PLA&Pocket algorithm实现(python)
- LZ77压缩算法编码Python实现原理图解
- 1个月教你学会用Python实现机器学习
- HMM原理介绍 示例 python代码实现
- 体会Python之独具匠心:Python XML PRC server多线程实现及其原理
- Tensorflow卷积实现原理+手写python代码实现卷积