使用先前训练的模型进行catboost中的进一步预测

时间:2017-08-24 16:02:10

标签: python-3.x machine-learning data-analysis catboost

我想找到使用Catboost进行分类的最佳参数。 我有训练数据和测试数据。我想运行算法进行500次迭代,然后对测试数据进行预测。接下来,我想重复600次迭代,然后700次迭代,依此类推。我不想再次从迭代0开始。那么,有什么方法可以用Catboost算法做到这一点吗?

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

您可以针对最大迭代次数运行算法,然后将CatBoost.predict()ntree_limit参数或CatBoost.staged_predict()一起使用以尝试不同的迭代次数。

答案 1 :(得分:0)

  1. 首先,我使用XGB在R中创建预测模型。现在我想 使用CatBoost建立回归模型以改善结果

    超导体数据集转换为训练数据集和测试数据集

  

dataset_catboost20 <-read.csv(“ train.csv”)

dataset_catboost20

rows<-nrow(dataset_catboost20)

f<-0.65

upper_bound_catboost20<- floor(f*rows)

permuted_dataset_catboost20<- dataset_catboost20[sample(rows),]

train_dataset_catboost20<-permuted_dataset_catboost20[1:upper_bound_catboost20,]

train_dataset_catboost20
  1. 有28个自变量和一个因变量。现在我 使用与我在XGB中使用的公式相同的公式。将公式转换为 XGB和Catboost中的** sparse.model.matrix 。在XGB公式中 工作正常,但在Catboost中显示错误。**

不支持的数据类型,需要data.frame,得到:dgCMatrix

公式

train_dataset_catboost2020

y_traincatboost20=train_dataset_catboost20$critical_temp

catboost_trcontrol20<-trainControl(method="cv", number = 5,allowParallel = TRUE,verboseIter = FALSE,returnData = FALSE)
catboostGrid20 <- expand.grid(depth= c(2,6,8), learning_rate=0.1, iterations=100,
                              l2_leaf_reg=.05, rsm=.95, border_count=65)
catboost_model20 = train(
  train_dataset_catboost2020,y_traincatboost20,method = catboost.caret,
  logging_level="Silent",preProc=NULL,

  tuneGrid = catboostGrid20,trControl=catboost_trcontrol20 )