【发布时间】:2018-02-03 14:05:44
【问题描述】:
我在使用 Numpy 执行线性回归时遇到了用于计算模型斜率“m”和截距“b”的方程之一的问题。通过在线课程,老师的实施产生了正确的结果,但并不容易理解。我无法理解这个实现。
计算斜率'a'和截距'b'的方程。
等式的简化版本
现在使用 numpy 函数实现这个方程的代码:
denominator = X.dot(X) - X.mean() * X.sum()
a = (X.dot(Y) - Y.mean() * X.sum()) / denominator
b = (Y.mean() * X.dot(X) - X.mean() * X.dot(Y)) / denominator
在此代码的第 1 行:X.dot(X) 计算 Sum Squared X 但不计算均值。其中方程显示 X^2 的平均值。
为什么用 X.mean() * X.sum() 来计算 X 的均方值?
为什么只用 X.dot(X) 来计算平方 X 的平均值?
等式 2 表示计算 a 的均值 (xy)-均值 (x)*均值 (y)/分母。代码状态(x dot y)-均值(y)*总和(x)/分母在哪里?为什么?
谢谢
【问题讨论】:
-
使用简化版的等式尝试在分子和分母中加入术语 1/N.. 你会自己回答:) 注意 X.mean() 是相当于 X.sum() * 1/N
标签: python numpy machine-learning linear-regression