【问题标题】:How math is working in python (Linear Regression)数学是如何在 python 中工作的(线性回归)
【发布时间】:2020-02-05 02:56:49
【问题描述】:

我想通过在 python 代码中转换数学来找到 python 中的斜率。在数学斜率公式是 -

m = Σ(x-x̄)*(y -ȳ)/ Σ(x-x)^2

但在python中,它是通过-

计算的
m = (np.sum(x*y) - n*x_mean * y_mean) / (np.sum(x*x) - (n * x_mean * x_mean))

我不确定我们是如何做这个公式是在 python 中导出的。你能帮帮我吗?

为了更好地理解,我已将数学公式作为 Python 公式附加到图像中。请也检查一下。????

谢谢

https://i.stack.imgur.com/BMzOM.jpg

【问题讨论】:

  • 你能澄清你的问题吗?
  • n 怎么会出现在您的公式中?在将其引入 Python 之前,您必须正确计算。

标签: python math linear-regression


【解决方案1】:

求解分子和分母

Σ(x-x̄)*(y -ȳ)

= Σ(xy-x̄y-xȳ + x̄ȳ)

= Σxy -Σx̄y -Σxȳ +Σx̄ȳ

= Σxy -x̄Σy -ȳΣx +nx̄ȳ

= Σxy -nx̄ȳ -nx̄ȳ +nx̄ȳ

= Σxy - nx̄ȳ

Σ(x-x̄)^2

= Σ(xx- 2xx̄ + x̄x̄)

= Σ(xx)- Σ(2xx̄) + Σ(x̄x̄)

= Σ(xx)- 2x̄Σ(x) + nx̄*x̄

= Σ(xx)- 2nx̄x̄ + nx̄*x̄

= Σ(xx)- nx̄*x̄

m = (Σxy - nx̄ȳ) / (Σ(xx)- nx̄*x̄)

在python中是什么

m = (np.sum(x*y) - n*x_mean * y_mean) / (np.sum(x*x) - (n * x_mean * x_mean))

【讨论】:

    【解决方案2】:

    那是因为线性回归中的叉积是分段乘法,其中向量中的每个分量只与另一个向量中的对应分量相乘。您正在假设典型的代数展开式,包括将每个组件与每个其他组件相乘,这是行不通的。

    所以,

    Σ(x-x̄)*(y -ȳ) != Σ(xy-x̄y-xȳ + x̄ȳ)
    
    Σ(x-x̄)*(y -ȳ) = Σ(xy -x̄ȳ) = Σxy -Σx̄ȳ = Σxy - nx̄ȳ
    

    同样,

    Σ(x-x̄)*(x -x̄) != Σ(xx-x̄x-xx̄ + x̄x̄)
    
    Σ(x-x̄)*(x -x̄) = Σ(xx -x̄x̄) = Σxx -Σx̄x̄  = Σxx - nx̄x̄
    

    【讨论】:

      猜你喜欢
      • 2019-04-17
      • 2020-03-27
      • 1970-01-01
      • 2019-04-19
      • 2019-03-27
      • 2018-01-26
      • 2021-11-24
      • 2020-06-25
      • 2017-02-15
      相关资源
      最近更新 更多