news 2026/9/23 22:51:54

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

作者头像

张小明

前端开发工程师

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/9/23 1:25:24

Langchain-Chatchat Kubernetes集群部署策略

Langchain-Chatchat Kubernetes集群部署策略 在企业对数据隐私和AI合规性要求日益严格的今天,如何构建一个既安全又高效的本地知识库问答系统,成为许多组织面临的核心挑战。公有云上的通用大模型虽然功能强大,但难以满足敏感信息不出内网的需…

作者头像 李华
网站建设 2026/9/22 20:18:04

Langchain-Chatchat日志监控与性能分析最佳实践

Langchain-Chatchat日志监控与性能分析最佳实践 在企业级 AI 应用日益普及的今天,将大型语言模型(LLM)部署于本地环境已成主流趋势。数据安全、低延迟响应和系统可控性成为决策的关键因素。开源项目 Langchain-Chatchat 凭借其对私有知识库的…

作者头像 李华
网站建设 2026/9/22 13:35:08

Langchain-Chatchat模型微调指南:适配垂直领域任务

Langchain-Chatchat模型微调指南:适配垂直领域任务 在企业智能化转型的浪潮中,一个现实而棘手的问题日益凸显:员工每天花大量时间翻找内部文档——HR制度藏在共享盘深处,IT操作手册分散在多个PDF里,财务流程更新了却没…

作者头像 李华
网站建设 2026/9/23 17:04:51

如何配置IPv6静态路由?解决企业网络难题

说到网络配置,尤其是涉及到IPv6的时候,很多人可能会感到头疼。毕竟,这不仅仅是技术问题,更是关乎到整个企业的数据传输效率和安全性。在这样的背景下,如何正确地配置IPv6静态路由成为了一个值得探讨的话题。先来聊聊为…

作者头像 李华
网站建设 2026/9/23 12:26:54

【Linux网络基础】详解 TCP 面向连接 vs UDP 无连接

详解 TCP 面向连接 vs UDP 无连接 本文详细解析计算机网络传输层两个最重要的协议:TCP (Transmission Control Protocol) 和 UDP (User Datagram Protocol),重点阐述“面向连接”与“无连接”的核心区别、工作原理及应用场景。1. 核心概念:什…

作者头像 李华