机器学习实战之KNN算法

导言

​ 最近在学习《机器学习实战》这本书,希望把学到的机器学习知识能够应用下来。所有的代码都在我的github的mllearning仓库中。本章记录学习KNN算法以及应用。

[TOC]

数学原理(主要参考)

KNN近邻算法

K-近邻算法概述

工作原理

​ 采用测量不同特征值之间的距离进行分类。工作原理:存在一个样本数据集合,并且样本集中每个数据都存在标签,即知道样本集中每一数据与所属类别的对应关系。输入一个没有标签的数据,计算新数据的每一个特征和样本集中数据对应特征,然后根据算法提取出样本集中特征最相似的数据的分类标签;通常,我们只选择样本集中前K个醉相思的数据,即为KNN中的K值。通常K为不超过20的整数。

具体例子

​ 对电影数据进行分类。具体数据格式如表1.1所示:

每部电影中的打斗镜头数、接吻镜头数以及电影类型评估
电影名称 打斗镜头 接吻镜头 电影类型
California Man 3 104 爱情片 爱情片
He’s Not Really into Dudes 2 100 爱情片
Beautiful Woman 1 81
Kevin Longblade 101 10 动作片
Robo Slayer 3000 99 5 动作片
表1.1

我们选取每部电影中的打斗镜头和接吻镜头作为特征。通过计算未知电影与样本集中其他电影的距离。如图1.1

​ 图1.1

得到所有的距离,按照递增排序,可以找到k个距离相近的电影。假设距离是3,我们得到距离最小的三部电影是He’s Not Really into Dudes、Beautiful Woman和California Man。三部电影全是爱情片,因此我们判断未知电影是爱情片。

代码实现

坚持原创技术分享,您的支持将鼓励我继续创作!