使用 Scikit-Learn 探索集成方法

Beginner

This tutorial is from open-source community. Access the source code

简介

在本实验中,我们将使用 scikit-learn 探索集成方法。集成方法是一种机器学习技术,它结合多个模型以实现比单个模型更好的性能。我们将特别关注两种流行的集成方法:Bagging 和随机森林。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

导入依赖项

让我们首先导入必要的依赖项。

import numpy as np
from sklearn.ensemble import BaggingClassifier, RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, cross_val_score

加载数据

接下来,我们将使用load_iris函数从 scikit-learn 中加载鸢尾花数据集。

data = load_iris()
X, y = data.data, data.target

划分数据

我们将使用 scikit-learn 中的train_test_split函数把数据划分为训练集和测试集。

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

拟合 Bagging 分类器

现在,我们将在训练数据上拟合一个 Bagging 分类器。Bagging 分类器是一种集成方法,它使用自助采样来创建多个基模型(通常是决策树),并通过多数投票来聚合它们的预测结果。

bagging = BaggingClassifier(DecisionTreeClassifier(), n_estimators=10)
bagging.fit(X_train, y_train)

评估 Bagging 分类器

让我们通过使用score方法计算测试数据上的准确率得分来评估 Bagging 分类器。

accuracy = bagging.score(X_test, y_test)
print(f"Bagging Classifier Accuracy: {accuracy}")

拟合随机森林分类器

接下来,我们将在训练数据上拟合一个随机森林分类器。随机森林分类器也是一种集成方法,它使用自助采样来创建多个决策树,但它还通过在每次划分时仅考虑特征的一个子集来增加额外的随机性。

random_forest = RandomForestClassifier(n_estimators=10)
random_forest.fit(X_train, y_train)

评估随机森林分类器

让我们通过计算测试数据上的准确率得分来评估随机森林分类器。

accuracy = random_forest.score(X_test, y_test)
print(f"Random Forest Classifier Accuracy: {accuracy}")

总结

在本实验中,我们使用 scikit-learn 探索了集成方法。我们在鸢尾花数据集上拟合了一个 Bagging 分类器和一个随机森林分类器,并评估了它们的性能。像 Bagging 和随机森林这样的集成方法可以成为提高机器学习模型预测性能的强大工具。