uu直播快3平台_UU快3直播官方

理解随机森林:基于Python的实现和解释

时间:2020-01-28 12:01:19 出处:uu直播快3平台_UU快3直播官方

里能看一遍随机森林明显优于单个决策树。

在训练过程中,一点人会向模型提供底部形态和标签,使其也能学习基于哪几个底部形态对数据点进行分类。一点人这么针对你这些 简单问提图片的测试集,但在进行测试时,一点人只向模型提供底部形态,一点让其给出对标签的预测。

一点人还里能使用底部形态重要度来进行底部形态选择,即移除重要度为 0 或较低的底部形态。

1.随机采样数据点

将会你理解了单个决策树、bagging 决策树、底部形态的随机子集,那你就里能很好地理解随机森林的工作最好的最好的办法 了。随机森林组合了数百或数千个决策树,并会在稍有不同的观察集上训练每个决策树(数据点是可重复地抽取出来的),一点会根据限定数量的底部形态分割每个树中的节点。随机森林的最终预测结果是每个单个树的预测结果的平均。

一点人知道再次出先你这些 状况的原因分析分析是一点人将会为其提供过答案。而机器学习模型的关键在于能很好地泛化用于测试数据。不幸的是,当一点人不限制决策树的深度图时,它往往都不 与训练数据过拟合。

一点人的数据仅一个多多多多多底部形态(预测变量)。这里共有 6 个数据点,2 种不同的标签。

随机森林是由一点决策树构成的模型。这不仅仅是森林,一点是随机的,这涉及到一个多多多多概念:

里能看一遍正确率为 200%,这符合预期,将会一点人在训练过程中将会提供过答案(y)。

在这非常简单的数学运算中,一个多多多多非常强大的机器学习模型诞生了!

class:节点中大多数点的类别(持平时默认为 0)。在叶节点中,这是该节点中所有样本的预测结果。

基尼不纯度和决策树构建将会一点难以理解,以后首先一点人构建一个多多多多决策树,一点一点人通过一点简单的数学来进行解释。

基尼不纯度是决策树决定用于分割节点(有关数据的问提图片)的底部形态值的最好的最好的办法 。树会通过所有用于分割的底部形态来进行搜索,以最大化地降低不纯度。

接下来的步骤

一点人里能在训练数据上测试模型的准确度:

结果

理除理策树

随机采样

本文将介绍怎么才能 才能 使用 Python 构建和使用随机森林。一点人无须是简单地展示代码,而会尽力解释模型的工作最好的最好的办法 。一点人将从一个多多多多除理简单问提图片的单个决策树开始英语 ,一点逐渐深入,最终完成一个多多多多针对某个真实世界数据科学问提图片的随机森林。本文所涉及的完整篇 代码可参阅你这些 GitHub 上的 Jupyter Notebook:https://github.com/TryEnlight/Machine-Learning-Projects/blob/master/Random%20Forest%20Tutorial.ipynb

尽管你这些 问提图片很简单,但却无法实现线性分割,也假如说一点人这么在哪几个数据之间用四根直线将各个点划分到对应的类别。一点,一点人里能画出一系列直线来分开你这些 个多多类别,这实际上假如决策树在构建系列问提图片时的做法。

检视模型组织组织结构,里能看一遍单个决策树的最大深度图为 55,共有 12327 个节点。随机森林中决策树的平均深度图为 46,平均节点数为 13396。即使随机森林的平均节点数更大,它也能更好地泛化!

偏差-方差权衡:机器学习领域内的一个多多多多基本问提图片,描述了高复杂度的模型和简单模型之间的权衡。高复杂度模型里能很好地学习训练数据,但代价是这么很好地泛化到测试数据(高方差);而简单模型(高偏差)甚至无法学习训练数据。随机森林能在降低单个决策树的方差的一起准确地学习训练数据,从而在测试数据上得到更好的预测结果。

一点人先从一个多多多多如下所示的非常简单的二元分类任务开始英语 :

一点人还里能绘制单个决策树(上)和随机森林(下)的 ROC 曲线。曲线越靠近左上角,则模型越好:

决策树是随机森林的构建模块,你这些 是你这些 相当直观的模型。一点人里能将决策树看作是询问有关数据的问提图片的流程图,并最终导向一个多多多多预测类别(在回归任务上则是连续值)。这是你这些 可解释的模型,将会其决策最好的最好的办法 同类于一点人在现实生活中做法:一点人询问一系列有关数据的问提图片,直到一点人最终达成决策。

基于一个多多多多底部形态的值的有关数据的问提图片。每个问提图片的答案要么是 True,要么假如 False。数据点会根据该问提图片的答案在该决策树中移动。

可视化决策树

最后,一点人里能可视化森林中的单个决策树。这后后一点人就也能 限定树的深度图了,将会整个树非常大,难以转添加单张图像。我将最大深度图设定为 6,得到了下面的图像。这仍然是一副很大的图!

过拟合是指一点人的模型有很高的方差一点本质上记忆了训练数据的状况。这原因分析分析其在训练数据上表现非常好,甚至能达到完美的程度,但这么 它将无法在测试数据上做出准确的预测,将会测试数据是不同的!一点人前会的是既能在训练数据上表现优良,也能很好地分析测试数据的模型。为哪几个当一点人不限制决策树的最大深度图都不 使其容易过拟合呢?将会此时决策树有不受限制的复杂度,这原因分析分析它会不断生长,直到针对每个观察都不 一个多多多多叶节点,从而完美地分类所有数据点。

过拟合:森林比树更优的原因分析分析

引言中提到的 Jupyter Notebook 提供了一个多多多多用于随机森林的模型优化的随机搜索的实现。

一个多多多多简单问提图片的决策树

总结

一点人要除理的问提图片是一个多多多多二元分类任务。底部形态是个体的社会经济和生活最好的最好的办法 属性,标签 0 表示健康状况差,标签 1 表示身体健康。该数据集是由美国疾病预防控制中心派发的,可在这里获取:https://www.kaggle.com/cdc/behavioral-risk-factor-surveillance-system。这是一个多多多多不平衡分类问提图片,一点准确度并都不 要花费的度量标准。一点人将衡量曲线下受试者工作底部形态曲线(ROC AUC),该度量的取值范围为 0(最差)到 1(最好),随机猜测的分数为 0.5。一点人还里能绘制 ROC 曲线来评估模型的表现。

随机森林的一大关键是每个树都不 随机的数据点样本上进行训练。哪几个样本是可重复地抽取出来的(称为 bootstrapping),也假如说一点样本会多次用于单个树的训练(将会有也能 ,也里能禁止你这些 做法)。其思路是,通过在不同样本上训练每个树,尽管每个树最好的最好的办法 训练数据的某个特定子集而将会有较高方差,但整体而言整个森林的方差会很低。你这些 在数据的不同子集上训练每个单个学习器一点再求预测结果的平均的流程被称为 bagging,这是 bootstrap aggregating 的缩写。

基尼不纯度(Gini Impurity)

现在一点人应该去理解哪几个是基尼不纯度了。简单来说,基尼不纯度假如节点中随机选出的样本将会根据该节点的样本分布标注而一点标注不正确的概率。比如,在顶部(根)节点中,有 44.4% 的将会性将一个多多多多随机选择的数据点基于该节点的样本标签分布不正确地分类。

基尼不纯度为 0 时最完美,将会这原因分析分析随机选出的样本不将会被错误标注,这么当一个多多多多节点中的所有样本都属于同一类别时才会再次出先你这些 状况!在树的每一层级,加权的平均基尼不纯度都不 降低,表明节点变得更纯(另你这些 分割节点的最好的最好的办法 是使用信息增益,这是一个多多多多相关的概念)。

以后一点人在构建决策树时究竟所处了哪几个?我发现最有帮助的理除理策树的最好的最好的办法 是可视化,一点人里能使用 Scikit-Learn 实用系统tcp连接来做这件事(详情可参考 https://goo.gl/BYVyQJ 或 https://goo.gl/P98VjQ)。

一点人既有类别预测结果(predict),都不 预测概率(predict_proba),都不 计算 ROC AUC 所需的。有了测试预测结果后后,一点人里能将它们与测试标签进行比较,以计算出 ROC AUC。

随机森林中的底部形态重要度是所处最好的最好的办法 该底部形态分割的所有节点上基尼不纯度降低的总和。一点人里能使用你这些 指标选择随机森林认为最重要的预测变量是哪几个。底部形态重要度可从训练后的随机森林中提取出来,并表示成 Pandas dataframe 的形式:

希望这篇文章能为你提供信心,帮助你理解随机森林并开始英语 在你各人的项目中使用它。随机森林是你这些 强大的机器学习模型,但这不应该妨碍一点人理解它的工作最好的最好的办法 !一点人对一个多多多多模型的了解太满,一点人就能越好地使用它以及解释它做预测的最好的最好的办法 ,这么 各人才会信任它!现在行动起来,用随机森林除理一点问提图片吧。

决策树:基于有关底部形态值的问提图片的流程图进行决策的直观模型。将会过拟合训练数据而有很高的方差。

叶节点这么问提图片,将会哪几个节点是得出最终预测结果的地方。要分类一个多多多多新的数据点,只需沿树向下,使用该数据点的底部形态来回答问提图片,直到到达一个多多多多叶节点即可,此处的类别即为该树的预测结果。我就使用上述的点进行尝试或测试 Notebook 中不同的预测。

这假如完整篇 了!

尽管一点人前会理解机器学习模型组织组织结构的任何状况也能构建出强大的机器学习模型,但了解一点模型工作最好的最好的办法 的相关知识将大有裨益。在本文中,一点人不仅用 Python 构建和使用了一个多多多多随机森林,一点还对该模型进行了理解。

优化是指为给定数据集上的模型寻找最佳的超参数。数据集不同,最佳的超参数也会各有不同,以后一点人也能 分别在每个数据集上执行优化(也被称为模型调节)。我喜欢将模型调节看作是寻找机器学习算法的最佳设置。

底部形态的随机子集

随机森林实践

一个多多多多节点的基尼不纯度的公式为:

随着一点人继续沿决策树向下,节点最终会这么纯;在最后一层,每个节点的基尼不纯度都不 达到 0.0,这说明每个节点都只含有单一类别的样本。这符合一点人的预期,将会一点人并这么限制决策树的深度图,让其里能按也能 创建足够多的层以能分类所有数据点。尽管一点人的模型能正确分类所有的训练数据点,但这无须原因分析分析它假如完美的,将会它与训练数据将会过拟合了。

随机森林

引言

感谢 Scikit-Learn 这么 的库,让一点人现在里能非常轻松地使用 Python 实现任何机器学习算法。事实上操作起来很简单,一点人往往前会了解任何有关模型组织组织结构工作最好的最好的办法 的任何知识就能使用它。尽管一点人无须也能 理解所有细节,但了解一点有关模型训练和预测最好的最好的办法 的思路仍然会有很大的帮助。这使得一点人里能在模型表现不如预期时对模型进行诊断,或解释一点人的模型做决策的最好的最好的办法 ——这能帮助一点人说服他人使用一点人的模型。

下一步里能对随机森林进行优化,里能通过随机搜索和 Scikit-Learn 中的 RandomizedSearchCV 来做。

原文发布时间为:2019-1-6

本文作者:机器学习算法与Python学习

本文来自云栖社区相互合作伙伴“ 机器学习算法与Python学习 ”,了解相关信息里能关注“guodongwei1991”微信公众号

底部形态重要度

要理除理策树高方差的原因分析分析,一点人里能将其看作是一个多多多多人。想象一下,你也能 分析明日苹果6手机手机手机6手机手机7股票是与非 上涨,一点你决定去询问几位分析师。任何一位分析师都将会有很大的差异,一点非常依赖一点各人人所有能获取的数据——一位分析师将会仅阅读支持苹果6手机手机手机6手机手机7公司的新闻,一点她将会认为价格会上涨,而另一位分析师最近听一点人说苹果6手机手机手机6手机手机7产品质量开始英语 下降了,以后她认为应当下跌。哪几个分析师个体之间有很高的方差,将会一点人的答案严重依赖于一点人见过的数据。

随机森林身后的这么 概念是:在每个决策树中,分割每个节点时都只会考虑所有底部形态中的一个多多多多子集。通常设定为 sqrt(n_features),意思是在每个节点,决策树会基于一累积底部形态来考虑分割,这累积底部形态的数量为总底部形态数量的平方根。随机森林也里能在每个节点考虑所有底部形态来进行训练。(在 Scikit-Learn 随机森林实现中,哪几个选项是可调控的。)

一点人也里能不询问单个分析师,假如综合多量专家的意见,并基于最常见的答案给出最终决策。将会每位分析师都不 看一遍不同的数据,以里能能预期个体差异会很大,但整个集体的总体方差应该会减小。使用一点个体正是随机森林最好的最好的办法 身后的本质思路:都不 使用单个决策树,假如使用数百或数千个决策树来组成一个多多多多强大的模型。则该模型的最终预测结果即为集体中所有树的预测的平均。(过拟合问提图片也被称为「偏差-方差权衡」问提图片,是机器学习领域内一大基本研究主题。)

经过几分钟的训练后后,里能通过以下代码让该模型基于测试数据进行预测:

一点人首先了解了单个决策树,这是随机森林的基本构建模块;一点一点人看一遍了里能怎么才能 才能 将数百或数千个决策树组合成一个多多多多集合模型。当你这些 集合模型与 bagging 和随机的底部形态采样一起使用时,就被称为随机森林。本文中涉及的关键概念有:

你将会会问为哪几个不直接使用一个多多多多决策树?你这些 分类器堪称完美,将会根本前会犯任何错误!但要记住一个多多多多重点:决策树假如前会在训练数据上犯错。

gini:节点的基尼不纯度。当沿着树向下移动时,平均加权的基尼不纯度也能 降低。

bootstrapping:可重复地采样随机观察集。随机森林用于训练每个决策树的最好的最好的办法 。

其中 p_i 是该节点中类别 i 中数据点的比例。一点人来计算一下根(顶部)节点的基尼不纯度:

随机底部形态子集:在考虑怎么才能 才能 分割决策树中的每个节点时,选择一个多多多多随机的底部形态集。

可视化森林中的树

基尼不纯度:决策树在分割每个节点时所要最小化的指标。表示从一个多多多多节点随机选出的一个多多多多样本最好的最好的办法 该节点的样本分布而错误分类的概率。

这是该决策树顶层的总基尼不纯度,将会这里仅有根节点。在你这些 决策树的第二层,最左边的节点的基尼不纯度为 0.5,这似乎表明不纯度增大了。一点,每一层应该降低的是基尼不纯度的加权平均。每个节点都不 根据其样本占父节点样本的比例进行加权。以后整体而言,第二层的基尼不纯度为:

为了创建决策树,并在数据上进行训练(拟合),一点人里能使用 Scikit-Learn:

随机森林的最终 ROC AUC 结果是 0.87,而单个决策树的结果是 0.67。将会一点人看看训练分数,里能看一遍你这些 个多多模型都得到了 1.0 的 ROC AUC,同样这符合预期,将会一点人将会为哪几个模型提供过训练数据的答案一点这么限制最大深度图。一点,尽管随机森林过拟合了,但比起单个决策树,它仍能远远更好地泛化到测试数据上。

随机森林:由数百或数千个使用 bootstrapping、随机底部形态子集和平均投票来做预测的决策树构成的集合模型。这是 bagging 集成的一个多多多多示例。

非常同类于其它 Scikit-Learn 模型,通过 Python 使用随机森林仅也能 几行代码。一点人将会构建一个多多多多随机森林,但都不 针对上述的简单问提图片。为了比较随机森林与单个决策树的能力,一点人将使用一个多多多多真实数据集,并将其分成了训练集和测试集。

一点人还里能使用另你这些 模型诊断最好的最好的办法 ,即绘制测试预测结果的混淆矩阵(详见 Jupyter Notebook):

这展现了上述决策树的整体底部形态。除叶节点(终端节点)之外的所有节点都不 5 累积:

value:每一类别中样本的数量。比如,顶部节点含有 2 个样本属于类别 0,有 4 个样本属于类别 1。

samples:节点中观察的数量。

2.基于底部形态的子集分割节点

数据集

一点人稍后一点会谈到基尼不纯度,现在你只也能 知道,这原因分析分析决策树会尽力构建尽将会纯的节点,其含有很高比例的样本(数据点)都来自同一个多多多多类别。

决策树的主要技术细节在于怎么才能 才能 构建有关数据的问提图片。决策树的构建最好的最好的办法 是构建能最大限度降低基尼不纯度(Gini Impurity)的问提图片。

引言提到的 Jupyter Notebook 含有了针对该任务的决策树和随机森林实现,但这里一点人只关注随机森林。在读取了数据后后,一点人里能用以下代码实例化并训练一个多多多多随机森林:

热门

热门标签