Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
r中的一对一方法多类_R - Fatal编程技术网

r中的一对一方法多类

r中的一对一方法多类,r,R,假设我的数据集是具有3个类的iris,我想实现一对一SVM方法,但当我通过类I和类j对每个分类器的训练集进行子集划分时,我得到一个空子集(按照这行#选择训练集的子集,其中物种等于类I和类j) 物种这应该是有效的: library(dplyr) set.seed(123) s<- sample (150,100) data_train<- iris[s,] data_test<- iris[-s,] train <-data_train test <-data_tes

假设我的数据集是具有3个类的iris,我想实现一对一SVM方法,但当我通过
类I
类j
对每个分类器的训练集进行子集划分时,我得到一个空子集(按照这行
#选择训练集的子集,其中物种等于类I和类j


物种这应该是有效的:

library(dplyr)
set.seed(123)
s<- sample (150,100)
data_train<- iris[s,]
data_test<- iris[-s,]
train <-data_train
test <-data_test
#train$Species <- as.factor(as.character(train$Species))
class <- unique(iris$Species)


for(i in 2:length(unique(iris$Species))-1){

  for(j in (i+1):length(unique(iris$Species))){
    print(paste(class[i],class[j],sep=","))

    class_i <- factor(as.factor(class[i]))
    class_j <- factor(as.factor(class[j]))


    train2 <- rbind(train[match(as.character(train$Species), class_i, nomatch = FALSE), ], 
                    train[match(as.character(train$Species), class_j, nomatch = FALSE), ])

    train2
    str(train2)


  }}
库(dplyr)
种子集(123)

扫描您是否与
dput()
共享您的数据帧?共享太长,我不允许在此共享长代码。然后您可以共享一个假数据集吗?没有它,就很难重现您的问题。'data.frame':213 obs。72个变量中:$Diagnosis:int 2 3 3 2 3 1…$提示:int 2 2 2 2 2 2 2 2 2 2 2…$冠状动脉事件:因子w/6水平“CABG”,“死亡”,“死亡”…:3 3 3 3 3 3 3 3…很明显是这样吗?不幸的是,我得到了不正确的结果,因为>表(数据训练$物种)弗吉尼亚州花斑羚36 31 33结果[1]“setosa,versicolor”'data.frame':5个变量中的100个变量:…[1]“setosa,VIGINICA”'data.frame':5个变量中的100个变量:[1]“versicolor,VIGINICA”'data.frame':5个变量中的0个变量:在本例中,它应该是“setosa,versicolor”67个观察值的df“setosa,VIGINICA”69个观察值的df和“versicolor,VIGINICA”“df为64observations@RawiaHemdan更新了我的答案,现在它返回了预期的结果
library(dplyr)
set.seed(123)
s<- sample (150,100)
data_train<- iris[s,]
data_test<- iris[-s,]
train <-data_train
test <-data_test
#train$Species <- as.factor(as.character(train$Species))
class <- unique(iris$Species)


for(i in 2:length(unique(iris$Species))-1){

  for(j in (i+1):length(unique(iris$Species))){
    print(paste(class[i],class[j],sep=","))

    class_i <- factor(as.factor(class[i]))
    class_j <- factor(as.factor(class[j]))


    train2 <- rbind(train[match(as.character(train$Species), class_i, nomatch = FALSE), ], 
                    train[match(as.character(train$Species), class_j, nomatch = FALSE), ])

    train2
    str(train2)


  }}