xgboost预测阈值

时间:2018-08-02 15:23:29

标签: r xgboost

我正在尝试对数据集“保险公司基准(COIL 2000)数据集”进行分类,该数据集可以在Dataset中找到。

我正在R中使用XGBoost(我是XGBoost算法的新手)进行分类,我想出的代码如下-

D <- read.csv("ticdata2000.csv", header=T)

# dim(D)    # O/P- 5823 86

# Make training and testing splits-
train_indices <- sample(1:nrow(D), floor(0.7 * nrow(D)), replace = F)

training <- D[train_indices, ]
testing <- D[-train_indices, ]


library(xgboost)

# Train/Fit model (classifier)-
model_classifier <- xgboost(data = as.matrix(training[-86]), label = training$C86, nrounds=100, eta = 0.1, gamma = 1)


# Make predictions using trained model-
preds <- predict(model_classifier, as.matrix(testing[-86]))


# Convert floating-point values to either 0 or 1 according to 'C86' column-
# for (i in 1:length(preds))
# {
#   preds[i] <- ifelse(preds[i] < 0.1, 0, 1)
# }


length(preds)       # O/P- 1747
length(unique(preds))   # O/P- 408

对于“ XGBoost”,结果为浮点型,需要将其转换为适合模型的阈值(用于分类)。如何确定适合我的模型的阈值? 最终预测必须为0或1。

“ preds”变量中的最小值和最大值如下-

min(preds)    # O/P- 0.03360531 max(preds)    # O/P- 0.3086071

当然,这些值一定会发生变化,因为我没有使用种子值。

感谢您的帮助!

谢谢

0 个答案:

没有答案