热线电话:13121318867

登录
2018-11-29 阅读量: 811
拟合模型

对于随机梯度下降来说,我们只需

要单次预测对应的平方误差:

def error(x_i, y_i, beta):
return y_i - predict(x_i, beta)
def squared_error(x_i, y_i, beta):
return error(x_i, y_i, beta) ** 2

如果你熟悉微积分,可以通过下面的方式进行计算:

def squared_error_gradient(x_i, y_i, beta):
"""the gradient (with respect to beta)
corresponding to the ith squared error term"""
return [-2 * x_ij * error(x_i, y_i, beta)
for x_ij in x_i]

可以利用随机梯度下降法来寻找最优的 beta 了:

def estimate_beta(x, y):
beta_initial = [random.random() for x_i in x[0]]
return minimize_stochastic(squared_error,
squared_error_gradient,
x, y,

beta_initial,

0.001)

random.seed(0)

beta = estimate_beta(x, daily_minutes_good) # [30.63, 0.972, -1.868, 0.911]

0.0000
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子