← 返回题库
初级

Boston数据集Boosting回归

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
import pandas as pd
import numpy as np
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
data_url = "http://lib.stat.cmu.edu/datasets/boston"
raw_df = pd.read_csv(data_url, sep="\\s+", skiprows=22, header=None)
data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
target = raw_df.values[1::2, 2]
boston = pd.DataFrame(data, columns=['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX','PTRATIO','B','LSTAT'])
boston['MEDV'] = target
X = boston.drop('MEDV', axis=1)
y = boston['MEDV']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=1)
for lr in [0.001, 0.01, 0.1, 0.5]:
    gb = GradientBoostingRegressor(learning_rate=lr, n_estimators=100, random_state=1)
    gb.fit(X_train, y_train)
    mse = mean_squared_error(y_test, gb.predict(X_test))
    print(f'学习率={lr}的测试MSE: {mse:.2f}')

示例

输入
solve()
期望输出
学习率=0.001的测试MSE: 77.00
学习率=0.01的测试MSE: 27.49
学习率=0.1的测试MSE: 10.63
学习率=0.5的测试MSE: 11.13
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码