# 线性回归问题的小批量随机梯度下降算法
import numpy as np
class LinearRegression:
def fit(self,X,y,eta_0=10,eta_1=50,N=3000,B=10):
m,n=X.shape
w=np.zeros((n,1))
self.w=w
for t in range(N):
batch=np.random.randint(low=0,high=m,size=B) #选出B条训练数据
X_batch=X[batch].reshape(B,-1)
y_batch=y[batch].reshape(B,-1)
e=X_batch.dot(w)-y_batch #选出B条数据上的经验损失梯度,并更新w的值
g=2*X_batch.T.dot(e)/B
w=w-eta_0*g/(t+eta_1)
self.w+=w
self.w/=N
def predict(self,X):
return X.dot(self.w)
机器学习算法导论代码---linear_regression_mbgd
最新推荐文章于 2024-01-04 20:16:02 发布
本文介绍了如何使用小批量随机梯度下降算法解决线性回归问题,通过实例展示了如何在Python中实现LinearRegression类,包括数据抽样、经验损失梯度计算和模型参数更新的过程。
1228

被折叠的 条评论
为什么被折叠?



