【发布时间】:2016-08-11 03:08:08
【问题描述】:
我在 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}}
以下是我目前尝试过的代码,但我不确定它是否是正确的规范化方法
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]));
}
}
}
【问题讨论】:
-
我已经编辑了我的问题
-
您需要定义“规范化数据以进行数据聚类”。我们猜不出这意味着什么。无论如何,如果您不确定,为什么不测试您的代码并检查它是否符合您的预期?
-
@JBNizet 我已经编辑了我的问题
-
您应该改写它,以便它以您想要回答的问题结束。现在不清楚你在问什么。
-
我同意@MichaelDibbets:代码很丑。考虑一个方法
static void normalize(List<Double> list) { ... },它规范化一个单个列表,并用每个input.get(i)调用这个方法。它将更具可读性、更灵活和更高效。除此之外,没有“正确的”规范化。数据挖掘中最常见的是“Min-Max”和“Z-Max”(另见math.stackexchange.com/questions/362918/…)。你的是 Min-Max,乍一看它是正确的,但我没有测试/验证它。
标签: java arraylist normalization