にバグがあると言えgbm
ます。関数を調べてみるとgbm.fit
、多項式データを基になる "gbm" C 関数に送信する前に、一連の変換を行っています。これらの変換は、結果が返される前に「元に戻され」、gbm.more
関数で再度実行されることはありません。
このような変換の 1 つは、データの最初の値が変数の各因子水準のn
1 つに関連付けられていることを確認することです。最初に呼び出す前に、データが正しい形式であることを確認するための回避策があります。虹彩データを変換する方法は次のとおりです。n
y
gbm
first.row <- tapply(1:nrow(miris), iris$Species, head,1)
miris <- rbind(miris[first.row,], miris[-first.row,])
最初の 3 行には、データ内の異なる Species ごとに値が含まれていることがわかります
#head(miris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
51 7.0 3.2 4.7 1.4 versicolor
101 6.3 3.3 6.0 2.5 virginica
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
その後、データを次のように適合させることができます
iris.mod=gbm(Species ~ ., distribution="multinomial", data=miris,
n.trees=200, shrinkage=0.01, verbose=FALSE, n.cores=1)
そして実行します
iris.mod1=gbm.more(iris.mod,100,verbose=FALSE)
エラーなし。
パッケージメンテナーにバグレポートを提出することをお勧めします。この問題は、「多項」分布に固有のようです。この質問へのリンクを自由に含めてください。