这是我的问题:
我有一个关于液压系统状况的中等大小的数据集。
数据集由68个变量加上系统条件(绿色、黄色、红色)表示
我必须使用多个分类器来预测系统的行为,因此我将我的数据集划分为训练集和测试集,并将它们标准化。
特别是我使用的是径向 Svm。
我知道生成非线性决策边界背后的想法是我们需要对特征进行一些非线性变换,将它们变换到更高维空间。我们使用 Kernel 技巧进行这种非线性变换。
我写:
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 值并面对结果,因此选择性能最佳的那些,对吗?
用一些代码一步一步地回答会很有帮助!
谢谢
简单回答这个问题。是的!当您使用 caret 包指定径向内核时,它将为您将数据转换为更高维的子空间。
看看 statexchange 上的这个线程:https ://stats.stackexchange.com/questions/10551/how-do-i-choose-what-svm-kernels-to-use
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句