想成为博客专家的渣渣 2020-02-22 14:04 采纳率: 50%
浏览 639
已采纳

关于机器学习梯度下降求 w 和 b 的问题

# 类目的求解斜率和截距
class Linear_model(object):
    def __init__(self):
        self.w = np.random.randn(1)[0]

        self.b = np.random.randn(1)[0]
        print('----------------------起始随机生成的斜率和截距',self.w,self.b)

#   model就是方程f(x) = wx + b
    def model(self,x):
        return self.w * x + self.b

#   线性问题,原理都是最小二乘法
    def loss(self,x,y):
#         方程中几个未知数???
        cost = (y - self.model(x))**2

#         求偏导数 ,把其他的都当成已知数,求一个未知数的导数
#         导数是偏导数的一种特殊形式
        g_w = 2*(y - self.model(x))*(-x)
        g_b = 2*(y - self.model(x))*(-1)
        return g_w,g_b

#     梯度下降
    def gradient_descend(self,g_w,g_b,step = 0.01):
#         更新新的斜率和截距
        self.w = self.w - g_w*step
        self.b = self.b - g_b*step
        print('----------------------',self.w,self.b)

    def fit(self,X,y):
        w_last = self.w + 1
        b_last = self.b + 1
        precision = 0.00001
        max_count = 3000
        count = 0
        while True:
            if (np.abs(self.w - w_last) < precision) and (np.abs(self.b - b_last) < precision):
                break

            if count > max_count:
                break

#             更新斜率和截距
            g_w = 0
            g_b = 0
            size = X.shape[0]
            for xi,yi in zip(X,y):
                g_w += self.loss(xi,yi)[0]/size
                g_b += self.loss(xi,yi)[1]/size

            self.gradient_descend(g_w,g_b)
            count += 1

    def coef_(self):
            return self.w

    def intercept_(self):
            return self.b

请问
def fit(self,X,y):
w_last = self.w + 1
b_last = self.b + 1
这里为什么

w_last = self.w + 1
b_last = self.b + 1

加一是什么意思

  • 写回答

2条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 关于selenium网页闪退
      • ¥15 怎么用PYTHON解类似于x = y+zx + cy = x+zy + v的方程
      • ¥300 FLASH AS2.0制作一个类似手机上下滑动一样的效果
      • ¥15 为什么使用openFoam 中的icoFoam计算圆柱扰流时出现浮点数例外(核心已转储)
      • ¥15 51单片机外部中断控制数码管
      • ¥15 创建网页里面的图片显示不出来
      • ¥15 语音控制的编写?(语言-c#)
      • ¥15 matlab输入书上的代码运行错误
      • ¥15 matlab怎么做三维曲面
      • ¥50 sph光滑粒子法能否解决阶跃性的问题