class StandardScalerPreprocessor implements Preprocessor<K, V>, DeployableObject {

    @Override public LabeledVector apply(K k, V v) {
        LabeledVector res = basePreprocessor.apply(k, v);

        assert res.size() == means.length;

        for (int i = 0; i < res.size(); i++)
            res.set(i, (res.get(i) - means[i]) / sigmas[i]);

        return res;
    }

    public  StandardScalerPreprocessor(double[] means, double[] sigmas,
                                      Preprocessor<K, V> basePreprocessor);

}