K近邻算法(一)

K 近邻算法思想:

       寻找该点周围最近的K个点。根据这K 个点的类别来判断该点的类别;

       核心: 数据归一化。(在必要的时候必须进行数据归一化处理,防止某一特征在计算数据时占比较重)

                  计算欧拉距离 。 使用python中 np的向量相减后的平方再开根号

                                           

distances = []
for x_train in X_train:
    d = sqrt(np.sum((x_train - x) ** 2))
    distances.append(d)

distances = [sqrt(np.sum((x_train-x)**2)) for x_train in X_train]

                比较欧拉距离。 获取距离由近到远的索引下标:

nearest = np.argsort(distances)   #返回的是从小到大的对应索引

                选择K个最近的,并统计类型。

topK_y = [y_train[i] for i in nearest[:k]]       #选前k个
c = Counter(topK_y)       #统计类型
print(c.most_common(1)[0][0])   #输出计数最高的那个元组中的值

 

posted @ 2018-08-01 12:39  Lucky、Dog  阅读(360)  评论(0编辑  收藏  举报