我正在尝试制作一个最终将在我的数据集上运行多种机器学习算法的函数。我在下面有我的函数的第一个小部分和一小部分数据样本。
我遇到的问题是将我的数据采样到四个不同的数据帧中,然后将它们应用于给定的函数。在第一个函数上,我正在测试数据运行抛出逻辑回归模型,但在输出上它使用该模型的所有数据,而不仅仅是我想要的数据帧 df 的 1/4。我检查了 <<- 以查看传递的数据类型,它发送的数据集是我正在寻找的数据帧 df 的 1/4。问题为什么将它以正确的方式传递给我的全局环境而不是我的回归函数,我将如何纠正这个问题?
数据:
zeroFac <- c(1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1)
goal <- c(8.412055, 7.528869, 8.699681, 10.478752, 9.210440, 10.308986, 10.126671, 11.002117, 10.308986, 7.090910, 10.819798, 7.824446, 8.612685,
7.601402, 10.126671, 7.313887, 5.993961, 7.313887, 8.517393, 12.611541)
City_Pop <- c( 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613,
11.64613, 11.64613, 11.64613, 11.64613, 11.64613, 11.64613)
df <- data.frame(zeroFac,goal,City_Pop)
功能:
forestModel <- function(eq1, ...){
#making our origenal data frame
train <- data.frame(cbind(...))
################
#splitting into 4 data sets
set.seed(123)
ss <- sample(1:4, size = nrow(train), replace=TRUE, prob = c(0.25,0.25,0.25,0.25))
t1 <- train[ss==1,]
t2 <- train[ss==2,]
t3 <- train[ss==3,]
t4 <- train[ss==4,]
################
m <- glm(eq1, family = binomial(link = 'logit'), data = t1)
summary(m)
}
eq1 <- df$zeroFac ~ df$goal + df$City_Pop
forestModel(eq1, df$zeroFac, df$goal, df$City_Pop)