堆叠Ensemble代码
时间: 2024-06-22 08:03:40 浏览: 169
堆栈的代码
堆叠(Stacking)是一种集成学习方法,它将多个模型的预测结果组合起来,形成一个新的、性能更优的模型。在Python中,我们通常使用sklearn库来实现堆叠。以下是一个简单的堆叠Ensemble的代码示例:
```python
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据集
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)
# 定义基础模型
base_models = [
('rf', RandomForestClassifier(n_estimators=100, random_state=42)),
('lr', LogisticRegression(random_state=42))
]
# 创建堆叠模型
voting_clf = VotingClassifier(estimators=base_models, voting='hard') # 或者用'soft'进行加权平均
# 训练基础模型
for name, model in base_models:
model.fit(X_train, y_train)
# 预测并收集结果
predictions = [model.predict(X_test) for name, model in base_models]
# 训练堆叠模型(通常用这些预测作为特征)
stacked_features = np.array(predictions).T
stacked_clf = LogisticRegression() # 使用一个简单模型作为堆叠器
stacked_clf.fit(stacked_features, y_test)
# 测试堆叠模型
stacked_predictions = stacked_clf.predict(X_test)
阅读全文