web-dev-qa-db-ja.com

numpy配列にノイズを追加する

つまり、特定の線、おそらく2x +2に続く100サンプルのデータセットを作成しようとしているとします。また、X軸の値を0〜1000の範囲にします。これを行うために、私は以下を使用します。

X = np.random.random(100,1) * 1000
Y = (2*X) + 2
data = np.hstack(X,Y)

Hstackは、対応するx値とy値を持つ配列を提供します。その部分は機能します。しかし、データポイントをその2x + 2ラインからさらに遠ざけるためにノイズを注入したい場合は、それがわかりません。

たとえば、Y配列の標準偏差を20にしたいとします。そのノイズをy値にどのように注入しますか?

5
MP12389

何かが足りないかもしれませんが、追加してみましたか numpy.random.normal(scale=20,size=100)からY?あなたも書くことができます

Y=numpy.random.normal(2*X+2,20)

一度にすべてを実行します(配列サイズを繰り返さずに)。

7
Davis Herring

ノイズをシミュレートするには、 np.random.randn のような正規分布の乱数ジェネレーターを使用します。

これはあなたがやろうとしていることですか?

X = np.linspace(0, 1000, 100)
Y = (2*X) + 2 + 20*np.random.randn(100)
data = np.hstack((X.reshape(100,1),Y.reshape(100,1)))

enter image description here

2
Bill