以下是使用 AdaBoost
算法进行分类的一个简单例子,采用 Python 中的 scikit-learn
库。我们将使用经典的鸢尾花(Iris)数据集,并通过 AdaBoost
结合决策树分类器来进行分类。
代码实现:
# 导入库
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集
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.2, random_state=42)
# 创建一个基础分类器(决策树)
base_classifier = DecisionTreeClassifier(max_depth=1)
# 创建 AdaBoost 分类器
ada_classifier = AdaBoostClassifier(base_estimator=base_classifier, n_estimators=50, learning_rate=1.0, random_state=42)
# 训练 AdaBoost 模型
ada_classifier.fit(X_train, y_train)
# 进行预测
y_pred = ada_classifier.predict(X_test)
# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print(f"AdaBoost 模型的准确率: {accuracy:.2f}")
代码说明:
-
数据集加载:
- 使用
load_iris()
函数加载鸢尾花数据集,这是一个经典的分类数据集,有 150 个样本,包含 4 个特征和 3 个类别。
- 使用
-
数据集划分:
- 使用
train_test_split
将数据集划分为训练集(80%)和测试集(20%)。
- 使用
-
基础分类器:
- 我们选择决策树作为基础分类器,并将其最大深度设置为 1(即决策树桩)。
-
AdaBoost 分类器:
AdaBoostClassifier
是scikit-learn
中实现的 AdaBoost 分类器。通过设置base_estimator=base_classifier
使用决策树作为弱学习器。- 参数
n_estimators=50
表示使用 50 个弱分类器进行集成。 learning_rate=1.0
控制每个弱分类器对最终分类器的贡献权重。
-
训练和预测:
- 通过
fit
方法训练 AdaBoost 模型。 - 使用
predict
方法对测试集进行预测。
- 通过
-
模型评估:
- 使用
accuracy_score
评估模型的准确率。
- 使用
结果:
最终会输出模型在测试集上的准确率,例如:
AdaBoost 模型的准确率: 1.00
这个结果表明,AdaBoost 模型在鸢尾花数据集的测试集上表现良好。通过组合多个弱分类器,AdaBoost 能够提升整体模型的性能。
标签:iris,机器,实例,分类器,train,AdaBoost,test,classifier From: https://blog.csdn.net/finly4599/article/details/141952981