我有一个大数据框,我想用ANFIS模型(更具体地说是caret
包)预测一个变量(列)。目标是执行10-k交叉验证。到现在为止,我有以下内容:
# my example dataframe from frbs package
m=diamonds[1:100,-(2:4)]
m$k=m$carat*-0.1
m$l=m$x *-0.1
m$n=m$depth*2.3
# train - test
d.train <- m[1 : 72, ]
d.test <- m[73 : 100, 1 : 9]
# the range of my data
m.range=apply(m,2,range)
# method,type,control
meth.type <- "ANFIS"
cont = list(num.labels = 10, max.iter = 100, step.size = 0.01, type.tnorm = "MIN", type.snorm = "MAX", type.implication.func = "ZADEH", name = "dmn")
# the model
an_md <- frbs.learn(d.train, m.range, meth.type, cont)
# predict
r.tst <- predict(an_md, d.test)
很抱歉,如果我的问题很简单,或者我的复制方式不是很好,但这是我的问题:
一个。使用上面的代码,我得到一个具有一个值(152.4900)的列作为预测。有什么问题(可能是负值的列)?
湾如何在插入符号中添加max.iter
参数来执行k-fold? (例如下面的插入符号):
con = trainControl(method="cv", number=10)
for_train = createDataPartition(m$n, p=.70, list=FALSE)
train=m[for_train,]
test=m[-for_train,]
model = train(n ~., data = train, method = "ANFIS", trControl = con)
欢迎任何解决此问题或提出更好问题的建议。