第3章--k-近邻算法--(《统计学习方法》PPT课件).pptx

上传人:飞****2 文档编号:77561318 上传时间:2023-03-15 格式:PPTX 页数:66 大小:1.13MB
返回 下载 相关 举报
第3章--k-近邻算法--(《统计学习方法》PPT课件).pptx_第1页
第1页 / 共66页
第3章--k-近邻算法--(《统计学习方法》PPT课件).pptx_第2页
第2页 / 共66页
点击查看更多>>
资源描述

《第3章--k-近邻算法--(《统计学习方法》PPT课件).pptx》由会员分享,可在线阅读,更多相关《第3章--k-近邻算法--(《统计学习方法》PPT课件).pptx(66页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。第三章k-近邻算法严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。分类问题严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。分类问题严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。爱情片、剧情片、喜剧片、家庭片、伦理片、文艺片、音乐片、歌舞片、动漫片、西部片、武侠片、古装片、动作片、恐怖片、惊悚片

2、、冒险片、犯罪片、悬疑片、记录片、战争片、历史片、传记片、体育片、科幻片、魔幻片、奇幻片严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Supervised learning严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。提纲KNN算法原理和流程Python程序调试Python文件类型模块Idle调试环境数据载入算法和关键函数分析算法改进和实验作业严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。K-Nea

3、rest Neighbors算法原理?Dependent of the data distributions.Can make mistakes at boundaries.K=7 NeighborhoodK=1 Neighborhood严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。K-Nearest Neighbors算法特点优点精度高对异常值不敏感无数据输入假定缺点计算复杂度高空间复杂度高适用数据范围数值型和标称型严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。

4、K-Nearest Neighbors Algorithm工作原理存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每个数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,只选择样本数据集中前N个最相似的数据。K一般不大于20,最后,选择k个中出现次数最多的分类,作为新数据的分类严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。K近邻算法的一般流程收集数据:可以使用任何方法准备数

5、据:距离计算所需要的数值,最后是结构化的数据格式。分析数据:可以使用任何方法训练算法:(此步骤kNN)中不适用测试算法:计算错误率使用算法:首先需要输入样本数据和结构化的输出结果,然后运行k-近邻算法判定输入数据分别属于哪个分类,最后应用对计算出的分类执行后续的处理。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。距离度量Lp距离:欧式距离:曼哈顿距离L距离严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。距离度量严格执行突发事件上报制度、校外活动报批制度等相关规章制度

6、。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。K值的选择如果选择较小的K值“学习”的近似误差(approximation error)会减小,但“学习”的估计误差(estimation error)会增大,噪声敏感K值的减小就意味着整体模型变得复杂,容易发生过拟合.如果选择较大的K值,减少学习的估计误差,但缺点是学习的近似误差会增大.K值的增大就意味着整体的模型变得简单.严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Python程序调试Python传统运行模式:Python解释器:运行Python程序的程序;Pytho

7、n字节码:Python将程序编译后所得到的底层形式;Python自动将字节码保存为名为.pyc的文件中;录入的源码转换为字节码-字节码在PVM(Python虚拟机)中运行-代码自动被编译,之后再解释m.pym.pycPVM源代码字节码运行时严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Python程序调试Python无“build”和“make”的步骤,代码写好后立即运行Python字节码不是机器的二进制代码(so 不能像C+运行速度那么快,其速度介于传统编译语言和传统解释语言之间)raw_input()的使用严格执行突发事件上

8、报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Python模块每一个.py文件都是一个模块,其他文件可以通过导入一个模块读取这个模块的内容,相当于C中的include一个大型程序往往呈现出多模块的形式。其中一个模块文件被设计为主文件(or顶层文件)。模块是Python程序最大的程序结构每个模块文件是一个独立完备的变量包装,即一个命名空间严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。模块的导入import,from 和reloadimport语句将模块作为一个整体引用,相当于引入一个

9、类的object。From 增加了对变量名的额外赋值,也就是拷贝模块的属性,因此能够以主模块导入,而不是原来的对象例子:A=“this”B=“is”C=“test”Print A,B,CImport test1Test1.AFrom test import*A严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Reload和重编译修改文件如kNN注意Reload()或者:重新编译import py_compile py_pile(D:pythonmachinelearninginactionCh02kNN.py)最好不要用中文,如果需

10、要,用编码转换工具codec严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Idle调试环境Idle 的使用:Copy的结果是什么?For语句Reload的好处修改程序,显示修改时间Import 和from A import*的关系空间,如numpy严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Python导入数据 import os os.getcwd()D:pythonos.chdir(D:pythonmachinelearninginactionCh02)os

11、.getcwd()D:pythonmachinelearninginactionCh02 open(.testDigits0_0.txt)严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Python导入数据from numpy import*import operator def createDataSet():group=array(1.0,1.1,1.0,1.0,0,0,0,0.1)labels=A,A,B,Breturn group,lablesgroup,labels=kNN.createDataSet()严格执行突发事件

12、上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。算法和关键函数分析分类算法流程和关键函数ShapeTileArgsort字典的使用文本中解析数据文件读取相关函数用matplotlib绘制散点图数据归一化使用k-近邻算法的手写识别系统严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。分类算法流程对未知类别的数据集中的每个点依次执行以下操作计算已知类别数据集众多点与当前点之间的距离按照距离递增次序排序选取与当前点距离最小的k个点群定前k个点所在类别的出现频率返回前k个点出现频率最高的类别作

13、为当前点的预测分类严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。分类算法kNN中的分类算法:def classify0(inX,dataSet,labels,k):dataSetSize=dataSet.shape0 diffMat=tile(inX,(dataSetSize,1)-dataSet sqDiffMat=diffMat*2 sqDistances=sqDiffMat.sum(axis=1)distances=sqDistances*0.5 sortedDistIndicies=distances.argsort()

14、classCount=for item in range(k):voteIlabel=labelssortedDistIndiciesitem classCountvoteIlabel=classCount.get(voteIlabel,0)+1 sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)return sortedClassCount00严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Shape函数g

15、roup,labels=kNN.createDataSet()group.shapegroup.shape0严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Tile函数tile(1.0,1.2,(4,1)array(1.,1.2,1.,1.2,1.,1.2,1.,1.2)tile(1.0,1.2,(4,1)-grouparray(0.,0.1,0.,0.2,1.,1.2,1.,1.1)a=(tile(1.0,1.2,(4,1)-group)*2array(0.,0.01,0.,0.04,1.,1.44,1.,1.21)严格执行突发

16、事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Argsort()b=a.sum(axis=1)c=b*0.5d=c.argsort()darray(0,1,3,2)严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。字典的使用classCount=#字典 for i in range(k):#列表的扩展 voteIlabel=labelssortedDistIndiciesi classCountvoteIlabel=classCount.get(voteIlabel,0)+1 s

17、ortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)return sortedClassCount00kNN.classify0(0,0.2,group,labels,3)B严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。从文本文件中解析数据-打开文件def file2matrix(filename):fr=open(filename)numberOfLines=len(fr.readlines()#get th

18、e number of lines in the file returnMat=zeros(numberOfLines,3)#prepare matrix to return classLabelVector=#prepare labels return fr=open(filename)index=0 严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。从文本文件中解析数据-获得数据for line in fr.readlines():line=line.strip()listFromLine=line.split(t)截取掉所有回

19、车符号,t分割成列表 returnMatindex,:=listFromLine0:3 classLabelVector.append(int(listFromLine-1)index+=1 return returnMat,classLabelVector严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。文件读取相关函数Open()的使用Readlines的使用Zeros()的使用严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。文件读取相关函数Open()的使用工作路

20、径和绝对路径Readlines的使用Zeros()的使用fr=open(test1.txt)for line in fr.readlines():print line执行a=fr.readlines()a 结果是什么呢?fr.seek(0)a=fr.readlines()严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。文件读取相关函数 a=fr.readlines()a1 3 4 12n,5 7 8 13n,9 10 11 14 b=a0 b1 3 4 12n c=b.strip()c1 3 4 12 d=c.split(t)d1

21、 3 4 12 d01 3 4 12 严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。文件读取相关函数for line in a:line=line.strip()line=line.split()print line 1,3,4,125,7,8,139,10,11,14严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。文件读取相关函数for line in a:line=line.strip()line=line.split()print line 1,3,4,125

22、,7,8,139,10,11,14严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。文件读取相关函数for line in a:line=line.strip()line=line.split()line=int(x)for x in line print line 1,3,4,125,7,8,139,10,11,14严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。数组和矩阵Python 数组和numpy矩阵的关系 a=1,2,3,4,5,6,7,8,9,10,11,1

23、2 c=zeros(3,4)carray(0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.)c0,:=a0 carray(1.,2.,3.,4.,0.,0.,0.,0.,0.,0.,0.,0.)严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。解析数据fr=open(datingTestSet.txt)a=fr.readlines()b=len(a)line=a0line=line.strip()list=line.split(t)r0,:=list0:3 rList-1ClassLat=classLab.ap

24、pend(list-1)classLab严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。使用Matplotlib创建散点图import matplotlib import matplotlib.pyplot as plt fig=plt.figure()ax=fig.add_subplot(111)ax.scatter(datingDataMat:,1,datingDataMat:,2)plt.show()严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。使用Matpl

25、otlib创建散点图 fig=plt.figure()ax=fig.add_subplot(111)ax.scatter(datingDataMat:,1,datingDataMat:,2,15.0*array(datingLabels),15.0*array(datingLabels)plt.show()严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。数据归一化def autoNorm(dataSet):minVals=dataSet.min(0)maxVals=dataSet.max(0)ranges=maxVals-minV

26、als normDataSet=zeros(shape(dataSet)m=dataSet.shape0 normDataSet=dataSet-tile(minVals,(m,1)normDataSet=normDataSet/tile(ranges,(m,1)#element wise divide return normDataSet,ranges,minVals严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。数据归一化 n,r,m=kNN.autoNorm(datingDataMat)narray(0.44832535,0

27、.39805139,0.56233353,0.15873259,0.34195467,0.98724416,0.28542943,0.06892523,0.47449629,.,0.29115949,0.50910294,0.51079493,0.52711097,0.43665451,0.4290048,0.47940793,0.3768091,0.78571804)rarray(9.12730000e+04,2.09193490e+01,1.69436100e+00)marray(0.,0.,0.001156)严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇

28、报并处理各类违纪行为或突发事件。测试算法:验证分类器def datingClassTest():hoRatio=0.50#hold out 10%datingDataMat,datingLabels=file2matrix(datingTestSet2.txt)#load data setfrom file normMat,ranges,minVals=autoNorm(datingDataMat)m=normMat.shape0 numTestVecs=int(m*hoRatio)errorCount=0.0 for i in range(numTestVecs):classifierRes

29、ult=classify0(normMati,:,normMatnumTestVecs:m,:,datingLabelsnumTestVecs:m,3)print the classifier came back with:%d,the real answer is:%d%(classifierResult,datingLabelsi)if(classifierResult!=datingLabelsi):errorCount+=1.0 print the total error rate is:%f%(errorCount/float(numTestVecs)print errorCount

30、严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。使用k-近邻算法的手写识别系统准备数据,将图像转换为测试向量32x32def img2vector(filename):returnVect=zeros(1,1024)fr=open(filename)for i in range(32):lineStr=fr.readline()for j in range(32):returnVect0,32*i+j=int(lineStrj)return returnVect严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现

31、、制止、汇报并处理各类违纪行为或突发事件。测试算法 testVector=kNN.img2vector(testDigits/0_13.txt)tesVector0,0:31严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。KNN算法改进和实验作业KNN面临的挑战算法改进距离度量马氏距离KD树实验要求严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。KNN面临的挑战Instance-Based LearningNo explicit description of the

32、target functionCan handle complicated situations.严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。KNN面临挑战K值确定Non-monotonous impact on accuracyToo Big vs.Too SmallRule of thumbs特征的选择Different features may have different impact 距离函数确定There are many different ways to measure the distance.Euclide

33、an,Manhattan 复杂度Need to calculate the distance between X and all training data.In proportion to the size of the training data.KAccuracy严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Distance Metrics严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Mahalanobis Distance马氏距离Distance from

34、 a point to a point set严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。马氏距离马氏距离(Mahalanobis Distance)由由P.C.Mahalanobis提出提出基于样本分布的一种距离测量基于样本分布的一种距离测量考虑到各种特性之间的联系(例如身高考虑到各种特性之间的联系(例如身高和体重),可以消除样本间的相关性和体重),可以消除样本间的相关性广泛用于分类和聚类分析广泛用于分类和聚类分析严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。

35、一维数据马氏距离马氏距离(Mahalanobis Distance)例:0,8,12,20 8.3 8,9,11,121.8均值:标准差:方差:多维向量严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。协方差矩阵严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。协方差矩阵严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。马氏距离氏距离 定义定义严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发

36、现、制止、汇报并处理各类违纪行为或突发事件。马氏距离氏距离 定义续定义续严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。马氏距离氏距离 计算示例计算示例严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。马氏距离氏距离 NUMPYNUMPY示例示例import numpyx=numpy.array(3,4,5,6,2,2,8,4)xT=x.TD=numpy.cov(xT)invD=numpy.linalg.inv(D)tp=x0 x1print numpy.sqrt(do

37、t(dot(tp,invD),tp.T)严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Mahalanobis DistanceFor identity matrix S:For diagonal matrix S:严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。KD树kd树是一种对K维空间中的实例点进行存储以便对其进行快速检索的树形数据结构.Kd树是二叉树,表示对K维空间的一个划分(partition).构造Kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分,构

38、成一系列的k维超矩形区域.Kd树的每个结点对应于一个k维超矩形区域.严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。KD树构造kd树:对深度为j的节点,选择xl为切分的坐标轴例:严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。KD 树(2,3),(5,4),(9,6),(4,7),(8,1),(7,2),建立索引严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。KD树搜索严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。作业要求作业里包含如下文件:源代码(改进部分要有注释),实验报告:包含对改进算法的描述以及实验结果对比情况。给分依据:代码质量(包含可读性),改进算法难度实验报告的详细性。若有疑惑,可联系助教邱鑫。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Q&A?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com