随机森林分类器:概述,它是如何工作的,优点和缺点

您所在的位置:网站首页 随机森林分类参数是什么意思呀 随机森林分类器:概述,它是如何工作的,优点和缺点

随机森林分类器:概述,它是如何工作的,优点和缺点

2024-07-10 22:19| 来源: 网络整理| 查看: 265

你有没有想过 Netflix 如何挑选一部电影推荐给你? 或者亚马逊如何选择要在您的提要中显示的产品?

他们都使用推荐系统,这是一种利用随机森林分类器的技术。

随机森林分类器是最流行的分类算法之一。 今天,我们将了解这种强大的机器学习算法,并看看它是如何工作的。 您还将了解它的实现,因为我们将分享有关如何在实际问题中使用随机森林分类器的分步教程。

我们将在以下几点中介绍随机森林 sklearn 的优缺点以及更多内容。

目录

随机森林分类器:简介

随机森林分类器是一种监督学习算法,可用于回归和分类问题。 由于其高度的灵活性和易于实施,它是最流行的机器学习算法之一。

为什么随机森林分类器叫随机森林?

这是因为它由多个决策树组成,就像森林有很多树一样。 最重要的是,它使用随机性来提高其准确性和对抗过度拟合,这对于如此复杂的算法来说可能是一个巨大的问题。 这些算法基于随机选择的数据样本制作决策树,并从每棵树中获得预测。 之后,他们通过投票选择最佳可行的解决方案。

它在我们的日常生活中有许多应用,例如特征选择器、推荐系统和图像分类器。 它的一些现实应用包括欺诈检测、贷款申请分类和疾病预测。 它构成了 Boruta 算法的基础,该算法在数据集中挑选重要特征。

它是如何工作的?

假设您的数据集有“m”个特征,随机森林将随机选择“k”个特征,其中 k < m。 现在,该算法将通过选择具有最高信息增益的节点来计算 k 个特征中的根节点。

之后,算法将节点拆分为子节点并重复此过程“n”次。 现在你有一个有 n 棵树的森林。 最后,您将执行自举,即结合您的森林中存在的所有决策树的结果。

它当然是最复杂的算法之一,因为它建立在决策树的功能之上。

从技术上讲,它是一种集成算法。 该算法通过属性选择指示生成单独的决策树。 每棵树都依赖于一个独立的随机样本。 在分类问题中,每棵树都投票,最流行的类是最终结果。 另一方面,在回归问题中,您将计算所有树输出的平均值,这将是您的最终结果。

与用于分类问题的其他非线性算法相比,随机森林 Python 实现更简单、更健壮。

以下示例将帮助您了解如何在日常生活中使用随机森林分类器:

例子

假设你想买一辆新车,你向你最好的朋友 Supratik 征求他的建议。 他会询问你的喜好、预算和要求,还会分享他过去的汽车经验,给你推荐。

在这里,Supratik 正在使用决策树方法根据您的回复为您提供反馈。 在他的建议之后,您对他的建议感到不确定,因此您向 Aditya 询问了他的建议,他还询问了您的偏好和其他要求。

假设你重复这个过程并问'n'个朋友这个问题。 现在你有几辆车可供选择。 您从朋友那里收集所有选票,并决定购买得票最多的汽车。 您现在已经使用随机森林方法来挑选要购买的汽车。

然而,你越多地迭代这个过程,你就越容易过度拟合。 那是因为您在决策树中的数据集将变得更加具体。 随机森林通过使用随机性来解决这个问题。

随机森林分类器的优缺点

每种机器学习算法都有其优点和缺点。 以下是随机森林分类算法的优缺点:

优点随机森林算法比大多数非线性分类器准确得多。 该算法也非常健壮,因为它使用多个决策树来得出结果。 随机森林分类器不会面临过拟合问题,因为它取所有预测的平均值,消除偏差,从而解决过拟合问题。 您可以将此算法用于回归和分类问题,使其成为一种高度通用的算法。 随机森林不会让缺失值导致问题。 他们可以使用中值代替连续变量或计算缺失值的邻近加权平均值来解决这个问题。 该算法为您提供了相对特征重要性,使您可以轻松地为分类器选择最有贡献的特征。 缺点该算法比其他分类算法慢得多,因为它使用多个决策树进行预测。 当随机森林分类器进行预测时,森林中的每棵树都必须对相同的输入进行预测并对其进行投票。 这个过程可能非常耗时。 由于速度缓慢,随机森林分类器可能不适合实时预测。 与决策树相比,该模型很难解释,因为您可以通过遵循树的路径进行选择。 但是,这在随机森林中是不可能的,因为它有多个决策树。 随机森林和决策树的区别

顾名思义,决策树是具有分支和节点的树状流程图。 该算法根据每个节点的输入特征拆分数据,并生成多个分支作为输出。 这是一个迭代过程,会增加创建的分支(输出)的数量和数据的差异化。 这个过程不断重复,直到创建一个节点,其中几乎所有数据都属于同一类,并且不可能有更多的分支或拆分。

另一方面,随机森林使用多个决策树,因此得名“森林”。 它从用于进行所需预测的各种决策树中收集选票。

因此,随机森林分类器和决策树之间的主要区别在于前者使用后者的集合。 以下是两者之间的一些其他区别:

决策树面临过度拟合的问题,但随机森林没有。 这是因为随机森林分类器使用随机子集来解决这个问题。 决策树比随机森林快。 随机森林使用多个决策树,这需要大量计算能力,因此需要更多时间。 决策树比随机森林更容易解释,您可以根据规则轻松转换前者,但对后者做同样的事情相当困难。 构建算法(随机森林 Sklearn)

在以下示例中,我们使用 scikit-learn 库执行了随机森林 Python 实现。 您可以按照本教程的步骤构建自己的随机森林分类器。

虽然 80% 的数据科学任务需要您优化数据,其中包括数据清理、清理、修复缺失值等等。 然而,在这个例子中,我们将只关注算法的实现。

第一步:导入库并加载数据集

首先,我们必须导入所需的库并将我们的数据集加载到数据框中。

输入:

#导入需要的库

将熊猫导入为 pd

将 numpy 导入为 np

将 matplotlib.pyplot 导入为 plt

#导入数据集

从 sklearn.datasets 导入 load_iris 数据集 = load_iris ()

第二步:将数据集拆分为训练集和测试集

在我们导入必要的库并加载数据后,我们必须将数据集拆分为训练集和测试集。 训练集将帮助我们训练模型,而测试集将帮助我们确定我们的模型实际上有多准确。

输入:

# 将分类器拟合到训练集

从 sklearn.tree 导入 DecisionTreeClassifier

模型 = DecisionTreeClassifier(criterion = 'entropy' , splitter = 'best' , random_state = 0)

model.fit(X_train, y_train)

输出:

决策树分类器(class_weight=None,criteria='entropy',max_depth=None, max_features=无,max_leaf_nodes=无, min_impurity_decrease=0.0,min_impurity_split=无, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=0,

拆分器='最好的')

第三步:创建随机森林分类器

现在,我们将使用 Python 和 scikit-learn 创建我们的随机森林分类器。

输入:

#将分类器拟合到训练集

从 sklearn.ensemble 导入 RandomForestClassifier

模型 = RandomForestClassifier(n_estimators=100, 标准-'熵', random_state = 0)

model.fit(X_train, y_train)

输出:

RandomForestClassifier(bootstrap=True,class_weight=None,criteria='entropy',

max_depth=None, max_features='auto', max_leaf_nodes=None,

min_impurity_decrease=0.0,min_impurity_split=无,

min_samples_leaf=1, min_sampes_split=2,

min_weight_fraction_leaf=0.0,n_estimators=100,n_jobs=None,

oob_score=False,random_state=0,verbose=0,warm_start=False)

第四步:预测结果并制作混淆矩阵

一旦我们创建了分类器,我们就可以通过在测试集上使用它来预测结果,并制作混淆矩阵并获得模型的准确度分数。 分数越高,我们的模型就越准确。

输入:

#预测测试集结果

y_pred = mode.predict(X_test)

#创建混淆矩阵

从 sklearn.metrics 导入混淆矩阵

厘米 = 混淆矩阵(y_test,y_pred)

厘米

输出:

数组 ([[16, 0, 0]

[0, 17, 1]

[0, 0, 11]])

输入:

#获取模型的分数

model.score(X_test, y_test)

输出:

0.977777777777777

结论

随机森林分类器有很多应用。 它们是最强大的机器学习算法之一,是任何 AI 和 ML 专业人士的必备工具。

如果您有兴趣了解有关人工智能的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和 AI 执行 PG 计划,该计划专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT -B 校友身份,5 个以上实用的实践顶点项目和顶级公司的工作协助。

机器学习中的随机森林是什么?

随机森林是一种集成学习方法,它可以提供比大多数其他机器学习算法更准确的预测。 它通常用于决策树学习。 使用决策树创建森林,每个决策树本身就是一个强分类器。 这些决策树用于创建强分类器的森林。 这种强分类器的森林比决策树或其他机器学习算法提供了更好的预测。

随机森林和决策树有什么区别?

决策树是描述给定问题的分析过程的流程图。 我们倾向于将它们最常用于分类问题。 决策树描述了进行分类所需的消除过程。 与决策树相反,随机森林基于树的集合,许多研究表明它通常比决策树更强大。 此外,随机森林更能抵抗过拟合,在数据缺失时更稳定。

随机森林的缺点是什么?

随机森林是一个稍微复杂的模型。 它不是一个黑盒模型,也不容易解释结果。 它比其他机器学习模型慢。 它需要大量的特征才能获得良好的准确性。 随机森林是一种集成学习方法,与其他集成方法(例如 bagging、boosting 或 stacking)一样。 这些方法往往不稳定,这意味着如果训练数据发生轻微变化,最终模型可能会发生巨大变化。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3