python随机森林特征重要性,python随机森林分类模型

本篇文章给大家谈谈python随机森林特征重要性,以及python随机森林分类模型,希望对各位有所帮助,不要忘了收藏本站喔。

各位同学好,今天我和大家分享一下python机器学习的随机森林算法。主要内容有:

(1) 算法原理、(2) sklearn实现随机森林、(3) 泰坦尼克号沉船幸存者预测用python绘制一个笑脸

文末附python完整代码和数据集。那我们开始吧。


1. 随机森林算法原理

集成算法包含(bagging装袋/boosting增强/stacking堆叠),其中随机森林属于bagging。

算法原理

        随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。利用相同的训练数搭建多个独立的分类模型,然后通过投票的方法,以少数服从多数原则作出最终的分类决策。

例如:训练了5个树,其中4个树的结果是True,1个树的结果是False,最终结果也会是True。

学习算法:

若用N表示训练用的样本个数,M表示特征数目。输入特征数目m,用于确定决策树上一个节点的决策结果,其中m远小于M。

从N个训练样本中以有放回抽样的方法,取样M次,形成一个训练集,并用未抽到的样本做预测,评估其误差。

对于每一个节点,随机选择m个特征,决策树上每个节点的决定都是基于这些特征决定的。根据这m个特征,计算其最佳的分裂方式。

随机抽样训练集的原因:

如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的。

为什么有放回地抽样:

如果不进行有放回抽样,那么每棵树的训练集都是完全不相同的,都是没有交集的,每棵树训练出来都是有很大差异,而随机森林最后分类取决于多棵树的投票。


2. 随机森林算法实战

2.1 sklearn实现随机森林

首先从sklearn中导入随机森林分类器:

from sklearn.ensemble import RandomForestClassifier  

随机森林函数 RandomForestClassifier()  参数设置:

n_estimator:整数类型,森林里树木的数量,默认=10

criterion:字符串型,分割特征的测量方法,默认是'Gini',可选信息熵 'entropy'

max_depth:整数或None,树的最大深度,默认是None

bootstrap:布尔,是否采用有放回抽样,默认是True


2.2 实例应用

随机森林算法和决策树算法在程序上有类似部分,该篇文章就不再赘述,如果以下程序语句有不明白的,可以参考上一篇文章,使用的数据集也相同:【机器学习】(5) 决策树算法实战:sklearn实现决策树,实例应用(沉船幸存者预测)附python完整代码及数据集

(1)导入数据

        导入泰坦尼克号乘客数据,数据集获取地址:GitHub - fayduan/Kaggle_Titanic: the data and ipython notebook of my attempt to solve the kaggle titanic problem,数据包含891个样本,10项特征数据姓名、年龄、船舱等,一项目标数据'survived'。

 
  
  1. #(1)导入数据
  2. import pandas as pd
  3. filepath = 'C:\\Users\\admin\\.spyder-py3\\test\\文件处理\\泰坦尼克数据集\\taitan.csv'
  4. data = pd.read_csv(filepath)

(2)数据预处理

        从原数据中提取五项指标作为特征值,便于大家对随机森林算法有更直观的理解。由于暂时文章没有涉及到特征工程,暂且不把所有的特征值放入模型,后续文章会进行跟深入的探讨。

        使用年龄的平均值并借助.fillna()函数填充age特征中的缺失值,划分出建模所需的数据验证模型所需的数据

 
  
  1. # 提取部分特征值,船舱、年龄、性别、非直系亲属数量、直系亲属数量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值