python随机森林变量重要性_Python中随机森林的实现与解释

本文深入探讨了Python中的随机森林模型,从单个决策树的构建和工作原理开始,逐步讲解了如何使用随机森林解决实际问题。通过可视化决策树和分析特征重要性,展示了随机森林在数据科学中的应用。最后,讨论了随机森林相比于单一决策树的优势,以及如何在实际项目中优化随机森林的超参数。
摘要由CSDN通过智能技术生成

使用像Scikit-Learn这样的库,现在很容易在Python中实现数百种机器学习算法。这很容易,我们通常不需要任何关于模型如何工作的潜在知识来使用它。虽然不需要了解所有细节,但了解机器学习模型是如何工作的仍然有用。这使我们可以在模型表现不佳时进行诊断,或者解释模型如何做出决策,如果我们想让别人相信我们的模型,这是至关重要的。

在本文中,我们将介绍如何在Python中构建和使用Random Forest。除了查看代码之外,我们还将尝试了解此模型的工作原理。因为由许多决策树组成的随机森林,我们首先要了解单个决策树如何对一个简单的问题进行分类。然后,我们将努力使用随机森林来解决现实世界的数据科学问题。本文的完整代码在GitHub上以Jupyter Notebook的形式提供【1】。

理解决策树‍

一个决策树是一个随机森林的基石,是一个直观的模型。我们可以将决策树视为一系列是/否问题,询问我们的数据最终导致预测类(或回归情况下的连续值)。这是一个可解释的模型,因为它可以像我们一样进行分类:(在理想世界中)在我们做出决定之前,我们会询问有关可用数据的一系列问题。

决策树的技术细节是如何形成有关数据的问题。在CART算法中,通过确定问题(称为节点的分裂)来构建决策树,这些问题在被回答时导致基尼杂质的最大减少。这意味着决策树试图通过在将数据干净地划分为类的特征中查找值来形成包含来自单个类的高比例样本(数据点)的节点。

我们稍后将讨论关于Gini杂质的低级细节,但首先,让我们构建一个决策树,以便我们能够在高层次上理解它。

关于简单问题的决策树

我们将从一个非常简单的二进制分类问题开始,如下所示:

我们的数据仅具有两个特征(预测变量),具有6个数据点,分成2个不同的标签。虽然这个问题很简单,但它不是线性可分的,这意味着我们不能通过数据绘制一条直线来对点进行分类。

然而,我们可以绘制一系列直线,将数据点划分为多个框,我们称之为节点。实际上,这就是决策树在训练期间所做的事情。有效地,决策树是通过构造许多线性边界而构建的非线性模型。

要创建决策树并对数据进行训练(fit),我们使用Scikit-Learn。

from sklearn.tree import DecisionTreeClassifier

# Make a decision tree and train

tree = DecisionTreeClassifier(random_state=RSEED)

tree.fit(X, y) ‍

在训练过程中,我们为模型提供特征和标签,以便学习根据特征对点进行分类。(我们没有针对这个简单问题的测试集,但在测试时,我们只为模型提供功能并让它对标签进行预测。)

我们可以在训练数据上测试我们模型的准确性:

print(fModel Accuracy: {tree.score(X, y)})

Model Accuracy: 1.0

我们看到它获得100%的准确性,这是我们所期望的,因为我们提供了训练的答案(y)并没有限制树的深度。事实证明,完全学习训练数据的能力可能是决策树的缺点,因为它可能会导致过度拟合

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值