面试(10):欧氏距离和曼哈顿距离、K-means和EM算法对比

欧氏距离和曼哈顿距离、K-means和EM算法对比

    • 1、欧式距离和曼哈顿距离
    • 2、K-means和EM算法比较

1、欧式距离和曼哈顿距离

  欧式距离用于计算两点或多点之间的距离。
d ( x , y ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + ⋯ + ( x n − y n ) 2 = ∑ i = 1 n ( x i − y i ) 2 d(x, y) =\sqrt{\left(x_{1}-y_{1}\right)^{2}+\left(x_{2}-y_{2}\right)^{2}+\cdots+\left(x_{n}-y_{n}\right)^{2}}=\sqrt{\sum_{i=1}^{n}\left(x_{i}-y_{i}\right)^{2}} d(x,y)=(x1y1)2+(x2y2)2++(xnyn)2 =i=1n(xiyi)2
  缺点:它将样本的不同属性(即各指标或各变量量纲)之间的差别等同看待,这一点有时不能满足实际要求。比如年龄和学历对工资的影响,将年龄和学历同等看待;收入单位为元和收入单位为万元同等看待。
  标准化欧式距离,将属性进行标准化处理,区间设置在[0,1]之间,减少量纲的影响。
d = ∑ i = 1 N ( x i − y i ) 2 s i 2 d=\sqrt{\sum_{i=1}^{N} \frac{\left(x_{i}-y_{i}\right)^{2}}{s_{i}^{2}}} d=i=1Nsi2(xiyi)2
  曼哈顿距离:欧式几何空间两点之间的距离在两个坐标轴的投影。
d 12 = ∑ k = 1 n ∣ x 1 k − x 2 k ∣ \mathrm{d}_{12}=\sum_{k=1}^{n}\left|\mathrm{x}_{1 k}-x_{2 k}\right| d12=k=1nx1kx2k
  曼哈顿距离和欧式距离一般用途不同,无相互替代性。在kmeans和knn算法,我们一般用欧式距离,有时也用曼哈顿距离。

2、K-means和EM算法比较

K-means

  • 将样本分成K类
  • SSE代表所有样本的聚类误差,让聚类误差达到最小
  • 随机选定聚类中心,计算距离,让样本归类,也就是确定每个样本的隐含类别y
  • 不断迭代,确定使得SSE达到最小的每个样本对应的隐含类别y

EM算法
对一些观察不到的数据(隐藏变量)先根据假设进行猜测,把不知道的东西全部猜出来,假设全部知道了隐藏变量,更新假设不断迭代,最后就得到了一个可以解释整个数据的假设。
EM算法的思想:E步就是估计隐含类别y的期望值,M步调整其他参数使得在给定类别y的情况下,极大似然估计P(x,y)能够达到极大值。然后在其他参数确定的情况下,重新估计y,周而复始,直至收敛。

你可能感兴趣的:(算法梳理,面试)