特征缩放的矢量化

Sud*_*jee 2 vectorization octave

我想用 2 列缩放矩阵 (X)。我正在使用均值归一化,并在 Octave 中写了以下几行:

X_norm = X
mu = mean(X);
sigma = std(X);
X_norm(:,1) = (X_norm(:,1) .- mu(:,1)) ./ sigma(:,1);
X_norm(:,2) = (X_norm(:,2) .- mu(:,2)) ./ sigma(:,2); 
Run Code Online (Sandbox Code Playgroud)

你能告诉我一种更简洁的方法来矢量化这些计算吗?

我通过与结果进行比较来检查我的代码zscore(X)并且它们匹配 - 即sum(X_norm - zscore(X))返回了我 0 0。

我被限制不使用zscore(),因此问题。

样本数据如下:

2104      3
1600      3
2400      3
1416      2
3000      4
1985      4
1534      3
1427      3
1380      3
1494      3
1940      4
2000      3
1890      3
4478      5
1268      3
2300      4
1320      2
1236      3
2609      4
3031      4
1767      3
1888      2
1604      3
1962      4
3890      3
1100      3
1458      3
2526      3
2200      3
2637      3
Run Code Online (Sandbox Code Playgroud)

Tas*_*nou 5

你可以简单地做:

X_norm = (X .- mean(X,1)) ./ std(X,0,1);
Run Code Online (Sandbox Code Playgroud)