版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章概论西华大学机器学习第四章K近邻算法XXX学校XXX2022目录Contents模型介绍案例:约会网站配对案例:手写数字识别案例:鸢尾花品种识别
知识引入3
本章知识图谱4模型介绍一1.1算法概述6K近邻算法(K-NearestNeighbor,简称KNN),是一种根据不同样本的特征值之间的距离进行分类的算法。KNN中可以根据具体的情况选择不同的“距离”衡量方式。它的基本思想是:如果一个样本在特征空间中的K个最邻近样本中的大多数属于某一个类别,那么该样本也属于这个类别。用一句话来总结KNN算法就是:近朱者赤,近墨者黑。1.1算法概述7KNN的优点包括:算法简单,易于理解,易于实现,无需参数估计,无需训练。精度高,对异常值不敏感(个别噪音数据对结果的影响不是很大)。适合对稀有事件进行分类。KNN的缺点包括:对测试样本分类时的计算量大,空间开销大。可解释性差,无法给出像后续章节将要介绍的决策树模型那样的规则。当样本不平衡时,不能准确的判别分类,这是KNN最大的缺点。例如一个类的样本容量很大,而其他类样本容量很小。这有可能导致当输入一个新样本时,新样本的K个邻居中始终都是大容量类的样本占多数,从而导致错误分类。可以采用加权值的方法(和该样本距离小的邻居权值大)来改进这个问题1.2算法基本原理8KNN算法的三个基本要素是K值的选择、距离度量以及分类决策规则。KNN算法的具体实现过程如下:训练样本集(包含每条样本数据与分类的对应关系)输入无标签的数据新数据的每个特征与样本集中数据对应特征进行比较(1)计算距离(2)排序(3)取K个新数据标签(K个数据中出现最多的分类标签)1.2算法基本原理9
1.2算法基本原理10K值小的时候近似误差小,估计误差大。K值大的时候近似误差大,估计误差小。1.3算法实现代码11机器学习算法解决实际问题的步骤:收集数据分析数据数据预处理应用模型测试算法构建模型1.3算法实现代码12伪代码:对于每一个在数据集中的数据点:计算目标的数据点(需要分类的数据点)与该数据点的距离将距离排序:从小到大选取前K个最短距离选取这K个中最多的分类类别返回该类别来作为目标数据点的预测值1.3算法实现代码13直接利用第三方库的方法来实现KNN算法KNeighborsClassifier使用很简单,核心操作包括三步:(1)创建KNeighborsClassifier对象,并进行初始化。该类的构造函数定义如下:sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,weights=’uniform’,algorithm=’auto’,leaf_size=30,p=2,metric=’minkowski’,metric_params=None,n_jobs=None,**kwargs)主要参数:n_neighbors:int型,可选,缺省值是5,就是KNN中的近邻数量k值。1.3算法实现代码14weights:计算距离时使用的权重,缺省值是“uniform”,表示平等权重。也可以取值“distance”,则表示按照距离的远近设置不同权重。还可以自主设计加权方式,并以函数形式调用。metric:距离的计算,缺省值是“minkowski”。当p=2,metric=’minkowski’时,使用的是欧式距离。p=1,metric=’minkowski’时为曼哈顿距离。(2)调用fit方法,对数据集进行训练。函数格式:fit(X,y)说明:以X为特征向量,以y为标签值对模型进行训练。(3)调用predict函数,对测试集进行预测。函数格式:predict(X)说明:根据给定的数据,预测其所属的类别标签。案例:约会网站配对二2.1问题介绍16案例背景:某约会网站的会员A希望通过该网站找到自己喜欢的人,他将自己心目中的会员分成三类:不喜欢的人(样本分类1)、魅力一般的人(样本分类2)、极具魅力的人(样本分类3)。会员A希望在工作日的时候与魅力一般的人约会,在周末与极具魅力的人约会,而对于不喜欢的人直接排除掉。案例要求:他希望能通过他收集到的信息对会员进行自动分类,分类依据有:玩视频游戏所耗时间百分比、每年获得的飞行常客里程数、每周消费的冰淇淋公升数。2.2数据准备171.数据准备
首先需要将数据从文本文件中读出,定义解析函数file2matrix,其输入的参数为文件地址的字符串,输出为样本矩阵和分类标签向量。
1)收集数据2.2数据准备181.数据准备2)分析数据
将收集的数据进行分析,调用方法读取数据,绘制散点图观察数据。
2.2数据准备191.数据准备3)处理数据
从表4-1的数据中可看出“每年获得的飞机常客里程数”数值较大,对结果的影响程度远大于其他两个特征。但我们认为三个特征值权重相同。为了降低极大数值对结果的影响,这里使用归一化进行数据处理。
2.3算法实现20
其输入参数包括被预测的对象、原始数据集、原始标签和临近点个数,输出参数为被预测对象所属的分类标签值,其中距离采用的是欧氏距离。4)构建模型2.4算法测试215)测试算法
机器学习算法的一个重要工作是测评算法的正确率。通常我们会将90%的数据作为训练样本来使用,剩余的10%数据作为测试集,用来测试算法的性能。本节我们使用错误率来检测算法性能。2.5算法应用226)模型应用
通过上述函数,我们已经实现了KNN算法相关所有的功能,接下来就可以通过输入新的会员信息,通过上述模型来判断该会员是否是自己喜欢的类型了。案例:手写数字识别三3.1问题介绍案例背景:案例的数据集是人工手写的0-9的数字图像,每个图像为32*32像素。案例要求:实现自动识别给定的手写数字图像对应的数字是几。3.2数据准备首先我们要将图像数据处理为一个向量,将32*32的二进制图像信息转化为1*1024的向量。3.3算法实现定义分类算法导入训练数据处理训练数据运用算法开始测试处理测试数据导入测试数据案例:鸢尾花品种识别四4.1问题介绍28案例背景:案例的数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。案例要求:通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa-山鸢尾,Versicolour-杂色鸢尾,Virginica-维吉尼亚鸢尾)三个种类中的哪一类。4.2数据准备29
读取了数据集之后还需要将数据拆分为训练集和测试集。对鸢尾花数据集进行训练集和测试集的拆分操作,可以直接使用train_test_split()函数。
可以直接从iris.csv文件中读取数据,也可以直接从sklearn.datasets数据集中直接加载,因为这个经典的数据集已经被集成到sklearn库里面了。X_train,X_test,y_train,y_test=cross_validation.train_test_split(train_data,train_target,test_size=0.4,random_state=0)1.获取数据4.2数据准备301.观察数据
可以通过绘制散点图观察一下该数据集。4.3算法实现31获取数据集划分数据集初始化分类器输出测试结果测试数据测试模型训练数据训练模型
思考题32水果数据集由爱丁堡大学的IainMurray博士创建。他买了几十个不同种类的桔子、橙子、柠檬和苹果,并把它们的尺寸记录在一张表格中。本例对水果数据进行了简单预处理,存为素材文件fruit_data.txt。文件中包含59个水果的测量数据。每行表示一个待测定水果,每列为一个特征。特征从左到右依次是:fruit_label:标记值,表示水果的类别,1-苹果,2-桔子,3-橙子,4-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手工产品协议书
- 苗木推广协议书
- 苹果授权协议书
- 藕尖买卖合同范本
- 视力检测协议书
- 认大哥的协议书
- 认领农田协议书
- 设备定做合同范本
- 工程创优协议书
- 手机查合同协议书
- 2025云南省人民检察院招聘22人笔试考试备考试题及答案解析
- 2026年湖南中医药高等专科学校单招职业技能测试题库新版
- 骏马奔腾启新程盛世华章谱未来-2026年马年学校元旦主持词
- 剪刀式登高车专项施工方案
- 22863中级财务会计(一)机考综合复习题
- 安庆师范学院论文格式
- 专业技术指导委员会工作总结报告
- 2025-2030智慧消防系统远程监控平台与城市火灾防控效果规划研究
- 医疗器械经营企业培训试卷及答案
- 27米三角形屋架设计
- 2025年大学《老挝语》专业题库-老
评论
0/150
提交评论