线性回归python

线性回归python,python,linear-regression,Python,Linear Regression,我想在python中实现线性回归,不需要scikit学习,但我不知道为什么,变量“error”总是递增,这不应该,我想问题可能出在公式中,但我不知道在哪里 算法好吗 def linear_regression(X, y, learning_rate=0.01, max_num_iterations=500, opt=True): # Your code goes here # Your code goes here w = np.zeros(len(X[0]))

我想在python中实现线性回归,不需要scikit学习,但我不知道为什么,变量“error”总是递增,这不应该,我想问题可能出在公式中,但我不知道在哪里

算法好吗

def linear_regression(X, y, learning_rate=0.01, max_num_iterations=500, opt=True):
    # Your code goes here
    # Your code goes here
    w = np.zeros(len(X[0]))
    error=0
    gradient=X
    variable =X
    print(f"X:{X}")

    for a in range(max_num_iterations):

                o = np.sum(X*w)
                error = y-o
                print(f"sum1:{np.sum(X*w)}")
                print(f"y:{y}")
                print(f"error: {error}")
                print (f"gradient1: {gradient}")
                print(f"w: {w}")
                for i in range(800):

                    gradient[i][0]=-X[i][0]*error[i]

                    gradient[i][1]=-X[i][1]*error[i]

                gradient=-learning_rate*gradient

                w=w+gradient


    return w

error=y-o
递增
error
表示大于
y>o
;这就是你所期望的吗?也许可以?欢迎来到StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。您发布的代码只定义了一个函数,并在不执行的情况下退出。@FilipMalczak我的意思是每次错误都会更大,我认为应该更低。这就是我认为算法应该如何工作,然后找出为什么
y>o
,或者检查公式是否应该是
y-o
,而不是
o-y
。或者,
X
w
中的元素可能以这种特殊方式与符号对齐?哥们,这是你的练习,我在暗示你。