• k-nn算法


    1,K-NN算法的理解:

    第一,对n维未知量xεRn , 测试其label

    第二,对已知训练数据y,计算x到y每个row的距离

    第三,选出k个最短的距离,根据这k个训练数据label的投票,确定x的label

    import numpy as np
    def knn_cla(train_data,train_label,test_data,k=1):
        '''k nearest negibor algorithm'''
        row_train = train_data.shape[0]#获取测试数据的维度
        pred_label = list()#将要输出的label list
        for i,test_data in enumerate(test_data):#对个test item
            dis=[]
            for train_item in train_data:
                dis.append(distance.euclidean(test_item,train_item))#计算此text item到每个train exaple的欧几里得距离
            nearest_ind = range(row_train)#产生0-rows的数据
            sorted(nearest_ind,key=lambda x:dis[x])#对dis列表进行排序,最终结果保存到nearest_ind
            nearest_label = [train_label[nearest_ind[x]] for x in range(k)]#将前k个最短距离的label加入到list当中
            pred_label.append(Counter(nearest_label).most_common()[0][0])#投票选取最普遍的label
        return np.array(pred_label)
    never never wait
  • 相关阅读:
    git
    浏览器喧嚷过程
    B/S架构与C/S架构
    simpleDateFormat
    oracle中case when的用法
    Java程序利用Jdbc连接数据库
    List 和 Set与Map
    队列和栈
    toString方法分析
    java中的构造器
  • 原文地址:https://www.cnblogs.com/lixiangfu/p/14815149.html
Copyright © 2020-2023  润新知