【机器学习】sklearn

您所在的位置:网站首页 macbookairvm2参数 【机器学习】sklearn

【机器学习】sklearn

2024-07-08 07:43| 来源: 网络整理| 查看: 265

SVM参数解释

(1)C: 目标函数的惩罚系数C,用来平衡分类间隔margin和错分样本的,default C = 1.0;

(2)kernel:参数选择有RBF, Linear, Poly, Sigmoid, 默认的是"RBF";

(3)degree:if you choose 'Poly' in param 2, this is effective, degree决定了多项式的最高次幂;

(4)gamma:核函数的系数('Poly', 'RBF' and 'Sigmoid'), 默认是gamma = 1 / n_features;

(5)coef0:核函数中的独立项,'RBF' and 'Poly'有效;

(6)probablity: 可能性估计是否使用(true or false);

(7)shrinking:是否进行启发式;

(8)tol(default = 1e - 3): svm结束标准的精度;

(9)cache_size: 制定训练所需要的内存(以MB为单位);

(10)class_weight: 每个类所占据的权重,不同的类设置不同的惩罚参数C, 缺省的话自适应;

(11)verbose: 跟多线程有关,不大明白啥意思具体;

(12)max_iter: 最大迭代次数,default = 1, if max_iter = -1, no limited;

(13)decision_function_shape : ‘ovo’ 一对一, ‘ovr’ 多对多 or None 无, default=None

(14)random_state :用于概率估计的数据重排时的伪随机数生成器的种子。

ps:7,8,9一般不考虑。

参考:https://blog.csdn.net/sinat_38832964/article/details/81462060

SVM 调参策略

以下内容摘自网络CSDN:

SVM 怎样能得到好的结果  1. 对数据做归一化(simple scaling)  2. 应用 RBF kernel  3. 用cross-validation和grid-search 得到最优的c和g  4. 用得到的最优c和g训练训练数据  5. 测试

关于svm的核函数参数设置

sklearn.svm.SVC中kernel参数设置:

(1)线性核函数 kernel='linear' (无其他参数) 

(2)多项式核函数 kernel='poly' 有三个参数。-d用来设置多项式核函数的最高此项次数,也就是公式中的d,默认值是3。-g用来设置核函数中的gamma参数设置,也就是公式中的第一个r(gamma),默认值是1/k(k是类别数)。-r用来设置核函数中的coef0,也就是公式中的第二个r,默认值是0。  (重点是阶数的选择,即d,一般选择1-11:1 3 5 7 9 11,也可以选择2,4, 6, 8, 10) 

(3)RBF核函数   kernel='rbf' 有一个参数。-g用来设置核函数中的gamma参数设置,也就是公式中的第一个r(gamma),默认值是1/k(k是类别数)。  (径向基RBF内核,exp{-|xi-xj|^2/均方差},其中均方差反映了数据波动的大小。gamma参数通常可选择下面几个数的倒数:0.1 0.2 0.4 0.6 0.8 1.6 3.2 6.4 12.8,默认的是类别数的倒数,即1/k,2分类的话就是0.5) 

(4)sigmoid核函数 又叫做S形内核  kernel='sigmod' 有两个参数。-g用来设置核函数中的gamma参数设置,也就是公式中的第一个r(gamma),默认值是1/k(k是类别数)。-r用来设置核函数中的coef0,也就是公式中的第二个r,默认值是0。 两个参数g以及r:g一般可选1 2 3 4,r选0.2 0.4 0.6 0.8 1 

(5)自定义核函数

总结: 对于SVC,需要调整的参数为:

2 关于C、cost和gamma

SVM模型有两个非常重要的参数C与gamma。

其中 C是惩罚系数,即对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。C越小,容易欠拟合。C过大或过小,泛化能力变差。C一般可以选择为:10^t , t=[- 4,4]就是0.0001 到10000。

gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。

Grid Search  使用grid Search虽然比较简单,而且看起来很naïve。但是他确实有两个优点:  可以得到全局最优  (C,gamma)相互独立,便于并行化进行

案例1:

def svm_cross_validation(train_x, train_y): from sklearn.grid_search import GridSearchCV from sklearn.svm import SVC model = SVC(kernel='rbf', probability=True) param_grid = {'C': [1e-3, 1e-2, 1e-1, 1, 10, 100, 1000], 'gamma': [0.001, 0.0001]} grid_search = GridSearchCV(model, param_grid, n_jobs = 8, verbose=1) grid_search.fit(train_x, train_y) best_parameters = grid_search.best_estimator_.get_params() for para, val in list(best_parameters.items()): print(para, val) model = SVC(kernel='rbf', C=best_parameters['C'], gamma=best_parameters['gamma'], probability=True) model.fit(train_x, train_y) return model

案例2:

import numpy as np from sklearn.model_selection import GridSearchCV parameters={'kernel':['linear','rbf','sigmoid','poly'],'C':np.linspace(0.1,20,50),'gamma':np.linspace(0.1,20,20)} svc = svm.SVC() model = GridSearchCV(svc,parameters,cv=5,scoring='accuracy') model.fit(X_train,y_train) model.best_params_ model.score(X_test,y_test)

 

SVM有如下主要几个特点:

(1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射;

(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;

(3)支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量;

(4)SVM 是一种有坚实理论基础的新颖的小样本学习方法。  它基本上不涉及概率测度及大数定律等,因此不同于现有的统计方法。  从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”,大大简化了通常的分类和回归等问题;

(5)SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。

(6)少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。  这种“鲁棒”性主要体现在:  ①增、删非支持向量样本对模型没有影响;  ②支持向量样本集具有一定的鲁棒性;  ③有些成功的应用中,SVM 方法对核的选取不敏感

两个不足:

(1) SVM算法对大规模训练样本难以实施  由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。针对以上问题的主要改进有  J.Platt的SMO算法、  T.Joachims的SVM、  C.J.C.Burges等的PCGC、  张学工的CSVM  以及O.L.Mangasarian等的SOR算法

(2) 用SVM解决多分类问题存在困难  经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器.

END 2017-10-12



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3