我想运行带有CatBoostClassifier作为估计器的sklearn.ensemble.BaggingClassifier,但是事情有一些分类功能,这会导致这种错误:
CatBoostError:“数据”是浮点数值类型的numpy数组,表示没有分类特征,但是“ cat_features”参数指定了非零数量的分类特征
clf = CatBoostClassifier(task_type='GPU',
n_estimators=8000,
early_stopping_rounds=5,
verbose=250,
cat_features=['avg_day_of_week', 'avg_month', 'mode_subgroup', 'mode_small_group']
)
from sklearn.ensemble import BaggingClassifier
bag_clf = BaggingClassifier(clf, n_estimators=10, max_samples=0.8)
bag_clf.fit(X_train.drop('client_id', axis=1), y_train)
是否可以克服此问题?
答案 0 :(得分:0)
来自catboost官方文档: why catboost cant handle NaNs from float type as categorical features:
一种简单的解决方法是将numpy矩阵转换为pd.dataframe:
bag_clf.fit(pd.DataFrame(X_train.drop('client_id', axis=1)), y_train)