Matlab 最近平均分类的距离计算

Matlab 最近平均分类的距离计算,matlab,machine-learning,nearest-neighbor,euclidean-distance,centroid,Matlab,Machine Learning,Nearest Neighbor,Euclidean Distance,Centroid,格林廷斯 如何计算需要执行多少距离计算才能使用最近均值分类器对IRIS数据集进行分类 我知道IRIS数据集有4个特征,每个记录都根据3个不同的标签进行分类 根据一些教科书,计算方法如下: 然而,我对这些不同的符号感到迷茫,这个等式意味着什么。例如,方程式中的s^2是什么?大多数机器学习教科书都使用这种符号s在这种情况下是训练集的样本标准偏差。假设每个类别都有相同的标准偏差是很常见的,这就是为什么每个类别都被赋予相同的值 然而,你不应该注意这一点。最重要的一点是当优先级相等时。这是一个公平的假设

格林廷斯

如何计算需要执行多少距离计算才能使用最近均值分类器对IRIS数据集进行分类

我知道IRIS数据集有4个特征,每个记录都根据3个不同的标签进行分类

根据一些教科书,计算方法如下:


然而,我对这些不同的符号感到迷茫,这个等式意味着什么。例如,方程式中的s^2是什么?

大多数机器学习教科书都使用这种符号
s
在这种情况下是训练集的样本标准偏差。假设每个类别都有相同的标准偏差是很常见的,这就是为什么每个类别都被赋予相同的值

然而,你不应该注意这一点。最重要的一点是当优先级相等时。这是一个公平的假设,这意味着您希望数据集中每个类的分布大致相等。通过这样做,分类器简单地归结为找到从训练样本
x
到由其平均向量表示的每个其他类的最小距离

你怎么计算这个很简单。在您的培训集中,您有一组培训示例,每个示例都属于特定的类。对于iris数据集,您有三个类。您可以找到每个类的平均特征向量,它们将分别存储为
m1、m2
m3
。之后,要对一个新的特征向量进行分类,只需找到从该向量到每个平均向量的最小距离。距离最小的那一个就是你要分配的类

既然您选择MATLAB作为语言,请允许我用实际的iris数据集进行演示

load fisheriris; % Load iris dataset
[~,~,id] = unique(species); % Assign for each example a unique ID
means = zeros(3, 4); % Store the mean vectors for each class
for i = 1 : 3 % Find the mean vectors per class
    means(i,:) = mean(meas(id == i, :), 1); % Find the mean vector for class 1
end

x = meas(10, :); % Choose a random row from the dataset

% Determine which class has the smallest distance and thus figure out the class
[~,c] = min(sum(bsxfun(@minus, x, means).^2, 2));
代码相当直截了当。加载到数据集中,由于标签位于单元格数组中,因此创建一组新的标签(枚举为1、2和3)非常方便,这样就可以很容易地分离出每个类的训练示例并计算它们的平均向量。这就是
for
循环中发生的事情。完成后,我从训练集中选择一个随机数据点,然后计算从该点到每个平均向量的距离。我们选择距离最小的班级

如果要对整个数据集执行此操作,可以这样做,但这需要对维度进行一些排列

data = permute(meas, [1 3 2]);
means_p = permute(means, [3 1 2]);
P = sum(bsxfun(@minus, data, means_p).^2, 3);
[~,c] = min(P, [], 2);
data
means\u p
是转换后的特征和平均向量,其方式是具有单重维度的3D矩阵。第三行代码计算向量化的距离,以便最终生成一个2D矩阵,其中每行
i
计算从训练示例
i
到每个平均向量的距离。我们最终找到了每个例子中距离最小的类

为了获得准确度,我们可以简单地计算正确分类总次数的分数:

>> sum(c == id) / numel(id)

ans =

    0.9267
使用这个简单的最近均值分类器,我们的准确率为92.67%。。。不错,但你可以做得更好。最后,要回答您的问题,您需要
K*d
距离计算,其中
K
是示例数,
d
是类数。通过检查上面的逻辑和代码,您可以清楚地看到这是必需的