版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章k近邻算法与非参数估计目录CONTENTS4.1k近邻算法原理4.2k近邻算法的应用4.3非参数估计4.5本章小结4.4非参数估计算法的实现4.1k近邻算法原理学习基础学习认知能力信息素养高假设X_test为待标记的样本,X_train为已标记的数据集,算法原理描述如下:(2)对数组D[]进行排序,取距离最近的k个点,记为X_knn。在X_knn中统计每个类别的个数,即class0在X_knn中有几个样本,class1在X_knn中有几个样本等。010203(1)遍历X_train中的所有样本,计算每个样本与X_test的距离,并把距离保存在数组D[]中。待标记样本的类别,就是在X_knn中样本个数最多的那个类别。4.2k近邻算法应用学习基础学习认知能力信息素养高Iris鸢尾花数据集(iris_training.csv)的数据可分为3类(iris-setosa,iris-versicolour,iris-virginica),共150条记录,每类各50个数据,每条记录有4个属性:花萼长度(SepalLength)、花萼宽度(SepalWidth)、花瓣长度(PetalLength)、花瓣宽度(PetalWidth),可以通过这4个特征预测鸢尾花属于哪一类。column_names=['SepalLength','SepalWidth','PetalLength','PetalWidth','Species']iris_data=pd.read_csv("iris_training.csv",header=0,names=column_names)print(df_iris.head())4.2k近邻算法应用学习基础学习认知能力信息素养高Iris鸢尾花数据集(iris_training.csv)的数据可分为3类(iris-setosa,iris-versicolour,iris-virginica),共150条记录,每类各50个数据,每条记录有4个属性:花萼长度(SepalLength)、花萼宽度(SepalWidth)、花瓣长度(PetalLength)、花瓣宽度(PetalWidth),可以通过这4个特征预测鸢尾花属于哪一类。4.2k近邻算法应用学习基础学习认知能力信息素养高Iris鸢尾花数据集(iris_training.csv)的预测类别:[1.0,2.0,0.0,1.0,1.0,1.0,0.0,2.0,1.0,2.0,2.0,0.0,2.0,1.0,1.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,2.0,2.0,1.0,1.0,0.0,1.0,2.0,1.0]Accuracy:96.66666666666667%4.3非参数估计4.3.1非参数估计与参数估计1.直方图估计法对于随机变量X的一组抽样,即使X的值是连续的,我们也可以划分出若干宽度相同的区间,统计这组样本在各个区间的频率,并画出直方图。4.3非参数估计4.3.1非参数估计与参数估计2.Parzen矩形窗估计Parzen矩形窗是以目标样本x作为中心点,根据窗口大小h,判断样本落入以x为中心的窗口内的样本数,从而得到x的概率。Parzen矩形窗估计与直方图估计的区别:Parzen矩形窗是根据目标样本点x确定矩形窗,直方图估计是先确定矩形窗,然后根据样本点找相应的矩形窗。4.3非参数估计4.3.1非参数估计与参数估计3.Parzen正态核窗估计当满足以下条件时,一维情况:4.3非参数估计4.3.2非参数估计的一般推导假设p(x’)是x’的密度函数,向量x落在区域R的概率为:N个向量中k个向量落在R内的概率为:k/N的均值和方差分别为:当N→∞时,频率与概率的取值趋于相等,有:4.4基于k近邻算法的实现下面我们对给定的鱼类数据,分别利用直方图估计、Parzen矩形窗估计和Parzen正态核估计实现kNN分类。给定的鱼类数据存放在文件fish.xls中,包含一维数据和二维数据两种类型,各2000条,一维数据的前6条如下:4.4基于k近邻算法的实现1利用直方图估计概率密度、分类数据预处理importxlrdfromoperatorimportitemgetterimportmatplotlib.pyplotaspltimportnumpyasnpreadbook=xlrd.open_workbook(r'Fish.xls')sheet=readbook.sheet_by_index(1)#索引的方式,从0开始sheet=readbook.sheet_by_name('long')#以名字的方式读取工作表nrows=sheet.nrows#行ncols=sheet.ncols#列fish=[]4.2基于k近邻算法的实现1利用直方图估计概率密度、分类数据预处理foriinrange(1,nrows):v1=sheet.cell(i,0).valuev2=sheet.cell(i,1).valuefish.append([v1,v2,0,0,0])train0=fish[0:500]train1=fish[1000:1500]train=train0+train1test0=fish[500:1000]test1=fish[1500:]test=test0+test14.2基于k近邻算法的实现2.直方图概率密度估计设定窗口大小v,求出训练集中样本的最大值max0和最小值min0,计算训练集被划分为多少个区间bin。#统计训练集中的数据有多少个落在窗口内
forjinrange(500):trainData0=train0[j][0]#第0类数据
trainData1=train1[j][0]#第1类数据
if((trainData0>=iRange)and(trainData0<=lRange)):k0=k0+1if((trainData1>=iRange)and(trainData1<=lRange)):k1=k1+1classPro0=k0/(n*v)classPro1=k1/(n*v)4.2基于k近邻算法的实现3.对测试样本分类比较窗口内分别属于类别0和类别1的概率大小,将测试样本newData划为概率值较大的一类,并计算分类的准确率。4.2基于k近邻算法的实现4.数据可视化为了将直方图概率密度可视化,就是将每个区域间的数据概率以直方图形式显示出来,因此,需要首先统计出训练集中每个区域内的样本数,并计算出概率值。4.4基于k近邻算法的实现2利用Parzen矩形窗估计概率密度、分类title="一维数据Parzen矩形窗估计(width=%.1f),precision1=%.3f,precision2=%.3f"%(v,accurate0,accurate1)test=np.array(test)print(test[:,0])fig=plt.figure()plt.subplot(211)plt.scatter(test[:500,0],test[:500,2],marker='s')plt.xlabel('Class0Data')plt.ylabel('Density')plt.show()4.4基于k近邻算法的实现3利用Parzen正态核估计概率密度、分类4.5本章小结kNN是一种有监督的分类算法,其算法思想简单、易于实现、无需估计参数、分类准确率高,不足之处在于预测结果依赖于k值的选择,易受到噪声数据影响,特别是当样
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 针灸设备产业深度调研及未来发展现状趋势
- 贵金属烛环产业规划专项研究报告
- 二零二四年度广告代理推广合同
- 2024年广告投放合同:社交媒体广告投放策略
- 2024年简单零星工程合同范本2
- 车轮轴承产品入市调查研究报告
- 贵金属塑像产品入市调查研究报告
- 脚踏车车灯产品入市调查研究报告
- 二零二四年度农村道路LED路灯供货与安装合同
- 二零二四年度教育培训机构在线课程研发合同
- 地籍调查表2012
- 实验一文昌鱼形态结构
- 薪酬管理-03-战略性薪酬管理运作框架
- 前列腺增生的护理查房ppt课件
- 不稳定性心绞痛和非ST段抬高心肌梗死诊断与治疗指南(全文)
- 课堂教学中的师生互动存在的问题及对策研究
- 部编版(统编)小学语文三年级上册期末试卷(含答题卡)
- 潮州市乡镇信息技术教育的现状和对策
- 推荐精选中国多发性肌炎专家共识
- (完整版)初中尺规作图典型例题归纳总结
- 行政执法程序流程图
评论
0/150
提交评论