Как использовать распределение «adaboost» в «gbm», чтобы иметь содержательный прогноз? - PullRequest
0 голосов
/ 19 января 2019

Итак, вот что происходит - у меня есть набор данных Титаник со следующими 9 столбцами:

(i) Выжил (0/1) [2 уровня],

(ii) Pclass (1/2/3) [3 уровня],

(iii) Пол (М / Ж) [2 уровня],

(iv) Возраст (непрерывная переменная),

(v) Тариф (непрерывная переменная),

(vi) Embarked (C / Q / S) [3 уровня],

(vii) SibSp (непрерывная переменная),

(viii) Parch (непрерывная переменная) и

(ix) Титулы (Mr / MsMrs / Master / X) [4 уровня].

Я пытаюсь предсказать Survived из восьми других, используя пакет gbm в R, и я использую следующее:

fit.gbm = gbm(Survived ~ Age + Fare + SibSp + Parch + Pclass + Titles + Sex + Embarked , data=train , distribution = "adaboost", n.trees=500 , interaction.depth=3 , shrinkage=0.005)

Тогда я использую

predd.gbm = predict(fit.gbm , newdata=train , type="response" , n.trees=500)    

И я не понимаю, что я получаю, потому что все в predd.gbm выглядит как 0.99983, 0.999974 и т. Д. Как понять, что я получаю, и как я могу предсказать 0/1 из этого странного предопределения. gbm- «вероятность», где каждый элемент близок к 1?

1 Ответ

0 голосов
/ 21 января 2019

А-а-а-а, поэтому способ сделать это - изменить (i) с коэффициента на цифру, используя:

train$Survived = as.numeric(train$Survived)

randomForest понимает, что Survived является фактором, а gbm нет!

...