【发布时间】:2021-11-01 08:19:20
【问题描述】:
我正在尝试生成一个多项式数据集。我写了一个代码
def generate_dataset1():
n = 500
X = 2 - 3 * np.random.normal(0, 1, n)
y = X - 2 * (X ** 2) + 0.5 * ( X ** 3) + np.random.normal(-3, 3, n)
m = np.random.uniform(0.3, 0.5, (n, ))
b = np.random.uniform(5, 10, (n, ))
plt.scatter(X, y, s=10)
plt.show()
现在,如果我想使用给定的公式(来自Wikipedia)生成数据集,你能告诉我我需要改变什么吗?
y = B_0 + B_1*x, B_2*x2 + B_3*x3 + ... + e
这里,x2 表示 x (square),x3 表示 x (cube),以此类推,e 是均值为 0 的未观察到的随机误差。
【问题讨论】:
-
这就是你所拥有的,只有 B_0、B_1 和 B_2 的常量。你有什么困惑?
-
我将如何编写代码以将
x与B相乘?因为,度数随着 x 的增加而增加。比如说,我必须将 B_0 与 x 相乘,但我必须将 B_1 与 x2 相乘。 -
简单的方法是将其视为
((B_3*x + B_2) * x + B_1) * x + B_0。你看到图案了吗?这就产生了一个三次方程。
标签: python python-3.x numpy regression