线性回归和生成数据 =+

Linear Regression and Generating Data =+

我在 Jupiter notebooks 中使用 python 进行编码遇到了问题。这个问题是关于线性回归的。如下:

1:线性回归 在本笔记本中,我们将从线性函数生成数据:=+,然后使用 OLS(普通最小二乘法)和梯度下降求解 ̂。

问题 1.1:生成数据:=+ 这里我们假设 ≈(,)=+ 其中 与加性噪声是线性的 您的函数应具有以下属性:

输出 y 作为 np.array 形状 (M,1) generate_linear_y 应该适用于任意的 x、b 和 eps,只要它们的尺寸合适 不要使用 for 循环分别计算每个 y[i],因为这对于大 M 和 N 会非常慢。相反,您应该利用 numpy 线性代数。


他们希望我们这样写代码:

def generate_linear_y(X,b):
""" Write a function that generates m data points from inputs X and b

Parameters
----------
X :   numpy.ndarray
      x.shape must be (M,N)
      Each row of `X` is a single data point of dimension N
      Therefore `X` represents M data points

b :   numpy.ndarray
      b.shape must be (N,1)
      Each element of `b` is a value of beta such that b=[[b1][b2]...[bN]]


Returns
-------
y :   numpy.ndarray
      y.shape = (M,1)
      y[i] = X[i]b
"""

有人可以帮助我吗,因为我很困惑!我什至没有意识到我正在做的事情需要 python 中的数组编码,我一直在努力解决这个问题!请帮忙!

对我来说,这看起来像是一个直接的矩阵乘法。在 NumPy 中,这是使用 matrix multiplication operator @ (aka np.matmul).

实现的

要生成随机噪声,您可以使用 numpy.random, most likely random_sample or standard_normal. If you want to do it the most-correct way, you can create a random number generator with default_rng 中的函数,然后使用 rng.standard_normal