code: public double calculateReconstructionErrorPerRowData(double [] original, double [] reconstructed){
      assert (original != null && original.length > 0) && (reconstructed != null && reconstructed.length > 0);
      assert original.length == reconstructed.length;
      int numStartIndex = original.length - this._nums;
      double norm;
      double l2 = 0;
      for (int i = 0; i < original.length; i++) {
        norm = (this._normmul != null && this._normmul.length > 0 && this._nums > 0 && i >= numStartIndex) ? this._normmul[i-numStartIndex] : 1;
        l2 += Math.pow((reconstructed[i] - original[i]) * norm, 2);
      }
      return  l2 / original.length;
    }
docs: Calculates average reconstruction error (MSE).
  Uses a normalization defined for the numerical features of the trained model.
  @return average reconstruction error = ||original - reconstructed||^2 / length(original)