我在R
中使用gbm
包並應用'bernoulli'選項進行分配以構建分類器,並且我得到了'nan'的不尋常結果,而且我無法預測任何分類結果。但是當我使用'adaboost'時,我不會遇到同樣的錯誤。下面是示例代碼,我用虹膜數據集複製了相同的錯誤。在R中使用gbm進行梯度提升使用分佈=「bernoulli」
## using the iris data for gbm
library(caret)
library(gbm)
data(iris)
Data <- iris[1:100,-5]
Label <- as.factor(c(rep(0,50), rep(1,50)))
# Split the data into training and testing
inTraining <- createDataPartition(Label, p=0.7, list=FALSE)
training <- Data[inTraining, ]
trainLab <- droplevels(Label[inTraining])
testing <- Data[-inTraining, ]
testLab <- droplevels(Label[-inTraining])
# Model
model_gbm <- gbm.fit(x=training, y= trainLab,
distribution = "bernoulli",
n.trees = 20, interaction.depth = 1,
n.minobsinnode = 10, shrinkage = 0.001,
bag.fraction = 0.5, keep.data = TRUE, verbose = TRUE)
## output on the console
Iter TrainDeviance ValidDeviance StepSize Improve
1 -nan -nan 0.0010 -nan
2 nan -nan 0.0010 nan
3 -nan -nan 0.0010 -nan
4 nan -nan 0.0010 nan
5 -nan -nan 0.0010 -nan
6 nan -nan 0.0010 nan
7 -nan -nan 0.0010 -nan
8 nan -nan 0.0010 nan
9 -nan -nan 0.0010 -nan
10 nan -nan 0.0010 nan
20 nan -nan 0.0010 nan
請讓我知道是否有一個工作來得到這個工作。我使用這個的原因是爲了試驗添加劑邏輯迴歸,請建議在R中是否有其他替代方案來解決這個問題。
謝謝。
如果train.fraction不<1,則ValidDeviance爲nan。 –