0%

baggging

Bagging(Bootstrap Aggregating)是一种集成学习方法,旨在提高模型的稳定性和泛化能力。它通过随机从训练集中有放回地抽取样本,然后训练多个独立的基本模型,最终通过投票或取平均来融合这些模型的预测结果。随机样本抽取和多模型组合有助于减小模型的方差,提高整体性能。

以下是使用 Python 的 scikit-learn 库实现 Bagging 的示例代码。我们将使用决策树作为基本模型:

首先,确保已安装 scikit-learn 库,可以通过以下命令安装:

1
pip install scikit-learn

接下来,使用下面的代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

# 加载鸢尾花数据集
iris = load_iris()
X, y = iris.data, iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建 Bagging 分类器,基本模型为决策树
base_model = DecisionTreeClassifier(random_state=42)
bagging_model = BaggingClassifier(base_model, n_estimators=10, random_state=42)

# 训练模型
bagging_model.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = bagging_model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Bagging Accuracy:", accuracy)

在上述代码中,我们使用了 load_iris 函数加载鸢尾花数据集,并将数据集划分为训练集和测试集。然后,我们创建了一个 Bagging 分类器,基本模型选用了决策树。通过训练 Bagging 模型,然后在测试集上进行预测,并计算了预测的准确率。

通过调整参数(如基本模型、基本模型数量等),您可以进一步优化 Bagging 模型的性能。请注意,Bagging 算法也适用于其他基本模型,例如随机森林中的决策树、KNN 等。