专题二 随机森林

概述

1、集成算法
1)集成算法考虑多个评估器的结果,汇总获取更好的分类、回归表现
2)三种集成算法:装袋法bagging(模型独立),提升法boosting(模型相关),stacking
3)随机森林是一种bagging集成算法,比决策树的效果好很多

RandomForestClassifier(随机森林分类器)

一、 4个参数

1、n_estimators:森林中树木的数量
1)越大往往越好,但计算量越大,达到一定值精确性波动,一般在0-200内选
2)单个决策树准确度越高,随机森林的准确度也会越高

2、random_state
1)随机森林中的random_state控制的是生成森林的模式,设成固定值生成一组固定的树
2)决策树中的random_state控制随机选择特征分支
3)随机性越大,bagging效果一般越好,因此一般不设置,若追求稳定性可设置成固定值

3、bootstrap、oob_score
1)bootstrap默认为True,控制有放回的随机抽样
2)oob_score默认为False,设置为True表示希望用袋外数据测试模型,此时训练函数中放入完整数据(不用划分训练集、测试集)

二、重要属性

1、estimators_,查看森林中树的状况
.estimators[num]取出一棵树

2、oob_score_,查看在袋外数据上测试结果

3、feature_importance_查看特征重要性(用zip把特征重要性和特征名连起来,易于观察哪一个特征更为重要)

三、重要接口

1、4个常用接口:apply(返回测试集中每一个样本在每一棵树中叶子节点的索引;需要画图或需要提取单独叶子节点时使用)、fit、predict(返回对测试集预测的标签)、score

2、predict_proba:
1)返回每个测试样本被分到每一类标签的概率,标签几类,返回几个

四、其它

1、“字符串:{}”.format()方法,format后面的内容就是大括号中的内容
2、sklearn特征和标签分开导入
3、train_test_split有随机性,因此采用交叉验证在不同测试集和训练集上验证,交叉验证导入完整的特征矩阵和标签
4、list.index(object)会返回对象object在列表中的索引

RandomForestRegressor(随机森林回归)

1、参数criterion取值不同(与决策树部分相同)

1)“mse”:回归树中,MSE是分支质量衡量指标,也是回归树回归质量衡量指标
2)“friedman_mse”
3)“mae”

2、模型衡量指标不同:R²或MSE(常用)

3、常用接口apply, predict, fit, score,没有predict_proba

注:如何打印sklearn模型评估指标列表?

import sklearn
sorted(skl## 标题earn.metrics.SCORERS.keys())

案例2.1 随机森林填补缺失值

1、sklearn.impute.SimpleImputer专门用来填补缺失值
SimpleImputer(missing_value=np.nan,strategy=“mean”)第一个值填空值是怎么表示的,有时为0

2、波士顿房价数据集,标签连续,回归

3、np.floor向下取整,返回.0形式的浮点数

4、怎么提前预防小数的出现?int(np.floor

5、np.random.randint(下限,上限,n) 在下限和上限之间取出n个整数,第一个值不填默认为0

6、np.random.choice,随机抽取不重复的随机数,可以使数据更加分散,不会集中在某些行(取数据量小于样本量时使用,本例中n<506)
missing_samples=rng.choice(n_samples,n_missing_samples,replace=False),replace=False表示不要重复

7、如何将矩阵转化成表?x_missing=pd.DataFrame(x_missing)

8、fit_transform(),训练+导出,相当于fit+predict

9、isnull()只能在df中用,如果使用需要转化

10、df.isnull().sum()确认有无缺失值,有缺失值返回的数比0大,True=1,False=0

11、如何使用算法填充缺失值?
特征矩阵和标签有某种联系,可以交换

新特征矩阵,在填补列非缺失行:x_train
新特征矩阵,在填补列缺失行:x_train
特征矩阵填补列不缺失值:y_train
特征矩阵填补列缺失值:需要预测的y_test(核心思想:把选中列看成标签列)

(这种做法适用于某一列特征大量缺失,若多列缺失,遍历特征,从缺失最少的列填补,填补其中一列时,先将其它特征缺失值用0代替)

12、np.argsort(X)是将X中的元素从小到大排序,并返回索引
np.sort(X)将X从小到大排序,但没有索引

13、pd.concat()
第一个参数:需要连接的所有对象用列表包起来
第二个参数:axis=1左右相连

14、如何用列表打开zip对象?
[*zip([“x_full”,“x_missing_mean”,“x_missing_0”,“x_missing_reg”],mse)]

15、如何画条形图?
plt.plot.bar(x轴,y轴)画条形图,plt.plot.barh(y轴,x轴)把条形图横过来

Sklearn专题二 随机森林相关推荐

  1. sklearn实战之随机森林

    sklearn实战系列: (1) sklearn实战之决策树 (2) sklearn实战之随机森林 (3) sklearn实战之数据预处理与特征工程 (4) sklearn实战之降维算法PCA与SVD ...

  2. 《菜菜的机器学习sklearn课堂》随机森林应用泛化误差调参实例

    随机森林 随机森林 - 概述 集成算法概述 sklearn中的集成算法 随机森林分类器 RandomForestClassifier 重要参数 控制基评估器的参数 n_estimators:基评估器的 ...

  3. sklearn RandomForest(随机森林)模型使用RandomSearchCV获取最优参数及模型效能可视化

    sklearn RandomForest(随机森林)模型使用RandomSearchCV获取最优参数及模型效能可视化 随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林 ...

  4. sklearn专题二:随机森林

    目录 1 概述 1.1 集成算法概述 1.2 sklearn中的集成算法 2 RandomForestClassifier 2.1 重要参数 2.1.1 控制基评估器的参数 2.1.2 n_estima ...

  5. Spark 和 Python.sklearn:使用随机森林计算 feature_importance 特征重要性

    前言 在使用GBDT.RF.Xgboost等树类模型建模时,往往可以通过feature_importance 来返回特征重要性,本文以随机森林为例介绍其原理与实现.[ 链接:机器学习的特征重要性究竟是 ...

  6. sklearn中对随机森林进行调参

    文章目录 一.闲言碎语 二.参数问题 三.结论 四.参考文献 一.闲言碎语 具体的方法可参考我的这篇文章python+sklearn进行交叉验证(使用交叉验证对数据划分,模型评估和参数估计,使用决策树 ...

  7. 【sklearn学习】随机森林分类、回归

    集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合结果,以此来获取比单个模型更好的回归或分类表现. 三类集成算法:装袋法(Bagging).提升法(Boosting).stacking 装袋法: ...

  8. 【skLearn 练习】随机森林回归填补缺失值

    文章目录 随机森林回归填补缺失值 ♦导入需要的库 ♦导入数据集 ♦构建缺失值 ♦缺失值填补 ① 均值mean填补 ② 使用0值填补 ③ 使用随机森林回归填补 ⑴ 缺失值数目排序索引 ⑵ 遍历索引填补空 ...

  9. 【机器学习实战】利用sklearn中的随机森林对红酒数据集进行分类预测

    1. sklearn中的集成算法 sklearn中的集成算法模块ensemble 2.预测代码及结果 %matplotlib inline from sklearn.tree import Decis ...

最新文章

  1. 浏览器兼容性问题汇总及解决方案
  2. 查询linux信号量命令,linux下的trap命令和SIGHUP信号量详解。
  3. screw ---- 数据库转文档
  4. 在Java中如何读取用MATLAB的fwrite()函数写入文件的数据
  5. ubuntu下vim配置成c++开发编辑器
  6. 提高MyEclipse启动速度
  7. 拓端tecdat|R语言如何和何时使用glmnet岭回归
  8. 运营人员消消气,这个工具让数据分析轻松驾驭
  9. 数字电子技术基础-2-逻辑函数的最小项与最大项
  10. 《PMBOK第六版》章节知识点
  11. ppt入门到精通全套视频教程,Word+Excel+PPT三合一教程(15G)
  12. 苹果亮度自动调节怎么关闭_为何安卓自动亮度调节做不好?小米张国全释疑
  13. dijkstra模板(fast)
  14. 服务器系统测试,服务器系统整合测试
  15. 我们穷极一生,究竟追寻的是什么?
  16. np.percentile用法
  17. IOS 使用itms-services协议,服务端安装应用
  18. linux复制文件多份,Linux下同时复制多个文件
  19. 一般熟练盲打需要多久_学会盲打要多长时间,每天要练多长时间 盲打要练多久...
  20. java excel 数据有效性_Excel设置数据有效性实现单元格下拉菜单的3种方法

热门文章

  1. 年薪百万的生活是什么样子
  2. LeetCode——1803. 统计异或值在范围内的数对有多少(Count Pairs With XOR in a Range)[困难]——分析及代码(Java)
  3. mtr语言真是逆天了
  4. 我们暗恋的10种不良编程习惯
  5. python升级pip的命令
  6. wav文件 服务器失败,修复:Windows 7 中的 Windows Media Player 出现问题或错误,在 .wav 文件结束之前停止播放...
  7. oracle 存过传变量,Oracle 存储过程—为数传递变量
  8. 在 Python 中制作偶数列表
  9. 技术管理哪些事(三)落实“以人为本”的管理
  10. 【JavaSE】作业练习1111