2016-12-05 28 views
0

私はそれが私が知っている予測子を持つデータセットを使用してextreme gradient boosting algorithm(Xgboost)で実行しているテストデータを持っています。予測力、モデルの予測は関係なく、予測値の値の定数であるにもかかわらず:テストの$ pred_resが同じ値を持っていることをXgboostは、異なる説明変数に関係なく、同じ予測結果をもたらします。

library(data.table) 
require(xgboost) 
library(Matrix) 

sparse_matrix_train = sparse.model.matrix(clicked~.-1, data = train) 
sparse_matrix_train2 = sparse.model.matrix(clicked~., data = test) 
bst <- xgboost(data = sparse_matrix2, label = test2$clicked, max.depth = 2, 
       eta = 0.3, nthread = 20, nround = 5,objective = "binary:logistic") 
sparse_matrix_test = sparse.model.matrix(~., data = test) 
test$pred_res<- predict(bst, sparse_matrix_test) 

お知らせ:

test$pred_res 
[1] 0.2937567 0.2937567 0.2937567 0.2937567 0.2937567 0.2937567 0.2937567 0.2937567 0.2937567 
[10] 0.2937567 

誰かがelaborてくださいすることができこれを食べましたか?

データは

train <- structure(list(clicked = c(0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 
    1L), prediction = c(0.116741800132, 0.148609212057, 0.27496222789, 
    0.0284488735744, 0.234446058524, 0.405107420156, 0.122376142849, 
    0.126600568099, 0.0636921765101, 0.385909171908), pred_res = c(0.293756693601608, 
    0.293756693601608, 0.293756693601608, 0.343792468309402, 0.293756693601608, 
    0.293756693601608, 0.293756693601608, 0.293756693601608, 0.293756693601608, 
    0.293756693601608)), .Names = c("clicked", "prediction", "pred_res"), 
    row.names = c(NA, -10L), class = c("data.table", "data.frame"), 
    .internal.selfref = <pointer: 0x1547c18>) 

test <- structure(list(prediction = c(0.0553382017171, 0.158500277487, 
    0.155315011347, 0.118212821075, 0.0795492263212, 0.0272566752275, 
    0.159516005352, 0.218685440776, 0.0562459472969, 0.178293801444), 
    pred_res = c(0.293756693601608, 0.293756693601608, 0.293756693601608, 
    0.293756693601608, 0.293756693601608, 0.293756693601608, 0.293756693601608, 
    0.293756693601608, 0.293756693601608, 0.293756693601608)), 
    .Names = c("prediction","pred_res"), row.names = c(NA, -10L), 
    class = c("data.table","data.frame"), .internal.selfref = <pointer: 0x1547c18>) 

答えて

1

私はあなたのデータをロードし、コードを実行しましたが、得た:

"xgb.get.DMatrixでエラーが発生しました(データ、ラベル)オブジェクトのsparse_matrix2 'が見つかりません"

HTH、cousin_pete

+0

助けてくれてありがとう、私の編集を参照してください –

+0

あなたの編集を見ることができませんでした。 –

+0

申し訳ありませんが、あなたの編集を見ることができませんでした。エラーを再現しやすい方法で質問を書くことをお勧めしますか?あなたの「列車」と「テスト」セットなどは掘り起こすことができますが、なぜ他の人が手助けしやすくなるのでしょうか?したがって、最初のライブラリ(xgboost)、次に 'train'をdata.frameまたはmatrix形式のいずれかに設定し、次に使用したコードと同様に 'test'を設定します。理想的には、質問をRにコピー&ペーストして出力を見ることができるはずです。あなたの質問とデータでそれをやってください。今ここに立っているので、あなたは私が何を意味しているか見ることができます。 –

関連する問題