【机器学习】svm

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

参考

sklearn中SVC中的参数说明与常用函数_sklearn svc参数-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/transformed/article/details/90437821

参考PYthon 教你怎么选择SVM的核函数kernel及案例分析_clf=svm.svc(kernel=)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/c1z2w3456789/article/details/105247565

四种核函数

四种核函数在四种不同分布数据上的表现

博主总结

linear、poly

非线性数据集linear和poly核函数在上表现会浮动如果数据相对线性可分则表现不错如果是像环形数据那样彻底不可分的则表现糟糕。

线性数据集linear和poly核函数即便有扰动项也可以表现不错可见poly核函数虽然也可以处理非线性情况但更偏向于线性的功能。

sigmoid

Sigmoid核函数就比较尴尬了它在非线性数据上强于两个线性核函数但效果明显不如rbf它在线性数据上完全比不上线性的核函数们对扰动项的抵抗也比较弱所以它功能比较弱小很少被用到。

rbf

rbf核函数基本在任何数据集上都表现不错属于比较万能的核函数。

python中svm使用

clf = svm.SVC(kernel='rbf', class_weight='balanced', 
        C=5, gamma=0.3, max_iter=3000, tol=0.001, probability=True)

C根据官方文档这是一个软间隔分类器对于在边界内的点有惩罚系数CC的取值在0-1之间默认值为1.0。C越大代表这个分类器对在边界内的噪声点的容忍度越小分类准确率高但是容易过拟合泛化能力差。所以一般情况下应该适当减小C对在边界范围内的噪声有一定容忍。

class_weight默认为None,给每个类别分别设置不同的惩罚参数C如果没有给则会给所有类别都给C=1即前面指出的参数C.

tol停止训练的误差精度默认值为0.001

probability默认为False,决定最后是否按概率输出每种可能的概率但需注意最后的预测函数应改为clf.predict_proba。

max_iter默认为-1最大迭代次数如果为-1表示不限制

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 机器学习