数据归一化处理公式:x=(x-min)/(max-min)
代码如下:
public class AlgorithmService {
/**
* 数据归一化处理
* @param dataArray 需要处理的数据
* @param map 每列数据的最大值和最小值
* @return 返回归一化后的数据
*/
public double[][] goOneDeal(double[][] dataArray, Map<String, double[]> map) {
int rowLen = dataArray.length;
int colLen = dataArray[0].length;
double[] max = map.get("max");
double[] min = map.get("min");
double[][] inputArray = new double[rowLen][colLen];
for (int i = 0; i < rowLen; i++) {
double[] tempArr = dataArray[i];
double[] tempArr2 = new double[colLen];
for (int j = 0; j < colLen; j++) {
double d = (max[j]==min[j])?0:(tempArr[j] - min[j]) / (max[j] - min[j]);
tempArr2[j] = Double.parseDouble(String.format("%.5f", d));
}
inputArray[i] = tempArr2;
}
return inputArray;
}
}