【问题标题】:Linear Regression and Generating Data ????=????????+????线性回归和生成数据????=??????????+????
【发布时间】:2020-08-13 02:21:06
【问题描述】:

我在 Jupiter 笔记本中遇到了一个问题,无法使用 python 进行编码。这个问题是关于线性回归的。如下:

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

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

将 y 输出为形状为 (M,1) 的 np.array 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 中进行数组编码,而我一直在努力解决这个问题!请帮忙!

【问题讨论】:

  • 如果我是你,SO 不是我要去的地方。我将开始阅读带有 Numpy 的线性模型,从那里这个问题变得很小,请参阅cs.toronto.edu/~frossard/post/linear_regression 以及其他关于 LM 的 numpy 教程
  • @Prayson W. Daniel 谢谢,我会检查的。所以是我最后的手段,因为即使我的老师也无法帮助我。
  • 这是一个非常有用的链接,非常感谢您的帮助!

标签: python arrays olsmultiplelinearregression


【解决方案1】:

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

要生成随机噪声,您可以使用numpy.random 中的函数,很可能是random_samplestandard_normal。如果您想以最正确的方式进行操作,可以使用default_rng 创建一个随机数生成器,然后使用例如rng.standard_normal

【讨论】:

  • 你能给我看一个代码示例吗,因为我从来没有听说过这些函数。
  • omg 我知道这是 TMI 但我快哭了,我感到非常迷茫和困惑,我从来没有做过这样的事情。我迫切需要帮助,所以我求助于我刚接触的堆栈溢出。
  • @ah123412312 听起来您想返回X @ b 或者加上一些噪音。要获得与输出形状相同的标准正态分布噪声,您可以将其保存在变量 (y1) 中,然后使用 np.random.standard_normal(y1.shape)
  • 非常感谢,一切顺利!非常感谢您的帮助!
  • @ah123412312 如果我的解决方案有效,请接受我的回答。
猜你喜欢
  • 1970-01-01
  • 2015-03-21
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
  • 2011-09-10
  • 2020-03-06
  • 2021-08-20
  • 2013-01-27
相关资源
最近更新 更多