(一) 随机梯度下降法:
上一篇博文,已经介绍了梯度下降算法。在实际中,为了实现梯度下降,往往分为随机梯度下降法和批量梯度下降法。
随机梯度下降法基本思路:
for j in range(j):
对于每一次更新参数,不必遍历所有的训练集合,仅仅使用了一个数据,来变换一个参数。这样做不如完全梯度下降的精确度高,可能会走很多弯路,但整体趋势是走向minmum。
这样做可以节省更多的时间,算法更快。
(二) 实现原理(参考《机器学习实战》)
from numpy import *
def loadDataSet():
dataMat = []; labelMat = []
fr = open('testSet.txt')
for line in fr.readlines():
lineArr = line.strip().split()
dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])
labelMat.append(int(lineArr[2]))
return dataMat,labelMat
def stoc