news 2026/4/23 13:26:07

先扔个完整代码镇楼(波士顿房价预测实战)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
先扔个完整代码镇楼(波士顿房价预测实战)

CatBoost-shap集成模型中的一种,本项目用在了回归问题上,并对模型和变量采用shap进行解释分析 Python代码,自带数据集,可以直接运行,代码实价,联系 所有图所见即所得,只会更多

from catboost import CatBoostRegressor, Pool import shap import pandas as pd import matplotlib.pyplot as plt # 加载数据 data = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/BostonHousing.csv') X = data.iloc[:,:-1] y = data.iloc[:,-1] # 训练CatBoost model = CatBoostRegressor(iterations=300, depth=5, learning_rate=0.1, verbose=0) cat_features = list(X.select_dtypes(include='object').columns) model.fit(X, y, cat_features=cat_features) # SHAP魔法开始 explainer = shap.TreeExplainer(model) shap_values = explainer.shap_values(Pool(X, cat_features=cat_features)) # 特征重要性全景图 plt.figure(figsize=(10,6)) shap.summary_plot(shap_values, X, plot_type="bar") plt.title('特征影响力排行榜') plt.tight_layout() # 单样本决策推演 sample_idx = 42 shap.force_plot(explainer.expected_value, shap_values[sample_idx], X.iloc[sample_idx], matplotlib=True, text_rotation=15)

跑完这段代码你会看到两张图——第一张是特征重要性排序,像游戏战力榜一样展示各个特征对房价的影响力;第二张是单样本预测的"决策推演",像拆解俄罗斯套娃一样展示每个特征如何影响最终预测值。

这里有个骚操作:cat_features参数自动处理类别型变量,连one-hot都不用做。比如数据里如果有房屋类型(别墅/公寓)这种字符串特征,CatBoost自己就能消化,比XGBoost省事得多。

SHAP值分析时注意这个细节:

Pool(X, cat_features=cat_features) # 必须用Pool对象传递类别特征信息

如果直接传DataFrame,模型会忘记哪些是类别特征,导致SHAP解释出现偏差。这个坑我帮你们踩过了,记得用Pool封装数据。

看特征重要性图时,重点关注颜色深浅——红色表示特征值大,蓝色表示特征值小。比如'rm'(房间数)特征,当柱子偏红时说明房间多的房子预测价更高,符合常识。

当看到单样本force_plot时,找那个把预测值往右推的最强特征。比如某个样本的'ptratio'(师生比)特别低(教育资源好),SHAP值就会用红色长箭头把预测价顶上去,比看枯燥的特征权重直观多了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 17:58:29

基于SpringBoot的宠物社交与健康管理平台的设计与实现

课题背景近年来,随着社会经济的发展和人们生活水平的提高,宠物已成为许多家庭的重要成员,宠物行业也随之迎来快速增长。根据市场调研数据,全球宠物市场规模持续扩大,预计未来几年仍将保持较高增速。在中国,…

作者头像 李华
网站建设 2026/4/22 17:36:18

Langchain-Chatchat构建行业术语词典提升专业度

Langchain-Chatchat构建行业术语词典提升专业度 在医疗、法律、金融等高专业门槛的行业中,一个AI助手若把“心肌梗死”理解成“心情不好”,或将“无因管理”解释为“没人管的事情”,显然无法被接受。尽管当前大型语言模型(LLM&am…

作者头像 李华
网站建设 2026/4/23 13:45:19

如何配置华为云国际站代理商OBS的跨区域复制?

配置华为云国际站代理商 OBS 跨区域复制(CRR),核心是完成 “前置准备 IAM 委托 规则配置 验证监控” 四步,代理商可全程协助账号 / 配额 / 合规与成本优化,确保跨境数据异步复制稳定、安全且成本可控。以下是可直接…

作者头像 李华
网站建设 2026/4/23 12:24:16

Langchain-Chatchat上下文窗口优化技巧

Langchain-Chatchat 上下文窗口优化实践:如何在有限 token 中榨出最大知识价值 在企业级智能问答系统中,一个看似不起眼的数字常常成为决定成败的关键——上下文长度。8192?32768?这些冷冰冰的 token 数字背后,是模型…

作者头像 李华