2017-05-15 13 views
0

method = "glm"を使用して分類モデルを作成しようとしています。 私はmethod = "rpart"を使用する場合、それは正常に動作しますが、私はmethod = "glm"に切り替えたとき、それは私が"glm"と "rf"のチューニングパラメータ

cpGrid = data.frame(.0001) 
を使用してみましたチューニングパラメータグリッドが列パラメータ

を持っている必要があり

を言って私にエラーを与えます

でも

cpGrid = data.frame(expand.grid(.cp = seq(.0001, .09, .001))) 

しかし、どちらもエラーを投げます。以下は
私の最初のコード

numFolds = trainControl(method = "cv", number = 10, repeats = 3) 
cpGrid = expand.grid(.cp = seq(.0001, .09, .001)) 

が細かい

temp <-train(Churn. ~., data = train, method = 'rpart', trControl = numFolds, tuneGrid = cpGrid) 

がエラーに私のデータのうち

treeCV <-train(Churn. ~., data = train, method = 'glm', trControl = numFolds, tuneGrid = data.frame(cpGrid)) 
predictCV = predict(treeCV, newdata = test, type = "prob") 

dputを与える作品である:

train <- structure(list(State = structure(c(17L, 32L, 36L, 37L, 20L, 25L 
), .Label = c("AK", "AL", "AR", "AZ", "CA", "CO", "CT", "DC", 
"DE", "FL", "GA", "HI", "IA", "ID", "IL", "IN", "KS", "KY", "LA", 
"MA", "MD", "ME", "MI", "MN", "MO", "MS", "MT", "NC", "ND", "NE", 
"NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", "PA", "RI", "SC", 
"SD", "TN", "TX", "UT", "VA", "VT", "WA", "WI", "WV", "WY"), class = "factor"), 
    VMail.Message = c(25L, 0L, 0L, 0L, 24L, 0L), Day.Mins = c(265.1, 
    243.4, 299.4, 166.7, 218.2, 157), Day.Calls = c(110L, 114L, 
    71L, 113L, 88L, 79L), Eve.Charge = c(16.78, 10.3, 5.26, 12.61, 
    29.62, 8.76), Night.Mins = c(244.7, 162.6, 196.9, 186.9, 
    212.6, 211.8), Night.Calls = c(91L, 104L, 89L, 121L, 118L, 
    96L), Intl.Mins = c(10, 12.2, 6.6, 10.1, 7.5, 7.1), CustServ.Calls = c(1L, 
    0L, 2L, 3L, 3L, 0L), Churn. = structure(c(1L, 1L, 1L, 1L, 
    1L, 1L), .Label = c("False.", "True."), class = "factor"), 
    Area.Code = c(2, 2, 1, 2, 3, 2), Int.l.Plan = c(1, 1, 2, 
    2, 1, 2), VMail.Plan = c(2, 1, 1, 1, 2, 1), Day.Charge = c(565, 
    1005, 1571, 665, 1113, 580), Eve.Mins = c(690, 87, 1535, 
    256, 1517, 9), Eve.Calls = c(120, 12, 109, 25, 10, 115), 
    Night.Charge = c(101, 644, 797, 753, 866, 862), Intl.Calls = c(15, 
    17, 19, 15, 19, 15), Intl.Charge = c(78, 100, 44, 79, 53, 
    49)), .Names = c("State", "VMail.Message", "Day.Mins", "Day.Calls", 
"Eve.Charge", "Night.Mins", "Night.Calls", "Intl.Mins", "CustServ.Calls", 
"Churn.", "Area.Code", "Int.l.Plan", "VMail.Plan", "Day.Charge", 
"Eve.Mins", "Eve.Calls", "Night.Charge", "Intl.Calls", "Intl.Charge" 
), row.names = c(1L, 3L, 4L, 5L, 7L, 8L), class = "data.frame") 

method = "glm"で使用するにはヘルプが必要ですまた、ntreeをどのように含めるべきか知りたいと思っています。私はこことそこに提供されたソリューションのいくつかを検討しましたが、何も動作していないようです。

答えて

1

caretmodelLookupコマンドは、モデルのチューニングパラメータに関する情報を提供します。
rpartの場合、1つのチューニングパラメータのみが使用可能です。cp複雑度パラメータ。

modelLookup("rpart") 

################# 
    model parameter    label forReg forClass probModel 
1 rpart  cp Complexity Parameter TRUE  TRUE  TRUE 

glmのためのチューニングパラメータは、(私は「それが何のためにあるのかわかりません)parameterです:

したがって
modelLookup("glm") 

################# 
    model parameter  label forReg forClass probModel 
1 glm parameter parameter TRUE  TRUE  TRUE 

glmためtuneGrid.parameterという名前の列を必要とします:

glmGrid = expand.grid(.parameter = seq(1, 10, 1)) 
glmCV <- train(Churn. ~., data = train, method = 'glm', trControl = numFolds, 
     tuneGrid = data.frame(glmGrid)) 

predictCV = predict(glmCV, newdata = test, type = "prob") 
+0

'glm'のチューニングパラメータはありませんhttps://stackoverflow.com/questions/47822694/logistic-regression-tuning-parameter-grid-in-r-caret-package/48218280#48218280 – jmuhlenkamp