zoukankan      html  css  js  c++  java
  • Machine Learning in Action-chapter2-k近邻算法

    一.numpy()函数

       1.shape[]读取矩阵的长度

       例:

    import numpy as np
    x = np.array([[1,2],[2,3],[3,4]])
    print x.shape         //输出行列数 (3,2)
    print x.shape[0]    //输出行数 3
    print x.shape[1]    //输出列数 2
    

    2.tile()函数

    形式为tile(A,reps)

    reps的数字从后往前分别对应A的第N个维度的重复次数。如tile(A,2)表示A的第一个维度重复2遍,tile(A,(2,3))表示A的第一个维度重复3遍,然后第二个维度重复2遍,tile(A,(2,2,3))表示A的第一个维度重复3遍,第二个维度重复2遍,第三个维度重复2遍。

    例:

    A=[1,2]
    print '-----------tile(A,2)--------------'
    print tile(A,2)
    print '-----------tile(A,(2,2))----------'
    print tile(A,(2,2))
    print '-----------tile(2,2,3)------------'
    print tile(A,(2,2,3))
    

      输出结果为:

           

    3.sum()函数

    没有axis参数表示全部相加,axis=0表示按列相加,axis=1表示按照行的方向相加

    例:

    import numpy as np
    x = np.array([[1,2,3],[4,5,6]])
    k = x.sum()
    k0 = x.sum(axis=0)
    k1 = x.sum(axis=1)
    print k
    print k0
    print k1
    

      输出结果为:

       

    4.argsort()函数

    返回的是数组值从小到大的索引值

    例:>>> x = np.array([3, 1, 2])
         >>> np.argsort(x)
         array([1, 2, 0])

    -------------------------------k近邻算法源代码---------------------------------

    def classify0(inX, dataSet, labels, k):
        dataSetSize = dataSet.shape[0]
        diffMat = tile(inX, (dataSetSize, 1)) - dataSet
        sqDiffMat = diffMat ** 2
        sqDistances = sqDiffMat.sum(axis=1)
        distances = sqDistances ** 0.5
        sortedDistIndicies = distances.argsort()
        classCount = {}
        for i in range(k):
            voteIlabel = labels[sortedDistIndicies[i]]
            classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1
        sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True)
    #sortedClassCount = sorted(classCount.iteritems(), key=lambda classCount:classCount[1], reverse=True) return sortedClassCount[0][0]

      

    inX:输入向量

    dataSet:训练样本

    labels:标签向量

  • 相关阅读:
    Hive split 分割函数
    mysql in 方法查询 按照 in队列里的顺序排序
    根据身份证前2位判断属于哪个省
    java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
    java中的三种取整函数
    mysql show status 参数解析
    java获取多个汉字的拼音首字母
    sql 的积累
    Solr根据参考点的坐标来返回范围内的小区和距离
    docker中使用gpu(darknet-yolo,tensorflow)
  • 原文地址:https://www.cnblogs.com/shanlizi/p/6848973.html
Copyright © 2011-2022 走看看