2017-01-19 10 views
-2

私はブースティングモデルを適用しようとしていますが、このエラーが発生し続けます。どんな助けでも大いに感謝されるでしょう。あなたが不思議に思うのであれば、これはkaggle、UCIクレジットカードデータからのデータセットです。eval(expr、envir、enclos)のエラー:オブジェクト 'PAY_0.1'が見つかりません(ブースト)

DataSplit<-createDataPartition(UCIdata$default.payment.next.month,p=.8,list=FALSE) 
boosttrain<-UCIdata[DataSplit,] 
boosttest<-UCIdata[-DataSplit,] 
gmbGrid2<-expand.grid(maxdepth=seq(1,10,1),iter=50,nu=seq(0.1,1,0.1)) 
boostingcontrol2<-trainControl(method="repeatedcv",classProbs = TRUE,summaryFunction = twoClassSummary) 
gmbFit2<-train(default.payment.next.month~.,data=boosttrain[,2:25],method="ada",trControl=boostingcontrol2,verbose=FALSE,tuneGrid=gmbGrid2) 

次にこれを確認します。

警告メッセージ: 1:train.default IN(X、Y、重み= ...、W): メトリック "精度" は、結果セット内ではありませんでした。代わりにROCが使用されます。 2:eval(expr、envir、enclos): 予測がFold01.Rep1で失敗しました:nu = 0.1、maxdepth = 1、iter = 50 eval(expr、envir、enclos)のエラー:オブジェクト 'PAY_0.1'見つかった

データセットには、PAY_0.1、PAY_2、PAY_3、...、PAY_6のみがありません。 PAY_0.1はどこから来たのでしょうか?

+0

ここで投票は何ですか?私はRにかなり新しい、私に休憩を与えるoiiiii oi – anoanoanoano

答えて

1

PAY_0は、データセット内のバイナリ/ファクタ変数です。 PAY_0.1は、PAY_0.0とPAY_0.1であるこの変数の展開から作成されたダミー変数です。おそらくPAY_0は1をほとんど有していないので、PAY_0.1は1をほとんど有さない。 CV(repeatedcv)と一緒に練習をするときに、折り目の1つが1をもたない可能性があり、したがってこのエラーが発生する可能性があります。おそらく、深さ1のツリーを構築しているときに、PAY_0.1変数に基づいてツリーに破損がありません。

問題を修正するために行ってください。

    は少し高いあなたの深さの範囲を開始し
  1. 。だからmaxdepth=seq(4,10,1)を使用すると、maxdepth=seq(1,10,1)の代わりにこの問題が発生する可能性があります。深さ1のツリーが浅すぎます。
  2. PAY_0の分布を確認してください。あまりにも少ない1の場合は、0の1またはダウンサンプリングのアップサンプリングを行うことができます。
関連する問題