データをゼロ平均と std = 1 に標準化したいと思います。データの形状は 28783x4x24x7 で、4 チャネルと寸法 24x7 の 28783 画像と考えることができます。チャネルを標準化する必要があります。2 次元が機能を保持することを指定しながら標準化するにはどうすればよいですか?
1 に答える
0
私はそれを行う方法を見つけました。これはおそらく最も効率的ではありませんが、トレーニング データから平均値と標準偏差を取得するだけで、トレーニング データとテスト データの両方に操作を適用するクロス検証にこのアプローチを使用することもできます。これは、1 つの次元の平均だけが必要な場合は、任意の数の次元にわたって使用できます。以下のコード例を参照してください。
n_user = 3
n_channel = 2
n_pixels = 3
A = np.zeros(shape=(n_user, n_channel, n_pixels))
for i in range(n_user):
A[i, 0, :] = np.arange(n_pixels)
A[i, 1, :] = np.arange(n_pixels) + n_pixels
print A
mu_f = np.zeros(shape=n_channel)
sigma_f = np.zeros(shape=n_channel)
for i in range(n_channel):
mu_f[i] = np.mean(A[:,i,:])
sigma_f[i] = np.std(A[:,i,:])
print mu_f
print sigma_f
for i in range(n_channel):
A[:, i, :] -= mu_f[i]
A[:, i, :] /= sigma_f[i]
print A
print np.mean(A[:,0,:])
print np.std(A[:,0,:])
于 2015-04-04T14:00:27.713 に答える