Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 用k近邻搜索代替矩阵的单元格?_Algorithm_Matlab_Classification_Nearest Neighbor_Knn - Fatal编程技术网

Algorithm 用k近邻搜索代替矩阵的单元格?

Algorithm 用k近邻搜索代替矩阵的单元格?,algorithm,matlab,classification,nearest-neighbor,knn,Algorithm,Matlab,Classification,Nearest Neighbor,Knn,我想找出一些数据集之间的欧几里德距离。对于每个班级,我有大约50个学习或培训样本和5个测试样本。问题是每个样本的数据都存储在单元格中,并且是m*n格式,而不是首选的1*n格式 我看到matlab有一个内置函数,用于使用欧几里德距离计算k个最近邻。但问题是,它希望样本以行和列的形式出现。当提供单元格中的数据时,会出现错误 是否有必要以我的数据格式进行分类?或者我更愿意将它们转换为一维格式(可能通过使用某种降维?) 假设有5个类/模型,每个类/模型由大小为32*N的单元格表示,下面是Matlab的屏

我想找出一些数据集之间的欧几里德距离。对于每个班级,我有大约50个学习或培训样本和5个测试样本。问题是每个样本的数据都存储在单元格中,并且是
m*n
格式,而不是首选的
1*n
格式

我看到matlab有一个内置函数,用于使用欧几里德距离计算k个最近邻。但问题是,它希望样本以行和列的形式出现。当提供单元格中的数据时,会出现错误

是否有必要以我的数据格式进行分类?或者我更愿意将它们转换为一维格式(可能通过使用某种降维?)

假设有5个类/模型,每个类/模型由大小为
32*N
的单元格表示,下面是Matlab的屏幕截图。每个单元格代表大量训练图像的特征,因此单元格1代表人物1,以此类推

同样,现在我有需要识别的测试图像。每个测试图像的特征也在单元格中。所以我有10张未知的图像,它们的特征被提取并存储在细胞中。每个单元格都是单个未知图像的表示。下面是Matlab的屏幕截图,显示了它们的尺寸

可以看出,它们都有不同的尺寸。我知道这不是KNN的理想格式,因为这里的每个图像都由多维矩阵表示,而不是由一行变量表示。如何对这些数据执行欧几里德距离


谢谢

您希望如何使用单元格执行
k
近邻操作?你能给我们举个例子说明输入数据是什么,以及你希望如何测量距离吗?我在理解你的问题陈述时有点困难。我在理解上也有点困难。如果您的数据位于单元格中,但每个观测值都有相同数量的变量,则可以使用
cell2mat
转换为MxN矩阵,然后使用
knnsearch
(很乐意使用MxN矩阵)。如果您使用单元格是因为您没有统一的数据,那么很难定义(从而找到)最近邻。对不起,我应该更清楚,我已经添加了详细信息,希望这澄清了我的情况。您希望如何使用单元格执行
k
最近邻?你能给我们举个例子说明输入数据是什么,以及你希望如何测量距离吗?我在理解你的问题陈述时有点困难。我在理解上也有点困难。如果您的数据位于单元格中,但每个观测值都有相同数量的变量,则可以使用
cell2mat
转换为MxN矩阵,然后使用
knnsearch
(很乐意使用MxN矩阵)。如果您使用单元格是因为您没有统一的数据,那么很难定义(从而找到)最近的邻居。对不起,我应该更清楚,我已经添加了详细信息,希望这能澄清我的情况