Py学习  »  Python

Python+sklearn随机森林算法使用入门

Python小屋 • 4 年前 • 473 次点击  

封面图片:《Python程序设计实验指导书》(ISBN:9787302525790),董付国,清华大学出版社

图书详情:https://item.jd.com/12592638.html

活动预告:明天(2019年7月7日)推出一波送书活动,持续4天,送15本《Python可以这样学》。

==============

随机森林是一种集成学习方法,基本思想是把几棵不同参数的决策树(参考:Python+sklearn决策树算法使用入门)打包到一起,每棵决策树单独进行预测,然后计算所有决策树预测结果的平均值(适用于回归分析)或所有决策树“投票”得到最终结果(适用于分类)。在随机森林算法中,不会让每棵树都生成最佳的节点,而是在每个节点上随机选择一个特征进行分裂。

扩展库sklearn在ensemble模块中提供了随机森林分类器RandomForestClassifier和随机森林回归器RandomForestRegressor。本文重点介绍随机森林分类器的用法,该类构造方法语法为

__init__(self, n_estimators=10, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False, class_weight=None)

RandomForestRegressor类构造方法常用参数以及RandomForestRegressor类对象常用方法如下面的两个表所示。

表  RandomForestClassifier类构造方法常用参数及含义

参数名称

含义

n_estimators

用来指定森林中树的数量,默认为10

criterion

用来指定衡量分裂(创建子节点)质量的函数,取值为'gini'时使用基尼值,为'entropy'时使用信息增益

max_features

用来指定寻找最佳分裂时考虑的特征数量,可以是整数,也可以是实数(表示百分比)、'auto'(相当于max_features=sqrt(n_features)、'sqrt'(与'auto'含义相同)、'log2'(相当于max_features=log2(n_features))、None(相当于max_features=n_features

max_depth

用来指定树的最大深度

min_samples_split

用来指定分裂节点时要求的样本数量最小值,值为实数时表示百分比

min_samples_leaf

用来指定叶子节点要求的样本数量最小值

max_leaf_nodes

在最佳优先方式中使用该参数生成树

min_impurity_split

在树的生长过程中早停的阈值,如果一个节点的不纯度高于该阈值则进行分裂,否则为叶子节点

min_impurity_decrease

如果一个节点分裂后带来的不纯度减少的量大于等于该参数的值,就对该节点进行分裂

bootstrap

用来设置在构建树时是否可以重复使用同一个样本

oob_score

用来设置是否使用out-of-bag样本(本次没有使用的样本)估计泛化精度

 

表  RandomForestClassifier类对象常用方法

方法

功能

predict(self, X)

预测样本集X中样本的目标

apply(self, X)

把森林中的树应用到样本集X,返回叶子索引

decision_path(self, X)

返回森林中的决策路径

fit(self, X, y, sample_weight=None)

根据训练集(X, y)构建包含若干决策树的森林

score(self, X, y, sample_weight=None)

根据样本集和对应的真实值计算并返回模型得分

下面代码演示了随机森林分类器的简单使用:


运行结果为:




温馨提示

关注本公众号“Python小屋”,通过菜单“最新资源”==>“历史文章”可以快速查看分专题的800篇技术文章列表(可根据关键字在页面上搜索感兴趣的文章),通过“最新资源”==>“微课专区”可以免费观看300节Python微课,通过“最新资源”==>“培训动态”可以查看近期Python培训安排,通过“最新资源”==>“教学资源”可以查看Python教学资源。


--------董付国老师Python系列图书--------

友情提示:不建议购买太多,最好先通过京东、当当、天猫查阅图书了解目录和侧重点,然后再选择购买适合自己的书。

1)《Python程序设计(第2版)》清华大学出版社,2016年8月


2)《Python可以这样学》清华大学出版社,2017年2月


3)《Python程序设计基础(第2版)》清华大学出版社,2018年1月

4)《中学生可以这样学Python》 清华大学出版社,配套微课:《中学生可以这样学Python》84节微课免费观看地址


5)《Python程序设计开发宝典》清华大学出版社,2018年10月


6)《玩转Python轻松过二级》清华大学出版社,2018年5月


7)《Python程序设计基础与应用》机械工业出版社,2018年9月


8)《Python程序设计实验指导书》清华大学出版社,2019年4月


9)《Python编程基础与案例集锦(中学版)》电子工业出版社,2019年4月

10) 《大数据的Python基础》机械工业出版社,预计2019年5月出版

11)译作《Python程序设计》,机械工业出版社(华章),2018年11月出版

12)繁体版《Python也可以这样学》,台湾博硕文化股份有限公司,2017年10月出版,本书为《Python可以这样学》在台湾发行的繁体版,两本书内容一样,不建议重复购买



《中学生可以这样学Python》84节微课免费观看地址

Python课程期末考试编程题自动批卷原理与实现模板

“Python小屋”免费资源汇总(截至2018年11月28日)

Python课堂上我与学生斗智斗勇已8个学期

技术要点|Python监控学生端电脑屏幕自动识别学习状态


课后习题答案

《Python程序设计基础(第2版)》习题答案

《Python程序设计基础与应用》课后习题答案


实验指导书

《Python程序设计》实验指导书(30个实验)

Python实验项目1例:使用进程池统计指定范围内素数的个数


教学大纲

非计算机专业《Python程序设计基础》教学参考大纲

计算机相关专业“Python程序设计”教学大纲(参考)


课件

1900页Python系列PPT分享一:基础知识(106页)

1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)

1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

1900页Python系列PPT分享四:字符串与正则表达式(109页)

1900页Python系列PPT分享五:函数设计与应用(134页)

1900页Python系列PPT分享六:面向对象程序设计(86页)

1900页Python系列PPT分享七:文件操作(132页)

1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)

2000页Python系列PPT分享九:(GUI编程)(122页)


报告PPT

报告PPT(163页):基于Python语言的课程群建设探讨与实践

报告PPT(123页):Python编程基础精要

(PPT)Python程序设计课程教学内容组织与教学方法实践



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/35645
 
473 次点击