1. 波士顿房价预测实战:CatBoost+SHAP全流程解析
作为一名数据科学从业者,我经常需要处理房价预测这类经典的回归问题。今天要分享的是如何用CatBoost结合SHAP值分析来破解波士顿房价预测难题。这个方案最大的亮点是:不仅能准确预测房价,还能像X光机一样透视每个特征对预测结果的影响程度。
先说说为什么选择CatBoost?这个由Yandex开源的算法在处理结构化数据时堪称"瑞士军刀":自动处理类别变量、内置缺失值处理、对抗过拟合的排序提升机制。相比XGBoost和LightGBM,它在中小型数据集上往往能给出更好的开箱即用表现。而SHAP值则是当前最火的特征解释工具,能统一各种特征重要性的衡量标准。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与数据加载
2.1 工具库选择
我们需要的核心工具库就三个:
python复制pip install catboost shap pandas matplotlib
- CatBoost:主角,负责建模
- SHAP:解释模型决策
- Pandas:数据操纵
- Matplotlib:可视化
提示:建议使用Python 3.8+环境,某些库的新特性在旧版本可能不支持
2.2 数据加载与探索
项目使用的是经典的波士顿房价数据集,包含506条记录和13个特征:
python复制import pandas as pd
from catboost import CatBoostRegressor, Pool
import shap
# 加载数据
data = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/BostonHousing.csv')
print(data.head())
关键特征说明:
- crim:城镇人均犯罪率
- rm:住宅平均房间数
- age:1940年之前建成的自住单位比例
- dis:到波士顿五个就业中心的加权距离
- ptratio:城镇师生比例
- medv:自住房屋中位数价格(目标变量)
3. 模型训练与调参
3.1 CatBoost初始化
python复制model = CatBoostRegressor(
iteratio
