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