机器学习:SVC实战+源码解读(支持向量机用于分类)

本文详细介绍了使用sklearn库中的LinearSVC进行线性分类SVM,探讨了参数如C、Loss、penalty等对分类结果的影响,并进一步研究了非线性分类器,包括不同核函数的选择及参数对性能的改变。通过实例分析了鸢尾花数据集,展示了SVM在分类任务中的应用。
摘要由CSDN通过智能技术生成

这部分只是对支持向量机sklearn库函数调用,参数解释,以及各个参数对测试结果的影响分析。个人认为入门机器学习实战的最快实例。

一.线性分类SVM

调用sklearn包中的LinearSVC

下面是调用的初始值:

 def __init__(self, penalty='l2', loss='squared_hinge', dual=True, tol=1e-4,
                 C=1.0, multi_class='ovr', fit_intercept=True,
                 intercept_scaling=1, class_weight=None, verbose=0,
                 random_state=None, max_iter=1000)

其中参数如下:

C:一个浮点数,惩罚参数

Loss:字符串,表示损失函数,

         ‘hinge’:合页损失,标准SVM的损失函数;

         ‘squared_hinge’:合页损失的平方。

penalty:指定‘l1’或者'l2',惩罚项的范数,默认为‘l2’

dual: 布尔值,如果为true,则解决对偶问题;如果是false,则解决原始问题。当样本数大于特征数,倾向于false;

tol:指定终止迭代的阈值。

multi_class:指定多分类策略,

                   ‘ovr’:采用one-vs-rest分类策略;默认

                  'crammer_singer':多类联合分类,很少用

fit_intercept:布尔值,如果为true,则计算截距,即决策函数中的常数项,否则,忽略截距。

class_weight:可以是一个字典,指定各个类的权重,若未提供,则认为类的权重为1;

其属性如下:

coef_:返回各个特征的权重。

intercept_:一个数组,决策函数的常数项

方法:

fit(x,y):训练模型

predict(x):用模型进行预测,返回预测值;

score(x,y):返回预测准确率

1.简单的线性可分支持向量机

from  sklearn  import svm, datasets,cross_validation
#加载鸢尾花数据集
def load_data_classfication():
    iris=datasets.load_iris()
    X_train=iris.data
    y_train=iris.target
    return cross_validation.train_test_split(X_train,y_train,test_size=0.25,random_state=0,stratify=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值