目录
代码:
# 导入所需库
import numpy as np
import pandas as pd
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.ensemble import BaggingRegressor, GradientBoostingRegressor
from sklearn.metrics import mean_squared_error
from sklearn.tree import DecisionTreeRegressor
# 加载数据集
boston = load_boston()
X = boston.data
y = boston.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义基础回归模型(决策树)
base_model = DecisionTreeRegressor(random_state=42)
# Bagging模型
bagging_model = BaggingRegressor(base_model, n_estimators=50, random_state=42)
bagging_model.fit(X_train, y_train)
bagging_predictions = bagging_model.predict(X_test)
# Boosting模型
boosting_model = GradientBoostingRegressor(n_estimators=50, learning_rate=0.1, random_state=42)
boosting_model.fit(X_train, y_train)
boosting_predictions = boosting_model.predict(X_test)
# 评估模型效果
bagging_mse = mean_squared_error(y_test, bagging_predictions)
boosting_mse = mean_squared_error(y_test, boosting_predictions)
print("Bagging模型均方误差:", bagging_mse)
print("Boosting模型均方误差:", boosting_mse)
结果:
Bagging模型均方误差: 7.905111725490201 Boosting模型均方误差: 7.1674443176506815