news 2026/5/1 10:24: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/5/1 5:44:38

从被动响应到主动支撑:“四可”技术的演进路径与发展趋势

在光伏产业从“补充能源”向“主力能源”跨越的进程中,“可观、可测、可控、可调”的“四可”技术始终扮演着关键角色。其发展轨迹并非一蹴而就,而是伴随电网需求升级与光伏技术迭代,完成了从“被动适配并网要求”到“主动支撑能源系统”的深…

作者头像 李华
网站建设 2026/5/1 6:56:49

【Python办公自动化】自定义选择多列为一项合并单元格-其余不合并

目录 Python实战:打造高效Excel数据合并工具 (PyQt5 + Pandas) 1. 项目背景与需求 2. 核心功能 3. 技术栈 4. 实现细节 4.1 数据读取与预处理 4.2 智能日期格式化 4.3 分组与合并逻辑 4.4 JSON 输出 完整代码 5. 界面预览 6. 总结 专栏导读 🌸 欢迎来到Python办公自动化专栏…

作者头像 李华
网站建设 2026/5/1 5:46:08

Langchain-Chatchat打通CRM系统提升客户服务效率

Langchain-Chatchat打通CRM系统提升客户服务效率 在企业服务一线,客服人员常常面临这样的窘境:客户打来电话询问“上次维修的配件是否在保修范围内”,他不得不在CRM系统、邮件记录、产品手册和工单平台之间来回切换,耗时七八分钟才…

作者头像 李华
网站建设 2026/5/1 5:48:52

华为云国际站代理商DSS主要有什么作用呢?

华为云国际站 DSS(专属分布式存储服务)为用户提供独享物理存储资源池,以低时延、高 IO / 超高 IO、物理隔离与三副本冗余为核心能力,可灵活对接 ECS/BMS/DCC 等计算服务,适配 HPC、OLAP 与混合负载等企业级场景&#x…

作者头像 李华
网站建设 2026/5/1 6:56:08

Langchain-Chatchat处理长文本的挑战与应对策略

Langchain-Chatchat处理长文本的挑战与应对策略 在企业知识管理日益智能化的今天,一个常见的场景是:HR需要快速回答“试用期员工是否可以请婚假”,法务人员要查找合同模板中的某项条款,研发工程师则想从上百页的技术文档中定位某个…

作者头像 李华