文档介绍:K-近邻算法目录一、K-近邻算法优缺点二、K-近邻算法工作原理及示例三、K-近邻算法的一般流程四、准备:使用Python导入数据五、实施kNN分类算法六、示例1:改进约会网站的配对结果七、示例2:手写识别系统八、小结K-近邻算法优缺点简单地说,K-近邻算法(又称KNN)采用测量不同特征值之间的距离方法进行分类。其优缺点及适用数据范围如下:优点:精度高、对异常值不敏感、无数据输入假定。 缺点:计算复杂度高、空间复杂度高。 适用数据范围:数值型和标称型。K-: 存在一个样本数据集合(1)(也称为训练样本集),并且样本集中每个数据都存在标签(即我们知道样本集中每一数据与所属分类的对应关系(2))。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提供样本集中特征最相似数据(最近邻)的分类标签(3)。一般来说,我们只选择样本数据集中前k个最相似的数据(4),这便是算法中k的出处(通常k≤20)。最后,选择k个最相似数据中出现次数最多的分类,作为新标签的分类。K-(1)问题描述:电影的分类可以按照题材来,然而题材本身是如何定义的?也就是说同一题材的电影具有哪些共同特征?这些都是电影分类时必须要考虑的因素。现在有一种简单的方法,例如在爱情片中会出现打斗场面,动作片亦会出现轻吻镜头,但是很明显两者的频率是不同的,因此接下来将讲述K-近邻算法关于此的简单应用。K-近邻算法示例(2)下图示例了六部电影的打斗和接吻镜头数。K-近邻算法示例(3)假如有一部未看过的电影,如何确定它是爱情片还是动作片呢?接下来将展示如何使用KNN来解决这个问题。首先我们需要知道需分类电影的打斗镜头和接吻镜头数量,下图给出了一个详细示例:K-近邻算法示例即使不知道待分类电影属于哪种类型,我们也可以通过某种方法计算方法。下图展示的是待分类电影与样本集中其他电影的距离计算结果:(此处暂时不关心如何计算得到的这些距离值,稍后会具体讲解。)K-近邻算法示例现在我们得到了样本集中所有电影与未知电影的距离,按照距离递增排序,可以找到k个距离最近的电影。假定k=3,则三个最靠近的电影依次是He’sNotReallyintoDudes、BeautifulWoman和CaliforniaMan。结果:K-近邻算法按照距离最近的三部电影的类型,决定待分类电影的类型,而这三部电影均为爱情片,因此我们判定待分类电影为爱情片。K-近邻算法的一般流程接下来主要讲解如何在实际中应用K-近邻算法,同时涉及如何使用Python工具和相关的机器学习术语,以下为该算法的一般流程:(1)收集数据:可以使用任何方法。(2)准备数据:距离计算所需要的数值,最好是结构化的数据格式。(3)分析数据:可以使用任何方法。(4)测试算法:计算错误率。(5)使用算法:首先需要输入样本数据和结构化的输出结果,然后运行k-近邻算法判定输入数据属于哪个分类,最后应用对计算出的分类执行后续的处理。