资源简介
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个文件信息
相关资源
- think python 中文版.pdf
- TensorFlow实现股票预测的Python代码
- 解压微信小程序源码python文件
- python数据结构与算法
- 支持向量机几个的代码
- Python:网络爬虫抓取豆瓣3万本书-详细
- Python GUI项目:文件夹管理系统代码
- python2.7_批量读取netCDF4文件并输出为
- Python 3网络爬虫开发实战pdf 崔庆才著
- python串口读写
- 基于Python的Vibe目标检测代码
- python首次连接STK
- PSO_TSP_Python
- PythonOCC的安装
-
pyQt5_wavepla
yer python计算声音分贝 语 - The Python Language Reference Manual 无水印
- iris.csv数据集和python代码
- Python爬虫爬取校内论坛标题,并将关
- crowd counting test single image demo
- kNN(python实现)
- ds18x20_onewire.rar
- python生成扭曲带干扰验证码
- 基于OpenCV 3 LBPH 人脸识别 Python代码
- Python标准库源代码.zip
- 信息隐藏——Python语言幻方置乱实现
- train_loss_acc.py
- 可视化函数绘图计算器
- Bayesian Network贝叶斯网络 Python Program
- Python WSQ行情订阅演示案例.rar
- python网络爬虫爬取Boss直聘代码
评论
共有 条评论