Я хочу классифицировать цифры, которые представлены в 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
Я не уверен, что это имеет смысл, но если что-то непонятно, спрашивайте. Заранее спасибо.