繁体   English   中英

在Java中规范化double数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM