【问题标题】:Vectorization of feature scaling特征缩放的矢量化
【发布时间】:2021-04-14 11:31:33
【问题描述】:

我想对具有 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); 

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

我通过与 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

【问题讨论】:

    标签: octave vectorization


    【解决方案1】:

    你可以这样做:

    X_norm = (X .- mean(X,1)) ./ std(X,0,1);
    

    【讨论】:

    • 非常感谢。
    • 如何把这个做成通用版?
    • 为什么意思是(X,1) ? help 说它沿着 DIM 1 找到了平均值,你能澄清一下这个概念吗?类似 std(X,0,1) ?
    • @faztp12 mean(x,1) 计算沿维度 1(即行)的平均值。换句话说,在操作结束时,通过对所有行取平均值,dim 1 将减少为单行(即单维)。与标准类似。但是,上述 sn-p 起作用的原因与 mean(X,1) vs mean(X) ... mean(X) 默认情况下沿维度 1 起作用。上面的 sn-p 工作并且您不必单独执行每一列的原因是因为 octave 支持broadcasting
    【解决方案2】:

    在交叉验证期间面临零除法问题。 这对我有用。

    mu = mean(X);
    X_norm = X - mu;
    sigma = std(X);
    
    % Skip zero div
    sigmaZeroIdx = sigma == 0;
    sigma(1,sigmaZeroIdx) = 1;
    
    X_norm = X_norm ./ sigma;
    

    【讨论】:

      【解决方案3】:

      我认为您可以为 N 大小的特征应用 for 循环。

      X_norm = X;
      mu = zeros(1, size(X, 2));
      sigma = zeros(1, size(X, 2));
      
      for iter = 1:num_iters;
        mu(1,iter) = mean(X_norm(:,iter)); 
        X_norm(:,iter) = X_norm(:,iter) .- mu(1,iter);
        
        sigma(1,iter) = std(X_norm(:,iter));  
        X_norm(:,iter) = X_norm(:,iter) ./ mu(1,iter); 
      end
      

      【讨论】:

        猜你喜欢
        • 2013-08-01
        • 2020-05-31
        • 2017-10-13
        • 2018-05-13
        • 2020-11-23
        • 1970-01-01
        • 2020-04-21
        • 1970-01-01
        • 2021-06-22
        相关资源
        最近更新 更多