R“池”支持向量机,用于对数据集进行子集化

时间:2013-12-14 07:30:02

标签: r svm

svm的事实:

positve数据集20个样本,5个因子 负数据集10000个样本,5个因子 包:e1071或内核 我的测试数据集将类似于15000个样本

为了控制这种不平衡,我试图在e1071中使用类权重,正如之前的问题中所建议的那样。但是我看不出任何差异也非常超重一个类。 现在我想在100个子负数据集中随机对我的负数据集进行子集化。喜欢这个

cost<-vector("numeric", length(1))
gamma <- vector("numeric", length(1))
    accuracy<- vector("numeric" , length(1)

功能定义

split_data<- function(x,repeats) {
    for (i in 1:repeats){
        random_data <- x[sample(1:nrow(x), 100),]
        dat<- rbind(data_pos, random_data)
        svm <- svm(Class~., data=dat, cross=10)
        cost[i] <- svm$cost
        gamma[i] <-svm$gamma
        accuracy[i]<- svm$tot.accuracy
        print(summary(svm))
}
  return(matrix(c(cost,gamma,accuracy), ncol=3))
}

但是我不知道现在该做什么......:D它似乎总是在我的pos数据集中定义相同的支持向量。但是应该有一个更聪明的策略,我已经阅读了一些策略但是有可能在任何包中实现它们吗?

编辑:

我想找到一种方法,我可以处理高度不平衡的数据集。我想这样做:将我的负数据集(重采样测试数据集)分成相等的部分到我的正数据集。然而,我会以某种方式想要获得完整的准确性和灵敏度。 我的问题特别是:我怎样才能以一种很好的方式管理这个?

非常感谢

0 个答案:

没有答案