机器学习算法
K-邻近算法
就是通过你的“邻居”来判断你属于哪一个类别
实现过程
- 实例化一个估计器
- 使用fit进行训练
计算距离常用方法
-
欧氏距离
-
二维平面上点a(x1,y1)与b(x2,y2)间的欧式距离
d12= ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 \sqrt{(x_1-x_2)^2+(y_1-y_2)^2} (x1−x2)2+(y1−y2)2
三维空间点 a ( x 1 , y 1 , z 1 ) 与 b ( x 2 , y 2 , z 2 ) a(x_1,y_1,z_1)与b(x_2,y_2,z_2) a(x1,y1,z1)与b(x2,y2,z2)间的距离
d12 = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 + ( z 1 − z 2 ) 2 \sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2} (x1−x2)2+(y1−y2)2+(z1−z2)2
n维空间a(x11,x12,…x1n)与b(x21x22,…x2n)间的欧式距离
d 12 = ∑ k = 1 n ( x 1 k − x 2 k ) 2 d_{12}= \sqrt{\sum_{k = 1}^n(x_{1k}-x_{2k})^2} d12=∑k=1n(x1k−x2k)2 -
曼哈顿距离
二维空间平面两点 a ( x 1 , y 1 ) 与 b ( x 2 , y 2 ) a(x_1,y_1)与b(x_2,y_2) a(x1,y1)与b(x2,y2)间的曼哈顿距离
d 12 = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ d_{12} = |x_1 - x_2| + |y_1- y_2| d12=∣x1−x2∣+∣y1−y2∣
n维空间点 a ( x 11 , x 12 , . . . x 1 n ) 与 b ( x 21 , x 22 , . . . x 2 n ) a(x_{11},x_{12},...x_{1n})与b(x_{21},x_{22},...x_{2n}) a(x11,x12,...x1n)与b(x21,x22,...x2n)的曼哈顿距离
d 12 = ∑ k = 1 n ∣ x 1 k − x 2 k ∣ d_{12} =\sum_{k = 1}^n|x_{1k}-x_{2k}| d12=∑k=1n∣x1k−x2k∣ -
切比雪夫距离
二维平面两点 a ( x 1 , y 1 ) 与 b ( x 2 , y 2 ) a(x_1,y_1)与b(x_2,y_2) a(x1,y1)与b(x2,y2)间的切比雪夫距离
d 12 = m a x ( ∣ x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ ) d_{12} =max(|x_1-x_2|,|y_1-y_2|) d12=max(∣x1−x2∣,∣y1−y2∣)
n维空间点 a ( x 11 , x 12 , . . . x 1 n ) 与 b ( x 21 , x 22 , . . . x 2 n ) a(x_{11},x_{12},...x_{1n})与b(x_{21},x_{22},...x_{2n}) a(x11,x12,...x1n)与b(x21,x22,...x2n)的切比雪夫距离
d 12 = m a x ( ∣ x 1 i − x 2 i ∣ ) d_{12} =max(|x_{1i}-x_{2i}|) d12=max(∣x1i−x2i∣) -
闵可夫斯距离
闵氏距离不是一种距离,是对多个距离度量公式的概括表达
两个n维变量 a ( x 11 , x 12 , . . . x 1 n ) 与 b ( x 21 , x 22 , . . . x 2 n ) a(x_{11},x_{12},...x_{1n})与b(x_{21},x_{22},...x_{2n}) a(x11,x12,...x1n)与b(x21,x22,...x2n)间的闵氏距离为
d 12 = p ∑ k = 1 n ∣ x 1 k − x 2 k ∣ p d_{12} =p\sqrt{\sum_{k=1}^n|x_{1k}-x_{2k}|^p} d12=p∑k=1n∣x1k−x2k∣p
其中p是一个变参数
当p=1时,就是曼哈顿距离。
当p=2时,就是欧式距离。
当p= ∞ \infty ∞时,就是切比雪夫距离
根据p的不同,闵氏距离可以表示某一类距离 -
标准欧式距离
假设样本集X的均值为m,标准差为s,x的标准化表示为
x ∗ = x − m s x^* =\frac{x-m}s x∗=sx−m
标准化欧式距离公式
d 12 = ∑ k = 1 n ( x 1 k − x 2 k s k ) d_{12} =\sqrt{\sum_{k=1}^n(\frac{x_{1k}-x_{2k}}{s_k})} d12=∑k=1n(skx1k−x2k) -
余弦距离
二维空间中向量 A ( x 1 , y 1 ) 与 向 量 B ( x 2 , y 2 ) A(x_1,y_1)与向量B(x_2,y_2) A(x1,y1)与向量B(x2,y2)的夹角余弦公式:
余弦距离
c o s θ = x 1 x 2 + y 1 y 2 x 1 2 + y 1 2 x 2 2 + y 2 2 cos\theta =\frac{x_1x_2+y_1y_2}{\sqrt{x_1^2+y_1^2}\sqrt{x_2^2+y_2^2}} cosθ=x12+y12x22+y22x1x2+y1y2
两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦为:
余弦距离
即:
c o s θ = a ⋅ b ∣ a ∣ ∣ b ∣ cos\theta =\frac{a\cdot b}{|a| |b|} cosθ=∣a∣∣b∣a⋅b
余弦距离 -
汉明距离
两个长度相等的字符串 s 1 与 s 2 s_1与s_2 s1与s2的汉明距离为将其中一个变为另外一个所需要做的最小的字符串替换的次数。
汉明距离即使一个字符串到另一个字符串需要变换几个字母,进行统计 -
杰卡德距离
通过并集进行统计 -
马氏距离
通过分布进行计算
-