图解机器学习 | KNN算法及其应用
- 作者:韩信子@ShowMeAI
- 教程地址:www.showmeai.tech/tutorials/3…
- 本文地址:www.showmeai.tech/article-det…
- 声明:版权所有,转载请联系平台与作者并注明出处
引言
K近邻算法(k-nearest neighbors,KNN,有些地方也译作「K近邻算法」)是一种很基本朴实的机器学习方法。
KNN在我们日常生活中也有类似的思想应用,比如,我们判断一个人的人品,往往只需要观察他最密切的几个人的人品好坏就能得到结果了。这就是KNN的思想应用,KNN方法既可以做分类,也可以做回归。在本篇内容中,我们来给大家展开讲解KNN相关的知识原理。
(本篇KNN部分内容涉及到机器学习基础知识,没有先序知识储备的宝宝可以查看ShowMeAI的文章 图解机器学习 | 机器学习基础知识。
1.机器学习与分类问题
1)分类问题
分类问题是机器学习非常重要的一个组成部分,它的目标是根据已知样本的某些特征,判断一个样本属于哪个类别。分类问题可以细分如下:
- 二分类问题:表示分类任务中有两个类别新的样本属于哪种已知的样本类。
- 多类分类(Multiclass classification)问题:表示分类任务中有多类别。
- 多标签分类(Multilabel classification)问题:给每个样本一系列的目标标签。
2)分类问题的数学抽象
从算法的角度解决一个分类问题,我们的训练数据会被映射成n维空间的样本点(这里的n就是特征维度),我们需要做的事情是对n维样本空间的点进行类别区分,某些点会归属到某个类别。
下图所示的是二维平面中的两类样本点,我们的模型(分类器)在学习一种区分不同类别的方法,比如这里是使用一条直线去对2类不同的样本点进行切分。
常见的分类问题应用场景很多,我们选择几个进行举例说明:
- 垃圾邮件识别:可以作为二分类问题,将邮件分为你「垃圾邮件」或者「正常邮件」。
- 图像内容识别:因为图像的内容种类不止一个,图像内容可能是猫、狗、人等等,因此是多类分类问题。
- 文本情感分析:既可以作为二分类问题,将情感分