news 2026/7/7 2:05:48

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

作者头像

张小明

前端开发工程师

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/7/7 17:26:16

Langchain-Chatchat用于研发文档管理的实践案例

Langchain-Chatchat用于研发文档管理的实践案例 在芯片设计公司的一次内部复盘会上,一位资深工程师无奈地提到:“我们团队最近三次流片失败,两次都源于用错了旧版DDR配置参数。”这并非孤例。随着研发体系日益复杂,技术文档数量呈…

作者头像 李华
网站建设 2026/7/7 8:39:38

pytorch深度学习笔记

目录 摘要 1.神经网络的梯度计算 2.梯度下降法(Gradient Descent) 摘要 本篇文章继续学习尚硅谷深度学习教程,学习内容是神经网络的梯度计算,代码实现用梯度下降法 1.神经网络的梯度计算 在神经网络的学习中,梯度的…

作者头像 李华
网站建设 2026/7/7 16:33:45

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

华为云国际站代理商的 UCS(分布式云原生服务),核心作用是为跨境 / 多云业务提供跨云跨地域 K8s 集群统一管理、智能调度与流量治理,叠加代理商的本地化服务,高效解决多集群运维、合规与成本难题。以下是具体功能与代理…

作者头像 李华
网站建设 2026/7/7 14:31:13

华为云国际站代理商DSS的跨区域备份与恢复具体是如何实现的?

华为云国际站 DSS 跨区域备份与恢复,核心通过CBR/CSBS 备份 跨区域复制策略 SDRS 容灾实现,代理商负责方案设计、权限配置、网络打通与全流程实施,保障 RPO≈分钟级、RTO≈小时级,满足跨境合规与业务连续性要求。核心实现架构&a…

作者头像 李华
网站建设 2026/7/7 10:27:33

2025年软件测试从业者经验总结:趋势、挑战与最佳实践

一、2025年软件测试行业最新发展趋势 2025年,软件测试行业正经历着前所未有的变革,AI技术的深度应用正在重塑整个质量保障体系。根据行业最新动态,我们可以总结出以下关键趋势: AI测试平台与"无人测试"的崛起‌&#…

作者头像 李华
网站建设 2026/7/7 1:24:46

Langchain-Chatchat支持语音输入输出吗?扩展方案介绍

Langchain-Chatchat支持语音输入输出吗?扩展方案介绍 在企业知识管理日益智能化的今天,越来越多组织开始部署本地化的大模型问答系统,以应对数据隐私与合规性挑战。其中,Langchain-Chatchat 凭借其出色的私有文档解析能力和完全离…

作者头像 李华