我认为一个独立的变量是如此重要和主要,我只想用它来构建模型并使用其他变量来构建其他模型。
比如在kaggle.com上的泰坦尼克号比赛中,
我尊重sex
作为主要变量,并用它来构建SVM模型。
然后我使用了其他变量,例如fare
,alone
,age
来构建cforest模型。
但要预测survival
,我需要他们两个。
那我该怎么办呢?
lm()
函数似乎不适用于S4 class
。
我的代码在这里:
## Modeling Begin
predictions <- NULL
NT <- 1000
## formula3 for 'gender' model using SVM
formula3 <- as.factor(survived) ~ pclass + sex
## formula1 and formula2 both for rest features without gender model
formula1.cf <- as.formula(as.factor(survived) ~ pclass + alone + fare + age)
formula2.cf <- as.formula( survived ~ pclass + alone + fare + age)
## Train SVM(only for gender model) and Predict
library(e1071)
formula3 <- as.factor(survived) ~ pclass + sex
tune <- tune.svm(formula3, data=clean.train, gamma=10^(-4:-1), cost=10^(1:4))
# summary(tune)
tune$best.parameters
model.svm <- svm(formula3,
data=clean.train,
type="C-classification",
kernel="radial",
probability=T,
gamma=tune$best.parameters$gamma,
cost=tune$best.parameters$cost)
## Train cForest
model.cforest <- cforest(formula2.cf, data=clean.train,
control=cforest_unbiased(ntree=NT, trace=F))
谢谢你!
答案 0 :(得分:0)
我认为现在有一个组合(...)函数添加到R的randomForest
包中,该包专门用于组合多个随机树模型。还有一些像下面的代码一样简单的东西可以组合线性和randomForest
模型。它就像加权每个模型的影响一样简单。
fit.lr = glm(y~x1+x2+x3+x4, family = binomial, data = d)
fit.rf = randomForest(as.factor(y)~x1+x2+x3+x4, data = d, ntree = 100, proximity = FALSE)
g.lr.sig = function(x, y) predict(fit.lr, data.frame(x1 = x, x2 = y, x3 = 0, x4 = 0), type = "response") <br>
g.rf.sig = function(x, y) predict(fit.rf, data.frame(x1 = x, x2 = y, x3 = 0, x4 = 0), type = "prob")[, 2] <br>
g.en.sig = function(x, y) 0.5*g.lr.sig(x, y) + 0.5*g.rf.sig(x, y)<br>
我希望有所帮助。