如何使用Scikit-Learn对新增住房数据进行波士顿房价预测?
解决方案
你已经在原始波士顿住房数据集上完成了模型训练,无需将新增数据合并到原数据集即可直接完成预测,两种常用实现方式如下:
方式1:直接对新增数据预测(推荐,无需合并原数据集)
sklearn训练好的模型可直接对符合特征顺序的新数据做推理,代码如下:
# 将自定义的新房屋字典转为符合特征顺序的DataFrame new_house = pd.DataFrame([boston_df2], columns=boston.feature_names) # 调用已训练完成的模型完成预测 predicted_price = model.predict(new_house) print(f"新增房屋的预测价格为:{predicted_price[0]:.2f}千美元")
方式2:从你已生成的合并数据集中提取新数据预测
如果你需要基于已经生成的boston_df_append做预测,直接提取最后一行的特征列输入模型即可:
# 提取合并后最后一行的特征(排除空值的target列) new_house_data = boston_df_append.iloc[[-1]].drop("target", axis=1) predicted_price = model.predict(new_house_data) print(f"新增房屋的预测价格为:{predicted_price[0]:.2f}千美元")
补充注意事项
你当前使用的append方法在pandas 2.0及以上版本已被废弃,后续合并数据集建议使用pd.concat,写法参考:
boston_df_append = pd.concat([boston_df1, pd.DataFrame([boston_df2])], ignore_index=True)
内容的提问来源于stack exchange,提问作者Able Archer
相关产品推荐
相关产品推荐

