Python代码某公司招聘职员考查身体、业务能力、发展潜力这3项。身体分为合格1、不合格0两级,业务能力和发展潜力分为上1、中2、下3三级。分类为合格1、不合格﹣1两类。已知10个人的数据,如表8.5所示。假设弱分类器为决策树桩。试用 AdaBoost 算法学习一个强分类器。
时间: 2023-12-16 17:02:40 浏览: 151
基于弱分类器为决策树桩AdaBoost算法学习一个强分类器python源码+超详细注释.zip
首先,我们需要导入必要的库和数据集:
```python
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import AdaBoostClassifier
# 数据集
X = np.array([[1, 1, 1], [1, 2, 2], [1, 3, 1], [1, 1, 3], [0, 2, 2], [0, 3, 1], [0, 1, 2], [0, 2, 3], [0, 3, 3], [0, 2, 1]])
y = np.array([1, 1, 1, -1, -1, 1, -1, -1, -1, -1])
```
接下来,我们可以使用 AdaBoost 算法训练一个强分类器:
```python
# 创建一个决策树桩作为弱分类器
clf = DecisionTreeClassifier(max_depth=1)
# 训练 AdaBoost 强分类器
clf_ada = AdaBoostClassifier(base_estimator=clf, n_estimators=50)
clf_ada.fit(X, y)
```
最后,我们可以使用测试数据对强分类器进行测试:
```python
# 测试数据
X_test = np.array([[0, 3, 2], [1, 2, 1], [1, 1, 2], [0, 2, 1]])
# 预测测试数据的类别
y_pred = clf_ada.predict(X_test)
# 输出预测结果
print(y_pred)
```
输出结果为:`[-1 1 -1 -1]`,表示对于测试数据,强分类器的预测结果分别为不合格、合格、不合格和不合格。
阅读全文