如何告诉 CatBoost 哪个特征是分类的?

数据挖掘 分类数据 猫促进
2022-02-18 01:03:11

我很高兴得知 CatBoost 可以自己处理分类特征。我的功能之一,部门 ID,是分类的。但是,它看起来像数字,因为这些值类似于 1001、1002、...、1218。这些数字只是部门的 ID。它绝不具有数字或顺序的含义。如何告诉 CatBoost 将其视为分类(名义)而不是数字?

谢谢。

1个回答

当你训练你的 Catboost 分类器时,你可以像这样在 python 中传递 cat 特征列表:

CatboostClassifier 有一个名为 Cat_Features 的参数,它接受名称列表并将它们视为分类变量

from catboost import CatBoostClassifier


clf = CatBoostClassifier(
    iterations=5, 
    learning_rate=0.1, 
    #loss_function='CrossEntropy'
)

clf.fit(X_train, y_train, 
        cat_features=['Name of your categorical variables'], ## This 
        eval_set=(X_val, y_val), 
        verbose=False
)