You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在使用非对称树的CatBoost模型中访问CTR值?

搞定CatBoost哈希与CTR值的对应问题

一、先搞懂CatBoost的哈希逻辑

CatBoost对类别特征的哈希不是只算特征名称,而是把特征名称+特征值拼起来计算的,用的是MurmurHash3算法。注意区分大小写,数值型的类别值会先转成字符串再参与哈希计算,和训练时的处理完全一致。

二、手动匹配哈希和CTR的步骤

  1. 从JSON里提取哈希-CTR映射
    打开导出的模型JSON文件,找到ctrValues字段(或类似存储CTR的节点),把里面的hashValue和对应的ctr值整理成字典,方便后续匹配。

  2. 用CatBoost工具计算特征哈希
    不用重新训练模型,直接调用CatBoost Python API里的calc_feature_hash函数就能计算目标特征的哈希:

    from catboost import calc_feature_hash
    
    # 示例:特征名为"user_type",特征值为"vip"
    target_hash = calc_feature_hash(
        feature_name="user_type",
        feature_value="vip",
        thread_count=1
    )
    

    要是特征值是数字(比如整数100),记得先转成字符串(比如str(100)),否则哈希值会对不上。

  3. 哈希匹配获取CTR值
    把计算得到的哈希值和JSON里的哈希做匹配,直接就能拿到对应的CTR值。哈希冲突概率极低,基本无需额外验证。

三、非对称树模型的注意点

你的模型是非对称树,JSON里的CTR存储结构可能和对称树略有不同,但哈希计算逻辑完全一致。重点查看treeStructure里的split节点,里面的ctrBorder对应的就是该分支用到的类别特征哈希,用上述方法计算特征值哈希即可对应上。

内容的提问来源于stack exchange,提问作者popstack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 00:05:07