4-1

2019-10-19

KNN - K近邻算法 - K-Nearest Neighbors

本质:如果两个样本足够相似,它们有更高的概率属于同一个类别

代码实现KNN算法

假设原始训练数据如下:

待求数据如下:

数据准备

效果:

KNN过程

欧拉距离

假设有a, b两个点,平面中两个点之间的欧拉距离为:

(x(a)x(b))2+(y(a)y(b))2\sqrt {(x^{(a)}-x^{(b)})^2+(y^{(a)}-y^{(b)})^2}

立体中两个点的欧拉距离为:

(x(a)x(b))2+(y(a)y(b))2+(z(a)z(b))2\sqrt {(x^{(a)}-x^{(b)})^2+(y^{(a)}-y^{(b)})^2+(z^{(a)}-z^{(b)})^2}

任意维度中两个点的欧拉距离为:

(X1(a)X1(b))2+(X2(a)X2(b))2+...+(Xn(a)Xn(b))2\sqrt {(X^{(a)}_1-X^{(b)}_1)^2+ (X^{(a)}_2-X^{(b)}_2)^2+...+(X^{(a)}_n-X^{(b)}_n)^2}

i=1n(Xi(a)Xi(b))2\sqrt {\sum^n_{i=1} (X^{(a)}_i-X^{(b)}_i)^2}

其中上标a, b代码第a, b个数据。下标1, 2代码数据的第1, 2个特征

代码如下:

运行结果:predict_y = 1

Last updated