Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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中的插入符号绘制多标签SVM问题的决策边界_R_Machine Learning_Plot_Svm_R Caret - Fatal编程技术网

如何使用R中的插入符号绘制多标签SVM问题的决策边界

如何使用R中的插入符号绘制多标签SVM问题的决策边界,r,machine-learning,plot,svm,r-caret,R,Machine Learning,Plot,Svm,R Caret,我使用R的插入符号包构建了一个SVM模型: set.seed(1234567) SVM_caret <- train(x = x_train, y = y_train$label, method = "svmLinear", tuneGrid = expand.grid( C = c(0.001, 0.01, 0.1, 1)), metric = "ROC", trCon

我使用R的插入符号包构建了一个SVM模型:

set.seed(1234567)


SVM_caret <- train(x = x_train, y = y_train$label, 
               method = "svmLinear", tuneGrid = expand.grid(
              C = c(0.001, 0.01, 0.1, 1)),
              metric = "ROC",
              trControl = trainControl(method = "cv", number = 3, classProbs = T),
              maxit = 100)
有4个类需要预测,我不知道是否真的有可能建立这个绘图,但我不知道如何完成它。是否有任何功能或方法可以可视化此决策边界

因为我不能在这里复制粘贴我的数据,我会在google drive上添加一个链接,这样你就可以下载并重现这个问题,不用担心大小,因为它确实很轻

以下是链接:


非常感谢您的帮助。

如评论中所述:

只有当有两个预测器时,才能在二维图中可视化决策边界。但是,您使用的是10个预测器,这意味着每个点都存在于10维空间中,无法按您想要的方式绘制

选择要绘制的预测因子子集将使您能够绘制决策边界,但它们不会以任何有意义的方式分割图中的数据

如果您确实想要可视化一组决策规则,您可以创建一个决策树


dtree <- train(x = svm_data[,-1], y = svm_labels$label, 
                   method = "rpart",
                   metric = "Accuracy",
                   trControl = trainControl(method = "cv", number = 3, classProbs = T),
                   cp = 0.005,
                   maxdepth = 3)



plot(dtree$finalModel, margin = 0.2)
text(dtree$finalModel)



dtree此函数仅允许两个预测值,这是标准绘图中可以表示的最大尺寸数。如果有更多的预测因子,则无法可视化决策边界。如果你想把它形象化,你可能必须使用决策树。@Humpelstielzchen,而不是你的答案。难道没有办法用不同的颜色或其他东西来表示类,而只是画出边界线吗?我认为这是行不通的。你的斧头是什么?数据集中的每个点都位于10维空间中。所以你必须显示10个决策边界,这在一个绘图中是不可能的。好吧@Humpelstielzchen,这听起来足够好的回答了。让我们花点时间看看是否有人想对这个问题做出贡献,如果什么都没发生,我很高兴你能发布你的答案,这样我就可以接受了。非常感谢您的帮助Hi Humpelstielzchen,非常感谢您的回答。我不知道我们可以通过这种方式使用决策树来表示某种决策规则。我来看看。再次非常感谢:)

dtree <- train(x = svm_data[,-1], y = svm_labels$label, 
                   method = "rpart",
                   metric = "Accuracy",
                   trControl = trainControl(method = "cv", number = 3, classProbs = T),
                   cp = 0.005,
                   maxdepth = 3)



plot(dtree$finalModel, margin = 0.2)
text(dtree$finalModel)