R中的ID分类
为了性能起见,我一直在尝试使用R中的ID分类,r,algorithm,classification,random-forest,prediction,R,Algorithm,Classification,Random Forest,Prediction,为了性能起见,我一直在尝试使用randomfrestsrc包在R中进行一些分类 在这种特殊情况下,我有以下示例data.frame,其中Y是分类因子c(“X”、“Y”、“Z”),ID表示项目在同一个包中分组在一起,并且我有其他变量,这些变量将告诉我结果是X、Y还是Z: y ID x1 x2 x3 ... X 01 AA BB CC ... X 01 AA BB DD ... X 01 AA
randomfrestsrc
包在R中进行一些分类
在这种特殊情况下,我有以下示例data.frame,其中Y是分类因子c(“X”、“Y”、“Z”),ID表示项目在同一个包中分组在一起,并且我有其他变量,这些变量将告诉我结果是X、Y还是Z:
y ID x1 x2 x3 ...
X 01 AA BB CC ...
X 01 AA BB DD ...
X 01 AA FF EE ...
Y 02 AA BB CC ...
Y 02 AA BB EE ...
Z 03 AA FF CC ...
Z 03 AA FF EE ...
... ... ... ... ... ...
在训练算法后,它成功地给出了以下结果,每个项目的准确率高达%,但没有按包ID对项目进行分组:
y ID x1 x2 x3 ...
Y 01 AA BB CC ...
X 01 AA BB DD ...
Z 01 AA FF EE ...
Y 02 AA BB CC ...
Y 02 AA BB EE ...
Z 03 AA FF CC ...
Z 03 AA FF EE ...
... ... ... ... ... ...
包装分类规则应如下所示:
rf <- rfsrc(y ~ ., data = model, method = "class")
rf <- rfsrc(y ~ ID %in% (x1+x2+x3+...), data = model, method = "class")
rf <- rfsrc(y ~ (x1+x2+x3+...) / ID, data = model, method = "class")
rf经过大量研究,我想我找到了我需要的东西
我已经使用重塑
包对data.frame进行建模,并将一些变量转换为行。如果其他人需要它,以下是我遵循的材料:
在研究了这些资料和谷歌搜索之后,我想出了以下代码:
library(reshape)
aux <- melt(myData, id=c('y','ID','x1'))
myData <- as.data.frame(cast(aux, ... ~ variable+value, function(x) { length(x) != 0}))
y ID x1 x2_BB x2_FF x3_CC x3_DD x3_EE ...
X 01 AA TRUE TRUE TRUE TRUE TRUE ...
Y 02 AA TRUE FALSE TRUE FALSE TRUE ...
Z 03 AA FALSE TRUE TRUE FALSE TRUE ...
... ... ... ... ... ... ... ... ...