在使用CatBoost时,我的数据集共有20000个特征 (都是分类变量),5000个样本量,在做训练时,用了RandomizedSearchCV,等了两天,速度简直让人无法忍受,我看了很多关于CatBoost的介绍,它的处理速度远远快于XgBoost,没办法,我用PCA对特征进行了降维,降到了2000维(降维后变量均变为了连续性变量),在进行训练时,速度仍然是灾难性的极慢无比,而LightGBM能在1小时内完成训练和预测。我不明白我哪里出了问题?以下是我CatBoost的参数列表:
param_dist = {
'n_estimators':range(80,200,4),
'max_depth':range(2,15,1),
'learning_rate':np.linspace(0.01,0.5,20),
'subsample':np.linspace(0.7,0.9,20),
'bagging_temperature':[0.5,1]
}
n_iter_search = 300
grid = RandomizedSearchCV(clf,param_distributions=param_dist,scoring = 'neg_log_loss',
n_iter=n_iter_search,cv =5,n_jobs = -1)
grid.fit(X, Y.ravel())
有哪位大侠知道怎么回事呢?
可能跟都是连续性特征有关,CatBoost会将特征离散化到固定数量的箱中以减少内存使用。