SVM核函数的选取

在选用核函数的时候,如果我们对我们的数据有一定的先验知识,就利用先验来选择符合数据分布的核函数;如果不知道的话,通常使用交叉验证的方法,来试用不同的核函数,误差最下的即为效果最好的核函数;或者也可以将多个核函数结合起来,形成混合核函数。在吴恩达的课上,也曾经给出过一系列的选择核函数的方法:

如果特征的数量大到和样本数量差不多,则选用LR或者线性核的SVM;
如果特征的数量小,样本的数量正常,则选用SVM+高斯核函数;
如果特征的数量小,而样本的数量很大,则需要手工添加一些特征从而变成第一种情况


本人认为:样本数量相对于特征数偏少时,容易线性可分;比如说2*2,那么两个维度,两个样本,线性可分就非常简单;如果另外一个极端,即线性可分的概率就会很低;一种方法采用高斯核,另外一种方法增加特征;说白了本质上就是增加维度;缩小特征数与样本数之间的差距,来达到线性可分 ;
--------------------- 
作者:Takoony 
来源:优快云 
原文:https://blog.youkuaiyun.com/ningyanggege/article/details/84072842 

 

### 如何根据数据特点选择合适的SVM核函数 #### 数据特性与核函数的关系 当特征的数量较大且接近于样本数量时,推荐使用逻辑回归(LR)或带有线性核的SVM模型[^4]。这是因为在线性可分的情况下,线性核能够有效地找到最优分割超平面。 对于特征较少但具有合理规模样本集的数据集来说,采用高斯径向基函数(RBF)作为核函数通常是更好的选择。这种情况下,RBF核可以映射输入空间到更高维度的空间,在那里即使原始特征不是完全线性的关系也能被较好地区分开来。 如果遇到特征数少而样本量极大的情形,则建议通过增加额外的人工设计特征使问题转化为前述的第一类情况——即特征数目相对较多的情形下再考虑使用其他类型的核函数。 #### 实践中的策略 实践中可以选择多种不同类型的核函数并运用交叉验证技术比较它们的表现,最终选取泛化能力最强的那个。这种方法允许探索各种可能性而不依赖于预先设定的知识假设。 另外一种方法是基于领域专业知识或者对特定应用场景的理解来进行初步筛选。如果有理由相信某些类型的决策边界更有可能适用于手头的任务,那么可以从这些候选者当中优先测试相应的核选项。 最后还可以尝试组合不同的基础核以创建复合型的新颖内积形式,这可能有助于捕捉更加复杂的模式结构,进而提升预测精度。 ```r library(e1071) # 使用线性核进行建模 model_linear <- svm(target ~ ., data = training_data, kernel = "linear") # 使用多项式核进行建模 model_poly <- svm(target ~ ., data = training_data, kernel = "polynomial", degree = 3) # 使用RBF核进行建模 model_rbf <- svm(target ~ ., data = training_data, kernel = "radial") # 计算混淆矩阵评估各个模型性能 conf_matrix_linear <- table(Predicted = predict(model_linear, test_data), True = test_labels) conf_matrix_poly <- table(Predicted = predict(model_poly, test_data), True = test_labels) conf_matrix_rbf <- table(Predicted = predict(model_rbf, test_data), True = test_labels) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值