【问题标题】:Finding the gradient of best fit line in python在python中找到最佳拟合线的梯度
【发布时间】:2020-12-10 19:07:51
【问题描述】:

如何在 python 中计算最佳拟合线的梯度?我绘制了 2 个数组 x 和 y,然后使用 polyfit 制作了最佳拟合线(在网上找到了一个示例)。我现在正试图找到我最适合的线的梯度,但我不确定如何。我曾尝试在这里查看类似的问题,但到目前为止我所尝试的都没有奏效。这是我的代码:

x = np.array(a)
y = np.array(b)

plt.figure()
plt.plot(x, y) 
plt.plot(np.unique(x), np.poly1d(np.polyfit(x, y, 1))(np.unique(x)), color = 'k')
plt.xlim((0,100))
plt.ylim((0,100))
plt.show()

然后我尝试这样做,就像我在类似问题上看到的那样:

m = ((np.mean(x) * np.mean(y)) − (np.mean(x * y))/((np.mean(x))**2 − np.mean(x**2))
print(m)

但我只是得到错误。谢谢。

【问题讨论】:

    标签: python numpy linear-regression


    【解决方案1】:

    坡度已由 polyfit 函数返回。所以:

    slope, intercept = np.polyfit(x, y, 1)
    #For a linear polynomial (so ,1), the formula for the line = slope*x+intercept (ax+b)
    

    适用于您的案例:

    import numpy as np
    import matplotlib.pyplot as plt
    
    #Example data
    x = [0,1,2,3,4]
    y = [1,2,5,8,1]
    x = np.array(x)
    y = np.array(y)
    
    #Fit line
    slope, intercept = np.polyfit(x, y, 1)
    
    #Plot
    plt.figure()
    plt.scatter(x, y) 
    plt.plot(np.unique(x), np.poly1d(np.polyfit(x, y, 1))(np.unique(x)), color = 'k')
    plt.show()
    
    print(slope)
    

    请参考https://numpy.org/doc/stable/reference/generated/numpy.polyfit.html

    【讨论】:

      猜你喜欢
      • 2017-03-01
      • 2017-10-05
      • 2016-02-27
      • 2022-11-23
      • 1970-01-01
      • 2019-08-28
      • 2019-10-06
      • 2017-09-19
      • 2017-08-24
      相关资源
      最近更新 更多