[机器学习从入门到女装]感知器

本文介绍了一个简单的支持向量机(SVM)训练过程实现。通过使用Python和NumPy库,该实现展示了如何逐步更新权重和偏置来最大化分类间隔。代码中包括了初始化参数、训练函数以及一个用于演示的小型数据集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

理论知识参考李航统计学习

 

import numpy as np

def train(data,label,w,b,lr):
    '''

    :param data: data.shape=(data_num,data_length)
    :param label: label.shape=(data_num,1)
    :param w: w.shape=(data_length)
    :param b:
    :param lr: learning rate
    :return:
    '''
    flag=True
    while(flag):
        flag=False
        for i in range(data.shape[0]):
            x=data[i]
            x_=x[:,np.newaxis]
            w_ = w[:,np.newaxis]
            y_pred=np.dot(w_.T,x_)+b
            y=label[i]
            if y*y_pred<=0:
                w=w+lr*y*x
                b=b+lr*y
                flag=True
    return w,b


def param_init(data):
    w=np.zeros((data.shape[1]))
    b=0
    return w,b

def main():
    data=np.array([[3,3],[4,3],[1,1]])
    label=np.array([[1],[1],[-1]])
    w,b=param_init(data)
    w,b=train(data,label,w,b,1)
    print(w)
    print(b)


if __name__ == '__main__':
    main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值