python实现SGD(stochastic gradient descent)算法

本文介绍了一个Python实现的随机梯度下降(SGD)算法,详细讲解了如何初始化权重矩阵、打乱数据、实现随机梯度下降过程,并通过函数封装数据处理步骤。在保持权重初始化不变的情况下进行训练,最后展示了训练结果,包括决策边界和误差随迭代优化次数的变化趋势。
摘要由CSDN通过智能技术生成

源码

此为适应机使用随机梯度下降的python实现,代码主要来源于Python Machine Learning 3rd(此书包含大量python实现算法的源码,宜啃读)自己把代码又弄了一遍,欢迎想看或者看过这本书的来交流讨论

class AdalineSGD(object):
    def __init__(self, eta=0.01, n_iter=10, shuffle=True, random_state=None):
        self.eta = eta
        self.n_iter = n_iter
        self.w_initialized = False
        self.shuffle = shuffle
        self.random_state = random_state
        
    def fit(self, X, y):
        self._initialize_weights(X.shape[1])
        self.cost_ = []
        for i in range(self.n_iter):
            if self.shuffle:
                X, y = self._shuffle(X, y)
            cost = []
            for i in range(self.n_iter):
                if self.shuffle:
                    X, y = self._shuffle(X, y)
                cost = []
                for xi, target in zip(X, y):
                    cost.append(self._update_weights(xi, target))
                avg_cost =
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值