机器学习实战 2.1 KNN

作者: 夹小欣 | 来源:发表于2017-10-27 10:32 被阅读12次

knn的思想是:分别计算每一个测试样本和所有训练样本的特征距离,选取k个最近的训练样本,对他们的分类进行投票,k个样本中所属类别最多的,作为测试样本的类别
numpy tile函数:A重复B次

tile([1,2,3],(m,n)) #[1,2,3]重复m行n列
ipdb> tile([1,2,3],(2,1))
array([[1, 2, 3],
       [1, 2, 3]])

python argsort()函数返回排序后的索引
python dict.get(key, default=None),若不存在则返回default值
python sorted可以自定义比较函数、多列比较,参考博客
python operate.itemgetter(1,4) 返回值是函数,表示先比较第2列,再比较第5列
np.array 的加减乘除是在元素一级

#每次只能输入一个待测数据
#多个待测数据只能用循环
def knn(testX, trainX, labels, k):
#距离用欧式距离
    x0_x1 = tile(testX,(trainX.shape[0],1))-trainX
    x0_x1_2 = x0_x1 ** 2
    x0_x1_2_sqrt = x0_x1_2 **0.5
#选出最近的k个,从小到大排序的前k个
    k_index = x0_x1_2_sqrt.argsort()
#投票机制,计算前k个中出现的labels次数,将当前值分类到label最多的当中。
    dic = {}
    for i in range(k):
        dic[lables[i]]=dic.get(lables[i],0)+1
    sortlables =  sorted(dic.iteritems(),key=operator.itemgetter(1),reverse=True)
return sortlables[0][0]

相关文章

  • 机器学习实战 2.1 KNN

    knn的思想是:分别计算每一个测试样本和所有训练样本的特征距离,选取k个最近的训练样本,对他们的分类进行投票,k个...

  • 机器学习实战-knn

    机器学习实战笔记-knn算法实战 本文内容源于《机器学习实战》一书,主要介绍了knn(k-nearest neig...

  • <<机器学习实战>>---KNN

    理论 K-近邻算法是一种基于计算向量距离的方法来判断的算法,具体描述见书,下面把我这次学习到的python语法及代...

  • 《机器学习实战》kNN

    k-邻近算法 基本样例 约会网站示例 手写识别系统

  • 机器学习实战-KNN

    KNN (k-近邻算法) 其工作原理是: 存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都有存在标签...

  • 机器学习实战-KNN

    工作原理:存在一个样本数据集合,也称作训练样本集,样本集中每个数据都存在标签,即已知样本集中每一数据与其所属分类的...

  • 机器学习实战——KNN

    李航老师书寻找目标向量X最近的K个样本。通过KD树 实战通过线性搜索的方式(排序搜索)

  • 机器学习实战-knn

    knn是一种分类算法。使用knn需要一堆有标签的数据集,数据集记录了每个样本的每个特征,特征的值和它的标签。举个例...

  • 机器学习实战

    机器学习实战第二章kNN: http://blog.csdn.net/fenfenmiao/article/det...

  • 01-kNN算法实战-(机器学习实战)

    最近在看机器学习实战这本书。刚开始看kNN算法,并写了些程序,分享下一些感悟和细节。 什么是kNN kNN中文又称...

网友评论

    本文标题:机器学习实战 2.1 KNN

    本文链接:https://www.haomeiwen.com/subject/zwgfpxtx.html