2016-12-04 28 views
0

私はdf3という列車データセットを持っています。これはデータテーブルです。次のように予測誤差Xgboost R

私はスパース行列に変換します

sparse_matrix9 = sparse.model.matrix(ind_cco_fin_ult1~canal_entrada + 
            nomprov + 
            sexo + 
            ind_empleado + 
            indext + age + fark + ind_actividad_cliente 
           ,data = df3) 

をそして私はxgboostでそれをモデル化:その後

bst10_X <- xgboost(data = sparse_matrix9, label = output, max_depth = 15, 
      eta = 0.03, nthread = 2, nrounds = 550,prediction=TRUE, eval_metric = "auc",objective = "binary:logistic") 

#train-auc:0.881950+0.000475 test-auc:0.819496+0.001057 

を私がテストデータセットを予測します。 まず、私は私の変数をchosedし、それらのデータフレーム作成:

test4<-as.data.frame(
     test3$canal_entrada, 
     test3$nomprov, 
     test3$sexo, 
     test3$ind_empleado, 
     test3$indext, 
     test3$age, 
     test3$fark, 
     test3$ind_actividad_cliente 
) 

そしてその後、私はスパース行列に変換したい:

sparse_matrix_test = xgb.DMatrix(data.matrix(test4)) 

とテストデータセット値を予測する:

res <- predict(bst10_X, newdata = sparse_matrix_test) 

しかし、それは私に1つのユニークな予測値を与えます:

unique(res) 
0.00113265 

なぜ私に値が1つしか与えられないのですか?どこが間違っていますか?訓練されたモデルを使用してテストデータセットを予測するにはどうすればよいですか?あなたがテストし、列車が、その後描かれ、それが役立つことになるため、小さなデータセットを提供する場合

答えて

0

..あなたに感謝します。問題はコード内にあるか、データ内にある可能性があります。いくつかの非疎データを使用してモデルを最初に開発するとどうなりますか。このモデルが正常に実行されれば、手がかりを得ることができます。