【发布时间】:2016-05-24 02:12:52
【问题描述】:
我想对在 64 维空间中表示的数字进行分类,该空间提供 8X8 像素的字符图像。每个属性都是 0...16 的整数。我有 20 行,每行 64 个值,最后加上一个确定类别的值。该类别之前由 UCI 确定,但我想知道他们如何获得每一行的每个特定类别。所以他们说他们使用欧几里得距离来确定类别。
我的问题是如何将欧几里得距离应用于 64 个值?我尝试在一行中使用以下公式(毕达哥拉斯定理) Math.sqrt(Math.pow(x2-x1)+Math.pow(y2-y1)) 但结果太大,我不知道那代表什么。例如,对于第一行,我得到 1612,即 40.15 的平方根
这是我的流程代码:
enter code here
public static void main(String[]args)
{
int row[]= new int[64];
for(int z=0;z<64;z++)
{
row[z]=digits[0][z]; //get the first row and store it
}
double result = 0;
for(int z=0;z<64;z+=2)
{
double distance = Math.pow(row[z]-row[z+1],2);
result = result+distance; //add distance each time
System.out.print(result+", ");
}
}
第一行数字是这样的: 0,0,5,13,9,1,0,0,0,0,13,15,10,15,5,0,0,3,15,2,0,11,8,0,0, 4,12,0,0,8,8,0,0,5,8,0,0,9,8,0,0,4,11,0,1,12,7,0,0,2, 14,5,10,12,0,0,0,0,6,13,10,0,0,0,0
我不确定这是否有意义,但如果有不清楚的地方请询问。 提前致谢。
【问题讨论】:
标签: java machine-learning artificial-intelligence euclidean-distance categorization