[英]Normalize double array in java
我在Java中有一个double arraylist数据集。 我想归一化数据以进行数据聚类,归一化数据以进行聚类的功能在这里归一化数据聚类
输入= {{--1.3,2.4,5.3.2.1,0.7},{6.4,-3.3,1.9.4.1,0.3}}
下面是到目前为止我尝试过的代码,但是我不确定这是正确的规范化方法
public void getMinMax(){
min = new double[input.size()];
max = new double[input.size()];
for(int i=0; i < input.size(); i++){
min[i] = 0;
max[i] = 0;
for(int j = 0; j < input.get(i).size(); j++){
if(input.get(i).get(j) >= max[i]){
max[i] = input.get(i).get(j);
} else if(input.get(i).get(j) <= min[i]){
min[i] = input.get(i).get(j);
}
}
}
}
private void normalizeMaxMin() {
for(int i=0; i < input.size(); i++){
for(int j = 0; j < input.get(i).size(); j++){
input.get(i).set(j, (input.get(i).get(j) - min[i]) / (max[i] - min[i]));
}
}
}
这是我的方法。 它是O(n ^ 2),但仍然有效。
public static double[][] normalize(double[][] arr){
min = Double.MAX_VALUE;
max = Double.MIN_VALUE;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
max = Math.max(arr[i][j],max);
min = Math.min(arr[i][j],min);
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = (arr[i][j] - min)/(max-min);
}
}
return arr;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.