首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SVM算法之Python调参

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

线性SVM

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

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

第1个参数:loss

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

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

非线性SVM

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

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

第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。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201225A02L3V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券