![c66fbded5f8ea514c3e11918ab4acce3.png](https://i-blog.csdnimg.cn/blog_migrate/ec29d1d1285031bfee8a42908dba8318.jpeg)
今天介绍相似性度量方法。
明氏距离
明氏距离不是一种距离,而是一组距离,它的定义式为
![de4bd5a4ee23e1f7aa0582d5028174d0.png](https://i-blog.csdnimg.cn/blog_migrate/3f3879abc0352e56700981f5269b674b.jpeg)
当p=1时,就是曼哈顿距离,当p=2时,就是欧式距离,当p->无穷大时,就是切比雪夫距离。明氏距离有两个缺陷(1)将各个分量的量纲也就是单位,当作相同的看待。(2)没有考虑各个分量的分布(期望、方差等)可能是不同的。
曼哈顿距离
![4a985a7050b613bea5c4e37c246c097e.png](https://i-blog.csdnimg.cn/blog_migrate/3c217ba3106031675dddc3af924e7798.jpeg)
In [9]: vector1
Out[9]: array([1, 2, 3])
In [10]: vector2
Out[10]: array([4, 5, 6])
In [6]: np.linalg.norm(vector1-vector2, ord=1)
Out[6]: 9.0
欧式距离
![d53f38167ee59bc77e68c74eac9ddb07.png](https://i-blog.csdnimg.cn/blog_migrate/ea94d53afee842d57c4ffab367daa1cd.jpeg)
In [9]: vector1
Out[9]: array([1, 2, 3])
In [10]: vector2
Out[10]: array([4, 5, 6])
In [7]: np.linalg.norm(vector1-vector2)
Out[7]: 5.196152422706632
切比雪夫距离
![19da14daf8c76b17f64778538926afb5.png](https://i-blog.csdnimg.cn/blog_migrate/d40087ec9ee8fbc441b906a1ab6252e1.jpeg)
In [9]: vector1
Out[9]: array([1, 2, 3])
In [12]: vector2
Out[12]: array([4, 7, 5])
In [13]: np.linalg.norm(vector1-vector2, ord=np.inf)
Out[13]: 5.0
相关系数
相关系数是衡量随机变量A与B相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明A与B相关程度越高。当A与B线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。
![2aff570f159032b55ac4de186ba5aac9.png](https://i-blog.csdnimg.cn/blog_migrate/e4cc0fc9ddba0e5e4b099a2d8b50313d.jpeg)
In [23]: vector1
Out[23]: array([1, 2, 4])
In [24]: vector2
Out[24]: array([-2, -4, -8])
In [22]: np.corrcoef(vector1,vector2)
Out[22]:
array([[ 1., -1.],
[-1., 1.]])
In [26]: vector1
Out[26]: array([1, 2, 4])
In [27]: vector2
Out[27]: array([2, 4, 8])
In [28]: np.corrcoef(vector1, vector2)
Out[28]:
array([[1., 1.],
[1., 1.]])
余弦相似度
几何中夹角余弦可用来衡量两个向量方向的差异,借用这一概念来衡量样本向量之间的差异。定义为
![8b4cc27ad5e190e3755a86409c8edbce.png](https://i-blog.csdnimg.cn/blog_migrate/1ea045ec1e4157d808d74e2d624923f3.jpeg)
In [14]: vector1
Out[14]: array([1, 2, 3])
In [15]: vector2
Out[15]: array([4, 7, 5])
In [16]: np.dot(vector1,vector2)/(np.linalg.norm(vector1)*np.linalg.norm(vector2
...: ))
Out[16]: 0.9296696802013682
今天的内容就到这里了。从明天开始将介绍聚类的3个技术,到时我们的所有文本分类技术的基本概念就介绍完毕了。之后,我们将进行所有库函数的详细介绍,已经看到有人为我的有关sklearn的一篇文章点赞,将继续介绍到目前为止所有用过的sklearn函数。同时有可能加入HanLP以及nltk的相关内容,谢谢大家关注。
说一说最近对技术流行趋势的个人预测,未来几年,物联网可能会兴起来,嵌入式技术可能又会有一段热度期。