【问题标题】:Problem ROC curves SVM simulated data问题 ROC 曲线 SVM 模拟数据
【发布时间】:2017-05-11 20:32:05
【问题描述】:

我正在处理模拟数据,但遇到了一些问题。我正在尝试修复参数。

library(e1071)  
library(ROCR)  
set.seed(10)  

#function to generate data  
generate.data <- function(n){  
 x2 <- runif(n)  
 x1 <- runif(n)  
 y <- as.factor(ifelse((x2>2*x1)|(x2>(2-2*x1)),-1,1))  
 return(data.frame(x1,x2,y))  
}  

#Training and test: n = 500  
dtrain <- generate.data(500)  
dtest <- generate.data(200)  

我对训练集进行了交叉验证,并使用了径​​向内核、参数cost=1000gamma=0.1

tune.out = tune(svm, y~x1+x2, data=dtrain, kernel="radial",
                ranges=list(cost=c(0.1,1,10,100,1000), gamma=c(0.01,0.1,1,10,100)))  
svmbestmod = svm(y~x1+x2, data=dtrain, kernel="radial", cost=1000, gamma=0.1,
                 probability=TRUE)  

我想在我的测试集上进行预测,但我有 0 个错误。我不明白。

yrad.test <- predict(svmbestmod, dtest)  

#confusion matrix  
mc.rad <- table(dtest$y, yrad.test)  
print(mc.rad)  

#Error 
err.rad <- 1-sum(diag(mc.rad))/sum(mc.rad)  
print(err.rad)

如果有人可以帮助我理解我的错误或问题所在,那就太好了。

【问题讨论】:

    标签: r cross-validation svm dataset simulation


    【解决方案1】:

    我在测试集中放了 20000 分

    # First I isolate any misclassified points in the test set
    library(dplyr)
    errors <- cbind(dtest,yrad.test) %>% dplyr::filter(y != yrad.test)
    
    # Then I plot all the points in the train set, 
    # coloured based on thier respective class,
    # while misclassified entries in the test set are shown in black
    
    library(ggplot2)
    p <- ggplot2::ggplot(data = dtrain, aes(x1,x2)) +
     geom_point(aes(colour = factor(y)) )+ 
     geom_point(data = errors,colour = "black")`
    

    在我看来,您的数据是完全可分离的,基本上您的数据好得令人难以置信,并且您的模型能够做出完美的预测,也许您可​​以在生成它的公式中添加一些噪音。

    此外,如果您的测试数据仅包含 200 个条目,很有可能它们中的任何一个都没有足够接近被错误分类的决策边界,正如我所提到的,我必须生成一个包含 20000 个点的测试集才能获得大约 200 个错误分类点你在图片中看到。

    【讨论】:

    • 抱歉来晚了。谢谢你的回答,我修改了条目数。我必须学习如何使用 gg2plot !哈哈祝你有美好的一天
    猜你喜欢
    • 2016-02-05
    • 2018-01-15
    • 2016-03-09
    • 2018-04-01
    • 2016-01-13
    • 2016-02-05
    • 2022-01-13
    • 1970-01-01
    • 2018-01-03
    相关资源
    最近更新 更多