我有一个包含15个变量和4669个观测值的数据框架。
我使用随机森林进行建模。我的数据集目标是预测客户是否会接受特定产品。
因此,我的输出变量有”Yes”、”No”和””这些因子。
我的问题是,是否可以在随机森林中将这个””预测为”Yes”或”No”?
样本数据如下所示
Outputvar <- c("Yes", "Yes", "No", "NO", "", "")Inputvar1 <- c("M", "F", "F", "M", "F", "M")Inputvar2 <- c("34","25","40","50","60","34")data <- data.frame(cbind(Outputvar,Inputvar2,Inputvar1))
我是R语言的新手,如果我的理解有误,请有人解释一下应该怎么做?
编辑:这是我目前尝试过的代码
library(RandomForest)data$outvar <- factor(data$outputvar, exclude = NULL)ind0 <- sample(2, nrow(data), replace = TRUE, prob = c(0.7,0.3))train0 <- data[ind0==1, ]test0 <- data[ind0==2, ]fit1 <- randomForest(outputvar1~., data=train0)print(fit1)plot(fit1)
编辑2:NO : 3536Yes: 1061″” : 72
回答:
我的数据集目标是预测客户是否会接受特定产品。
因此,我的输出变量有”Yes”、”No”和””这些因子。
嗯,不是。这里的实际情况是:
你的输出变量只有”Yes”和”No”两个因子;并且在你可用的数据集中有一部分没有结果值(””),你想预测它。
我的问题是,是否可以在随机森林中将这个””预测为”Yes”或”No”?
原则上,是的——这正是分类器(如随机森林)的用途。一般来说,你需要仅使用那些结果(Yes/No)确实可用的样本来训练你的模型(训练集,你可以从中取出一部分作为测试集,以评估模型性能);之后,你可以使用predict
在你数据集的其余部分预测结果。
当然,这只是一个对复杂过程的四行总结,涉及许多步骤和子步骤,无法在这里详细分析,但希望能给你一个(非常)高层次的观点(可以说,这是你所问的)。我对你另一个相关问题的回答也应该有用。