集成学习-Stacking

代码示例

使用 Python 中 Scikit-learn 库中的 StackingClassifier 实现堆叠的简单示例:

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
27
28
29
30
31
32
33
34
35
36
# Importing necessary libraries
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import StackingClassifier
from sklearn.metrics import accuracy_score

# 加载 Iris 数据集。
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)

# 定义基分类器,包括 RandomForestClassifier 和 LogisticRegression。
base_classifiers = [
('rf', RandomForestClassifier(n_estimators=10, random_state=42)),
('lr', LogisticRegression(random_state=42))
]

# 定义一个元分类器,它是另一个 LogisticRegression 分类器。
meta_classifier = LogisticRegression(random_state=42)

# 使用基分类器和元分类器定义 StackingClassifier。
stacking_classifier = StackingClassifier(estimators=base_classifiers, final_estimator=meta_classifier)

# 在训练数据上训练 StackingClassifier。基分类器的预测用作元分类器的输入特征。
stacking_classifier.fit(X_train, y_train)

# 预测测试数据的标签。
y_pred = stacking_classifier.predict(X_test)

# 计算了 StackingClassifier 在测试集上的准确率。
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

-------------本文结束感谢您的阅读-------------