线性支持向量机的随机梯度下降

文章探讨了从算法到代码的转化过程中遇到的问题,特别是在实现线性支持向量机的随机梯度下降时。指出在实际应用中,数据本身用于计算梯度,而非预设函数。介绍了线性支持向量机的优化问题转换及其随机梯度下降公式,并给出了相关代码片段。
摘要由CSDN通过智能技术生成

算法和代码之间的误区

在看统计学习方法的时候,线性支持向量机学习算法变成代码时,下面这个函数不知道如何构造成算法:
在这里插入图片描述
为什么我认为需要上面这个函数呢,是因为随机梯度下降,需要求梯度,也就说求导,没有函数如何求导。(这是我当时单纯的想法)。
后来经过老师的解答发现,现实中从来不写这种函数,因为现实给你数据,你不会知道这个数据会满足什么样的函数的。所以一般的求梯度这个过程直接由数据完成,也就是说知道x,y,就可以求梯度。
在这里插入图片描述

参考:https://www.jianshu.com/p/9d8e8db52dde

线性支持向量机的随机梯度下降

线性支持向量机的随机梯度下降相当的巧妙,已知原问题如下:
在这里插入图片描述
稍微做一下转换将变成如下形式:
在这里插入图片描述
想要计算上面公式的梯度只需要(注意这里有个标记错误,是y_i):
在这里插入图片描述
那么随机梯度下降的代码就是:在这里插入图片描述

代码

class SoftMarginSVM(object):
    def __init__(self, train_data, train_label, validate_data, validate_label, alpha=0.00001, C=700.0):
        self.train_data = train_data
        self.train_label = train_label
        self
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值