package org.neuroph.samples.norm;
import org.neuroph.core.data.DataSet;
import org.neuroph.core.data.DataSetRow;
import org.neuroph.util.data.norm.Normalizer;
public class ZeroMeanNormalizer implements Normalizer {
double[] mean;
public void normalize(DataSet dataSet) {
double[] maxInput = DataSetStatistics.calculateMaxByColumns(dataSet);
double[] minInput = DataSetStatistics.calculateMinByColumns(dataSet);
double[] meanInput = DataSetStatistics.calculateMean(dataSet);
for (DataSetRow row : dataSet.getRows()) {
double[] normalizedInput = row.getInput();
for (int i = 0; i < dataSet.getInputSize(); i++) {
double divider = maxInput[i] - minInput[i] == 0 ? 1 : maxInput[i] - minInput[i] ;
normalizedInput[i] = (normalizedInput[i] - meanInput[i]) / divider;
}
row.setInput(normalizedInput);
}
}
}
Ads help maintain this website.