Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于欧氏距离的数字分类_Java_Machine Learning_Artificial Intelligence_Euclidean Distance_Categorization - Fatal编程技术网

Java 基于欧氏距离的数字分类

Java 基于欧氏距离的数字分类,java,machine-learning,artificial-intelligence,euclidean-distance,categorization,Java,Machine Learning,Artificial Intelligence,Euclidean Distance,Categorization,我想对64维空间中表示的数字进行分类,该空间提供8X8像素字符图像。每个属性都是0到16之间的整数。我有20行64个值,加上最后一行,决定了类别。类别之前由UCI确定,但我想知道他们是如何获得每行的每个特定类别的。所以他们说他们用欧几里德距离来确定类别 我的问题是如何将欧几里德距离应用于64个值?我尝试在一行中使用以下公式(毕达哥拉斯定理)Math.sqrt(Math.pow(x2-x1)+Math.pow(y2-y1)),但结果太大,我不知道它代表什么。例如,对于第一行,我得到了1612,它是

我想对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+", ");
        }
    }
在此处输入代码
公共静态void main(字符串[]args)
{
int row[]=新int[64];
对于(int z=0;z
我的问题是如何将欧几里德距离应用于64个值

不需要。距离是两个对象之间的度量值,每个对象可以有64个值,但需要两个对象。特别是,欧几里德距离定义为

dist(x, y) = ||x-y||_2 = sqrt[ SUM_{i=1}^d (x_i - y_i)^2 ]
其中,
d
是维数,
x_i
表示
i
x
的第个维数

所以他们说他们用欧几里德距离来确定类别

他们说的不止这些,因为距离本身并没有定义任何东西,除了……距离。另一方面,类别是一个抽象的对象,它可能由某个特征点(质心)定义,然后你用最近的(根据给定的距离)质心指定一个类别

我的问题是如何将欧几里德距离应用于64个值

不需要。距离是两个对象之间的度量值,每个对象可以有64个值,但需要两个对象。特别是,欧几里德距离定义为

dist(x, y) = ||x-y||_2 = sqrt[ SUM_{i=1}^d (x_i - y_i)^2 ]
其中,
d
是维数,
x_i
表示
i
x的第个维数

所以他们说他们用欧几里德距离来确定类别


他们说的不止这些,因为距离本身并没有定义任何东西,除了……距离。另一方面,类别是一个抽象的对象,它可能由某个特征点(质心)定义,然后你用最近的(根据给定的距离)质心指定一个类别。

See or.See or。好的,“SUM_{i=1}^d”是什么这表示?正如你所说,d是维度,但i=1是什么?这意味着从i等于1到d的和,因此用java a
表示(int i=0;iokay我明白了。我之前试过第一行和第十行,得到了23.7。这个数字是多少,我如何从中获得类别?正如我所说的-你没有。这只是两个点之间的距离。这并没有对任何东西进行分类。你需要一些基于距离的分类方法。距离本身并没有说明任何问题“两个对象的区别有多大”好的,但“SUM_{i=1}^d”代表什么?正如你所说的,d是维度,但i=1是什么?这意味着从i等于1到d的和,因此用java a
(int i=0;iokay我明白了。我之前在第一行和第十行都试过了,我得到了23.7。这个数字是多少,我如何从中获得类别?正如我所说的-你没有。这只是两点之间的距离。这并没有对任何东西进行分类。你需要一些基于距离的分类方法。距离本身并没有说明什么。”两个物体的区别有多大?”