【问题标题】:Non linear transformation of the feature for Radial SvmRadial Svm 特征的非线性变换
【发布时间】:2019-12-13 22:10:21
【问题描述】:

这是我的问题:

我有一个关于液压系统状况的中等大小的数据集。

数据集由68个变量加上系统条件(绿、黄、红)表示

我必须使用几个分类器来预测系统的行为,所以我将我的数据集划分为训练集和测试集并将它们归一化。

特别是我使用的是径向 Svm。

我知道生成非线性决策边界背后的想法是我们需要对特征进行一些非线性转换,从而将它们转换到更高维空间。我们使用内核技巧进行这种非线性变换。

我写道:

reg_Control = trainControl("repeatedcv", number = 5, repeats=5, verboseIter = T, classProbs =T)
    svmRGrid=expand.grid(sigma=seq(0.00003,0.00009,0.00003),C=seq(0.03,0.06,0.03))

svmRadial = train(Condition ~.,data=training_norm, method="svmRadial", trControl=reg_Control,tuneGrid=svmRGrid)

我的问题是..

如何对特征进行非线性变换以将其转换为更高维空间?

我写的够了吗?

(SvmRadial 方法本身是否进行非线性变换?)

我必须与其他分类器进行比较,因此我正在尝试使用 RadialSvm 的 sigma 和 C 的不同值并面对结果,因此选择具有最佳性能的那些,对吗??

用一些代码一步步回答会很有帮助!

谢谢

【问题讨论】:

    标签: r svm r-caret


    【解决方案1】:

    对此的简单回答。是的!当您使用 caret 包指定径向内核时,它将为您将数据转换为更高维的子空间。

    看看 statexchange 上的这个帖子:https://stats.stackexchange.com/questions/10551/how-do-i-choose-what-svm-kernels-to-use

    【讨论】:

    • 非常感谢您的回答@Ollie Perkins!现在我面对 C 和 Sigma 的几个值并检查它们在测试集上的性能,然后我会选择最好的。我是否还必须通过在控制台上输入它们的名称来考虑不同分类器的性能以获得详尽的答案?
    • 是的,尽管您可以通过使用插入符号中的自定义训练网格尝试许多值来在训练集上找到 C 和 Sigma 的最佳值,并将其传递给 train.control 参数。如果我的回答是正确的,请采纳并点赞。
    猜你喜欢
    • 2017-05-28
    • 2020-06-20
    • 2012-06-19
    • 2017-11-20
    • 2020-09-14
    • 1970-01-01
    • 2016-08-24
    • 2016-08-14
    • 2014-10-16
    相关资源
    最近更新 更多