基于AdaBoostRegressor训练回归决策树预测房屋价格模型

博客针对单一决策树预测效果不佳的问题,提出对不同特征值赋予不同权重,通过正向激励生成新决策树,依据预测值与实际值偏差调整权重来提高预测期望。还提及用到sklearn.tree和sklearn.ensemble两个模块构建树并迭代调参。
该文章已生成可运行项目,

上次碰到单一决策树预测效果不好的情况,实际预测中,对于不同的特征值,应该要赋予不同的权重,正向激励能够生成指定数量的新决策树,每个数都在上一个数预测的结果上,根据预测值跟实际值的偏差,进行权重调整,达到提高预测期望的结果

import sklearn.model_selection as ms
import sklearn.datasets as sd
import sklearn.tree as st
import sklearn.metrics as sm
import sklearn.ensemble as se

boston = sd.load_boston()

train_x, test_x, train_y, test_y = ms.train_test_split(boston.data, boston.target,  test_size=0.1, random_state=7)  

model = st.DecisionTreeRegressor(max_depth=6)
model = se.AdaBoostRegressor(model,n_estimators=700,random_state=7)

model.fit(train_x,train_y)
pred_test_y = model.predict(test_x)
pred_train_y = model.predict(train_x)

print('训练集:',sm.r2_score(train_y,pred_train_y))
print('测试集:',sm.r2_score(test_y,pred_test_y))

结果

用到两个模块

import sklearn.tree as st

构建一个树
import sklearn.ensemble as se

构建多个树,不停迭代调参

训练集: 0.9819587536039245
测试集: 0.9209163745104365

本文章已经生成可运行项目
要使用Python和sklearn库,利用Adaboost算法结合决策树进行房价预测,可以按照以下步骤操作: 1. **导入必要的库**:需要导入`AdaBoostRegressor`用于实现Adaboost算法,`DecisionTreeRegressor`作为基学习器,以及其他必要的库如`numpy`、`pandas`等。 2. **准备数据**:加载并处理房价数据集,将其划分为训练集和测试集。 3. **创建模型**:创建`AdaBoostRegressor`模型,并传入`DecisionTreeRegressor`作为基学习器。 4. **训练模型**:使用训练集对模型进行训练。 5. **进行预测**:使用训练好的模型对测试集进行预测。 6. **评估模型**:使用合适的评估指标(如均方误差)评估模型的性能。 以下是示例代码: ```python from sklearn.ensemble import AdaBoostRegressor from sklearn.tree import DecisionTreeRegressor from sklearn.datasets import load_boston # 以波士顿房价数据集为例 from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # 加载数据集 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_estimator = DecisionTreeRegressor(max_depth=4) # 创建AdaBoost回归器 ada_reg = AdaBoostRegressor( base_estimator=base_estimator, n_estimators=200, # 模型运行的轮次 learning_rate=0.5, # 学习率 random_state=42 ) # 训练模型 ada_reg.fit(X_train, y_train) # 进行预测 y_pred = ada_reg.predict(X_test) # 评估模型 mse = mean_squared_error(y_test, y_pred) print(f"均方误差: {mse}") ``` 在上述代码中,首先加载了波士顿房价数据集,并将其划分为训练集和测试集。然后创建了一个决策树回归器作为基学习器,接着创建了`AdaBoostRegressor`模型,并传入基学习器。使用训练集对模型进行训练,再对测试集进行预测,最后计算并输出均方误差来评估模型的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值