机器学习框架sklearn之随机森林

这篇具有很好参考价值的文章主要介绍了机器学习框架sklearn之随机森林。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

集成学习方法

集成学习通过建立几个模型组合来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立的学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。

随机森林

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。

  • 随机森林原理过程

    学习算法根据下列算法而建造每棵树:

    • 用N来表示训练用例(样本)的个数,M表示特征数目
      • 一次随机选出一个样本,重复N次(有可能出现重复样本)
      • 随机去选出m个特征,m<<M,建立决策树
    • 采取bootstrap抽样(随机有放回抽样)

    为什么采用Bootstrap抽样?文章来源地址https://www.toymoban.com/news/detail-421104.html

    • 为什么要随机抽样训练集?
      • 如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的
    • 为什么要有放回的抽样?
      • 如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是“有偏的”,都是“片面的”,也就是说每棵树训练出来都是有很大差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决

API

class sklearn.ensemble.RandomForestClassifier(n_estimators=10,criterion='gini',max_depth=None,bootstrap=True,random_state=None,min_samples_split=2)

-随机森林分类器
-n_estimators:integer,optional(default=10)森林里的树木数量
-criterion:string,可选(default=“gini”)分割特征的测量方法
-max_depth:integer或None,可选(默认=无)树的最大深度
-max_features="auto",每个决策树的最大特征数量
	-if "auto",then max_features=sqrt(n_features)
	-if "sqrt",then max_features=sqrt(n_features)
	-if "log2",then max_features=log2(n_features)
	-if None,then max_features=n_features
-bootstrap:Boolean,optional(default=True)是否在构建树时使用放回抽样
-min_samples_split:节点划分最少样本数
-min_samples_leaf:叶子节点的最小样本数
-超参数:n_estimators,max_depth,min_samples_split,min_samples_leaf

使用

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.feature_extraction import DictVectorizer
def forest_demo():
    #获取数据
     path="http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
     titanic=pd.read_csv(path)
     x=titanic[["pclass","age","sex"]]
     y=titanic["survived"]
     #数据处理
     #缺失值处理
     x["age"].fillna(x["age"].mean(),inplace=True)
     #转换成字典
     x.to_dict(orient="records")
     x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=22)
    #字典特征抽取
     transfer=DictVectorizer()
     x_train=transfer.fit_transform(x_train)
     x_test=transfer.transform(x_test)
    #随机森林
     estimator=RandomForestClassifier()
     # 加入网格搜索与交叉验证
     param_dict={"n_estimators":[120,200,300],"max_depth":[5,8,25,30]}
     estimator=GridSearchCV(estimator,param_grid=param_dict,cv=3)
     estimator.fit(x_train,y_train)
     # 方法一
     y_predict = estimator.predict(x_test)
     print("直接比对真实值和预测值:\n", y_test == y_predict)
     # 方法二
     score = estimator.score(x_test, y_test)
     print("准确率为:\n", score)
     # 最佳参数:best_params_
     print("最佳参数:\n", estimator.best_params_)
     # 最佳结果:best_score_
     print("最佳结果:\n", estimator.best_score_)
     # 最佳估计器:best_estimator_
     print("最佳估计器:\n", estimator.best_estimator_)
     # 交叉验证结果:cv_results_
     print("交叉验证结果:\n", estimator.cv_results_)
     return None

总结

  • 在当前所有算法中,具有极好的准确率
  • 能够有效的运行在大数据集上,处理具有高维特征的输入样本,而且不需要降维
  • 能够评估各个特征在分类问题上的重要性

到了这里,关于机器学习框架sklearn之随机森林的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 17. 机器学习 - 随机森林

    Hi,你好。我是茶桁。 我们之前那一节课讲了决策树,说了决策树的优点,也说了其缺点。 决策树实现起来比较简单,解释解释性也比较强。但是它唯一的问题就是不能拟合比较复杂的关系。 后来人们为了解决这个问题,让其能够拟合更加复杂的情况,提出来了一种模型,

    2024年02月05日
    浏览(37)
  • 机器学习随机森林笔记

            随机森林(Random Forests)是一种集成学习方法,用于解决分类和回归问题。它是由Leo Breiman和Adele Cutler于2001年提出的,是集成学习中最受欢迎和广泛应用的算法之一。         随机森林通过组合多个决策树来进行预测。每个决策树都是独立地从原始数据的随机

    2024年02月15日
    浏览(32)
  • 机器学习——决策树/随机森林

    决策树可以做分类也可以做回归,决策树容易过拟合 决策树算法的基本原理是依据信息学熵的概念设计的(Logistic回归和贝叶斯是基于概率论),熵最早起源于物理学,在信息学当中表示不确定性的度量,熵值越大表示不确定性越大。 ID3算法就是一种通过熵的变化,构造决策

    2024年02月07日
    浏览(27)
  • 机器学习笔记:随机森林

    集成学习通过构建多个学习器采用加权的方式来完成学习任务 一般来讲,多个学习器同属于一种模型,比如决策树,线性模型,而不会交叉用多种模型 为了保证集成学习的有效性,多个弱分类器之间应该满足两个条件 准确性 :个体学习器要有一定的准确性,这样才能有好的

    2024年02月16日
    浏览(50)
  • 【机器学习】python实现随机森林

    目录 一、模型介绍 1. 集成学习 2. bagging 3. 随机森林算法 二、随机森林算法优缺点 三、代码实现 四、疑问 五、总结 本文使用mnist数据集,进行随机森林算法。 集成学习通过训练学习出多个估计器,当需要预测时通过结合器将多个估计器的结果整合起来当作最后的结果输出。

    2024年02月05日
    浏览(34)
  • 机器学习(十八):Bagging和随机森林

    全文共10000余字,预计阅读时间约30~40分钟 | 满满干货(附数据及代码),建议收藏! 本文目标:理解什么是集成学习,明确Bagging算法的过程,熟悉随机森林算法的原理及其在Sklearn中的各参数定义和使用方法 代码及数据集下载点这里 在机器学习的众多算法中,随机森林无疑是

    2024年02月13日
    浏览(42)
  • 机器学习——决策树与随机森林

    机器学习——决策树与随机森林 决策树和随机森林都是常见的机器学习算法,用于分类和回归任务,本文将对这两种算法进行介绍。 决策树算法是一种基于树结构的分类和回归算法。它通过对数据集进行 递归地二分 ,选择最佳的特征进行划分,直到达到终止条件。 决策树

    2024年02月09日
    浏览(27)
  • 【机器学习】随机森林 – Random forest

    随机森林是一种由 决策树 构成的 集成算法 ,他在很多情况下都能有不错的表现。 要深入理解上面这句话,请阅读我的另外两篇文章: 【机器学习】决策树 – Decision Tree 【机器学习】集成学习 - Ensemble Learning 随机森林属于 集成学习 中的 Bagging (Bootstrap AGgregation 的简称)

    2024年02月16日
    浏览(37)
  • 机器学习十大算法之七——随机森林

    集成学习(ensemble learning)是时下非常流行的机器学习算法,它本身不是一个单独的机器学习算法,而是通过在数据上构建多个横型,集成所有模型的建模结果,基本上所有的机器学习领域都可以看到集成学习的身影,在现实中集成学习也有相当大的作用,它可以用来做市场

    2024年02月11日
    浏览(31)
  • R语言机器学习篇——随机森林

    参考书籍:陈强.机器学习及R应用.北京:高等教育出版社,2020 随机森林属于集成学习的方法,也称为组台学习,本章介绍随机森林与它的特例方法,装袋法,并分别以例子的形式讨论回归问题与分类问题的随机森林方法。 对于回归问题,调用MASS包数据框Boston作为数据集,分析

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包