• Mahout系列之----距离度量


       x = (x1,...,xn) 和y = (y1,...,yn) 之间的距离为

      (1)欧氏距离   EuclideanDistanceMeasure


    d(x,y):=sqrt{(x_1-y_1)^2 + (x_2-y_2)^2 + cdots + (x_n-y_n)^2} = sqrt{sum_{i=1}^n (x_i-y_i)^2}

      (2)曼哈顿距离  ManhattanDistanceMeasure

        left|x_1 - x_2
ight| + left|y_1 - y_2
ight|.


    (3)马氏距离MahalanobisDistanceMeasure

    马氏距离是由印度统计学家马哈拉诺比斯提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度。 对于一个均值为mu = ( mu_1, mu_2, mu_3, dots , mu_p )^T,协方差矩阵为Sigma的多变量向量x = ( x_1, x_2, x_3, dots, x_p )^T,其马氏距离为

    D_M(x) = sqrt{(x - mu)^T Sigma^{-1} (x-mu)}

    马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Sigma的随机变量 vec{x} vec{y}的差异程度:

     d(vec{x},vec{y})=sqrt{(vec{x}-vec{y})^TSigma^{-1} (vec{x}-vec{y})}

    如果协方差矩阵为单位矩阵,马氏距离就简化为欧氏距离;如果协方差矩阵为对角阵,其也可称为正规化的欧氏距离

     d(vec{x},vec{y})=sqrt{sum_{i=1}^p  {(x_i - y_i)^2 over sigma_i^2}}

    其中sigma_ix_i的标准差。


     (4)余弦距离  CosineDistanceMeasure

    mathbf{a}cdotmathbf{b}=left|mathbf{a}
ight|left|mathbf{b}
ight|cos	heta

    	ext{similarity} = cos(	heta) = {A cdot B over |A| |B|} = frac{ sumlimits_{i=1}^{n}{A_i 	imes B_i} }{ sqrt{sumlimits_{i=1}^{n}{(A_i)^2}} 	imes sqrt{sumlimits_{i=1}^{n}{(B_i)^2}} }

     (5)汉明距离

    在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。 例如:

       10111011001001 之间的汉明距离是 2。

       21438962233796 之间的汉明距离是 3。

       "toned" 与 "roses" 之间的汉明距离是 3。



     (6)平方欧几里德距离度量  SquaredEuclideanDistanceMeasure

         http://www.r66r.net/wp-content/uploads/2013/08/20130807154200.jpg

    (7)Tanimoto距离  TanimotoDistanceMeasure

         20130807155056

    (8)加权距离度量  WeightedDistanceMeasure ,具体实现有:WeightedEuclideanDistanceMeasure和WeightedManhattanDistanceMeasure

          用欧几里德距离和曼哈顿距离实现。加权距离度量是Mahout的高级特征,它能让你在不同维上赋予不同的权重,以此对距离度量信息产生影响,WeightedDistanceMeasure在向量格式化中需要序列化为文件。变量对距离的影响是不一样的,通过权值来确定。

    (9)切比雪夫距离  ChebyshevDistanceMeasure


       

  • 相关阅读:
    初识echarts
    深浅拷贝的理解
    react基本语法及组件
    webpack使用
    网上面试资料整理
    封装原生promise函数
    vue路由懒加载及组件懒加载
    译文---C#堆VS栈(Part Four)
    译文---C#堆VS栈(Part Three)
    译文---C#堆VS栈(Part Two)
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205317.html
Copyright © 2020-2023  润新知