XGBoost异常高精度

时间:2017-01-18 08:50:19

标签: r classification weka xgboost

我最近开始使用XGBoost(通过R&#39的MLR包)将我的结果与SMO算法(通过Weka)进行比较。

该任务是一个二元分类任务,用于预测个体是否具有某种人格特质的高水平或低水平(例如:高外向或低外向)。

我使用的数据集包含300个实例和大约19000个功能。大量特征的原因是因为分类任务主要基于n-gram作为特征。

在选择并省略某些功能后,我在Weka的SMO上获得了79%的最高准确度。 但是,使用相同的功能集运行XGBoost算法可以获得98%的准确率。 两种算法都通过10次交叉验证进行评估。

我知道XGBoost已经证明在Kaggle的不同情况下胜过许多算法,但SMO和XGBoost之间的准确度差异是否正常?

这里是在R中运行XGBoost并进行10倍交叉评估的代码:

rm(list=ls(all=TRUE))

library(mlr)

train <- read.csv("AGREEABLENESS [10-DATASET].arff.csv", na.strings = c(""," ",NA))

train$class <- as.factor(train$class)

trainTask <- makeClassifTask(data=train, target="class")

set.seed(1001)

require(xgboost)
xg_set <- makeLearner("classif.xgboost", predict.type="prob")
xg_set$par.vals <- list(
objective="binary:logistic",
eval_metric="error",
nrounds=20
)

set_cv <- makeResampleDesc("CV", iters=10L)

r = resample(learner = xg_set, task = trainTask, resampling = set_cv, measures = list(acc, tpr, ppv), show.info=TRUE)

r$aggr

0 个答案:

没有答案