pandas Python中xgboost库的“enable_categorical=True”编码方法

i5desfxk  于 2023-11-15  发布在  Python
关注(0)|答案(1)|浏览(436)

让我们假设X_train包含数值和分类变量。

import xgboost as xgb

dtrain = xgb.DMatrix(data=X_train, label=y_train, enable_categorical=True)

params = {
    'objective': 'binary:logistic',  
    'max_depth': 10, 
    'learning_rate': 0.01,
    'eval_metric': 'logloss',  
    'subsample': 0.90, 
    'colsample_bytree': 0.90, 
    'min_child_weight': 10
}

model = xgb.train(params, dtrain, num_boost_round=1000)

字符串
我怎么知道使用的是哪种编码方法?是独热编码、目标编码还是标签编码?还是明智的选择?

tkqqtvp1

tkqqtvp11#

该功能是实验性的,目前功能有限。
这似乎是一个简单的标志,让xgboost函数,您的数据具有分类特征,因此该函数应该使用它。
基本思想是创建具有类别特征类型的框架,并通过设置enable_categorical参数告诉XGBoost使用它。
也可以看看源代码:

  • https://github.com/dmlc/xgboost/blob/093b6758380e4663d18729dd87d54a7845695a4b/python-package/xgboost/testing/init.py#L382
  • https://github.com/dmlc/xgboost/blob/093b6758380e4663d18729dd87d54a7845695a4b/python-package/xgboost/core.py#L802

来源:https://xgboost.readthedocs.io/en/stable/tutorials/categorical.html

相关问题