r - 如何在R中使用e1071包的 'svm'进行多类分类

标签 r classification svm libsvm

我想使用 svm 执行多类分类e1071 的功能包裹。但是从我从 svm 的文档中了解到的,它只能进行二元分类。小插图文档说明了多类分类:“为了允许多类分类,libsvm 使用一对一技术,通过拟合所有二进制子分类器并通过投票机制找到正确的类”。
我仍然不明白的是,我们是否可以使用 svm 进行多类分类的 e1071在R?如果是,请解释我们如何通过 iris 做到这一点数据集。

最佳答案

iris 数据集包含三个类标签:“Iris setosa”、“Iris virginica”和“Iris versicolor”。要使用 svm 使用平衡的一对一分类策略,您可以训练三个二元分类器:

第一个分类器的训练集仅包含“Iris setosa”和“Iris virginica”实例。第二个分类器的训练集仅包含“Iris setosa”和“Iris versicolor”实例。第三个分类器的训练集——我想现在你已经知道了——只包含“Iris virginica”和“Iris versicolor”实例。

要对未知实例进行分类,请应用所有三个分类器。一个简单的投票策略然后可以选择最常分配的类标签,更复杂的也可以考虑每个分配的类标签的 svm 置信度分数。

编辑(此原则开箱即用 svm ):

# install.packages( 'e1071' )
library( 'e1071' )
data( iris )
model <- svm( iris$Species~., iris )
res <- predict( model, newdata=iris )

关于r - 如何在R中使用e1071包的 'svm'进行多类分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22009871/

相关文章:

r - 在包中设置一个.Rmd,将文件写入当前项目工作目录

r - 数值转换 R 中的 as.factor()

arrays - 创建不同长度的 3 维数组

machine-learning - 为什么knn分类器中要使用排列?

machine-learning - Weka 上的测试准确性与训练时间

java - SMO,WEKA 中的顺序最小优化

machine-learning - 一对多 SVM 引入了类别不平衡

javascript - R在绘图选择重置后删除标记的矩形

machine-learning - 为什么感知器或 SVM 中不使用 0-1 损失函数?

machine-learning - 我可以通过对类进行编码将分类问题转化为回归问题吗?