简单的Stacking算法代码
时间: 2024-04-07 11:30:15 浏览: 86
以下是一个简单的Stacking算法的代码示例:
```python
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.neighbors import KNeighborsClassifier
from sklearn.ensemble import StackingClassifier
# 加载数据集
X, y = load_iris(return_X_y=True)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义基础模型
estimators = [
('rf', RandomForestClassifier(n_estimators=10, random_state=42)),
('knn', KNeighborsClassifier(n_neighbors=5))
]
# 定义元模型
meta_model = LogisticRegression()
# 定义Stacking模型
stacking_model = StackingClassifier(estimators=estimators, final_estimator=meta_model)
# 拟合Stacking模型
stacking_model.fit(X_train, y_train)
# 预测测试集
y_pred = stacking_model.predict(X_test)
# 计算准确率
accuracy = (y_pred == y_test).mean()
print(f"Accuracy: {accuracy}")
```
这个例子中使用了鸢尾花数据集(load_iris)作为示例数据。首先,我们定义了两个基础模型,一个是随机森林分类器(RandomForestClassifier),另一个是K最近邻分类器(KNeighborsClassifier)。然后,我们定义了一个逻辑回归模型作为元模型(final_estimator)。最后,我们使用StackingClassifier来构建Stacking模型,并使用fit方法拟合模型,使用predict方法进行预测,计算准确率并打印出来。