Matlab计算夹角余弦与距离度量方法详解

需积分: 7 4 下载量 133 浏览量 更新于2024-08-21 收藏 372KB PPT 举报
本文主要介绍了如何在Matlab中计算夹角余弦以及各种距离度量方法,包括欧式距离、曼哈顿距离、切比雪夫距离、明可夫斯基距离、哈拉比斯距离、汉明距离、杰卡德距离、相关距离、hausdorf距离和Earth Mover’s distance。此外,还提供了关于欧氏距离的详细解释和在Matlab中的实现。 夹角余弦是衡量两个非零向量之间角度的一种方式,在机器学习和数据挖掘中,用于度量向量之间的相似性。计算夹角余弦可以使用Matlab的`pdist`函数,通过设置参数`'cosine'`来得到1减去夹角余弦的值。例如,给定向量集合`X = [1 0; 1 1.732; -1 0]`,使用`pdist(X, 'cosine')`会返回两两向量之间的夹角余弦差。 距离度量是评估两个对象之间相似性的另一种方法,下面是一些常见的距离度量: 1. **欧式距离**:是最直观的距离计算方式,适用于同一单位下的特征。对于二维空间的点a(x1, y1)和b(x2, y2),欧式距离公式为 `sqrt((x2-x1)^2 + (y2-y1)^2)`。在三维空间中,公式类似,增加了一个z轴的差值平方项。 2. **标准化欧氏距离**:考虑了数据尺度不一致的问题,通过去除每个特征的均值并除以其标准差进行归一化。 3. **曼哈顿距离**(Taxicab或City Block Distance):在每个维度上计算绝对差值的总和,如 `(|x2-x1| + |y2-y1|)`。 4. **切比雪夫距离**:每个维度上最大绝对差值,取所有维度上差值的最大值。 5. **明可夫斯基距离**:包含p-norm的一般形式,其中p是任意正实数。当p=1时,对应曼哈顿距离;当p=2时,对应欧式距离;当p趋于无穷大时,接近切比雪夫距离。 6. **哈拉比斯距离**:考虑了数据的协方差,适用于具有不同尺度和相关性的变量。 7. **汉明距离**:只适用于离散数据,计算两个等长字符串在相应位置上不同字符的数量。 8. **杰卡德距离**:衡量两个集合交集与并集大小的比例,常用于文本分析。 9. **相关距离**:基于特征之间的线性相关性计算,1-两向量相关系数的绝对值。 10. **hausdorf距离**:测量一个集合中的每个点到另一个集合的最近点的距离的最大值。 11. **Earth Mover’s Distance (EMD)**:也称为 Wasserstein 距离,主要用于图像处理和流形学习,模拟将一个分布“搬运”到另一个分布所需的最小努力。 在Matlab中,使用`pdist`函数可以计算多种距离,只需提供相应的距离类型作为参数。例如,计算欧式距离可使用`pdist(X, 'euclidean')`。对于更复杂的距离度量,可能需要自定义函数或利用其他工具箱功能。