首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用java规范双数组

用java规范双数组
EN

Stack Overflow用户
提问于 2016-04-19 06:09:13
回答 1查看 4.9K关注 0票数 0

我在Java中有一个双数组数据集。我想对数据进行规范化以进行数据聚类,用于集群的数据规范化功能在这里normalization for data cluster中。

输入= {{-1.3,2.4,5.3.2.1,0.7},{6.4,-3.3,1.9.4.1,0.3}

下面是我已经尝试过的代码,但我不确定它是否是正确的规范化方法

代码语言:javascript
复制
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]));
        }
    }
} 
EN

回答 1

Stack Overflow用户

发布于 2019-08-05 10:46:35

这是我的方法。它是O(n^2),但是它仍然有效。

代码语言:javascript
复制
    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;

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36709898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档