python实现bagging分类器
时间: 2023-06-29 20:12:08 浏览: 105
以下是使用Python中scikit-learn库实现Bagging分类器的代码示例:
```python
# 导入需要的库和数据集
from sklearn.datasets import load_iris
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 构建决策树分类器
dtc = DecisionTreeClassifier()
# 构建Bagging分类器
bagging = BaggingClassifier(base_estimator=dtc, n_estimators=10, random_state=42)
# 训练Bagging分类器
bagging.fit(X_train, y_train)
# 预测测试集结果
bagging_y_pred = bagging.predict(X_test)
# 输出Bagging分类器的准确率
print("Bagging Classifier Accuracy:", bagging.score(X_test, y_test))
```
在上面的代码中,我们使用`load_iris()`函数加载鸢尾花数据集,并将其划分为训练集和测试集。然后,我们构建了一个决策树分类器,并将其作为基分类器传递给了`BaggingClassifier`。我们指定了`n_estimators`参数为10,表示使用10个基分类器进行Bagging。`random_state`参数指定了随机数生成器的种子,以确保结果的可重复性。
通过`fit()`方法训练Bagging分类器,并使用`score()`方法计算分类器的准确率,并输出结果。
Bagging分类器是一种集成学习算法,通过在原始数据集上进行有放回抽样来生成不同的训练数据集,从而训练多个不同的基分类器。最终分类结果是基分类器投票结果的加权平均值。Bagging分类器可以有效地减少方差,并提高模型的泛化能力。
阅读全文