• 大小: 505KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: Python
  • 标签: kNN  Python  机器学习  

资源简介

kNN基本分类器,以及两个运用kNN算法的实例:约会网站的配对和手写识别系统,包含数据源。

资源截图

代码片段和文件信息

#coding=utf-8
from numpy import *
import operator

def  createDataSet():
group = array([[1.0 1.1] [1.0 0.1] [0 0] [0 0.1][2.2 2.4] [2.1 2.0]])
labels = [‘A‘ ‘A‘ ‘B‘ ‘B‘ ‘C‘ ‘C‘]
return group labels

def classify0(inX dataSet labels k):
dataSetSize = dataSet.shape[0]   #矩阵行数
diffMat = tile(inX (dataSetSize 1)) - dataSet  #将数组inX重复(dataSetSize行1列)次
sqDiffMat = diffMat**2  #4*2矩阵每一个数都平方
sqDistances = sqDiffMat.sum(axis=1) #矩阵的每一行相加4*1
distances = sqDistances**0.5
sortedDistIndicies = distances.argsort()  #返回数组按从小打到排序的索引值
classCount = {}
for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]]  #距离最小的label依次返回
classCount[voteIlabel] = classCount.get(voteIlabel 0) + 1 #get(key default)返回key键的值,不存在则返回默认值
#sorted第一个参数是对象的元组列表,第二个参数是对象的第1个域值(比较项),第三个是逆序
sortedClassCount = sorted(classCount.items() key=operator.itemgetter(1) reverse=True)
return sortedClassCount[0][0] #最后取列表第一个元素的第一项,即是数量最多的类别

#Python引入了一个变量__name__,当文件是被调用时,__name__的值为模块名,当文件被执行时,__name__为‘__main__‘。
#加入if这句话,在其他函数调用此类时,下面的调试输出语句不执行
if __name__ == “__main__“: 
group labels = createDataSet()
classification = classify0([1.8 2.1] group labels 3)
print(classification)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1616  2018-11-04 18:13  kNN.py

     文件       3321  2018-11-04 13:20  kNN1.py

     文件       1866  2018-11-04 18:42  kNN2.py

     文件       1088  2010-10-07 21:35  digits\testDigits\0_0.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_1.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_10.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_11.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_12.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_13.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_14.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_15.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_16.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_17.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_18.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_19.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_2.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_20.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_21.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_22.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_23.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_24.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_25.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_26.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_27.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_28.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_29.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_3.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_30.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_31.txt

     文件       1088  2010-10-07 21:35  digits\testDigits\0_32.txt

............此处省略2861个文件信息

评论

共有 条评论