svm核函数gamma参数_SVM算法之Python调参

SVM我们之前介绍过,根据数据样本点是否线性可分,可将其分为线性模型和非线性模型两大类。今天我们主要看下在scikit-learn中SVM是如何实现的。

线性SVM

在scikit-learn中的代码如下所示:

5d533d962cbfb5bbf3f65efa262bf281.png

老规矩,我们只看一些之前没有介绍过的参数。

第1个参数:loss

该参数指我们选择什么样的损失函数。默认为squared_hinge,即合页损失函数的平方;还有一个选择是hinge,即合页损失函数。

至于其他参数,我们在之前的Logistic算法中都已经介绍过,大家可以进行参考,这里不再赘述。

非线性SVM

非线性的SVM就是添加了核函数,我们来看看如何用代码实现:

f6c70f6925e27e75ffde0e2a96e758f2.png

我们还是只介绍新出现的一些参数:

第1个参数:cache_size

该参数指缓存大小,默认为200,单位MB。

第2个参数:coef0

指核函数的常数项,仅对poly多项式核函数和sigmoid感知机核函数生效。

第3个参数:decision_function_shape

指决策函数的类型,默认为ovr,意为一对多;也可选择ovo,意为一对一。

第4个参数:degree

指使用poly多项式核函数时的维度,其他核函数没有此参数。

第5个参数:gamma

指各种核函数的系数,默认为auto,即系数为1/n(n为特征数)。

第6个参数:kernel

指采用的核函数的类型。默认为rbf,即高斯核函数。此外,你还可以选择linear(线性核函数)、poly(多项式核函数)、sigmoid(多层感知机核函数)和precomputed(已提供核矩阵)。

第7个参数:max_iter

指最大迭代次数,默认为-1,无限制。

第8个参数:probability

指是否使用概率来估计,默认为False,即不使用概率估计。

第9个参数:shrinking

指是否采用启发式(shrinking heuristics)方法,默认为True。


UA学院招生啦!想打造AI时代底层能力的同学请看过来!


版权声明:本文为weixin_33221829原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。