机器学习基础——简单易懂的K邻近算法,根据邻居“找自己”
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天的文章给大家分享机器学习领域非常简单的模型——KNN,也就是K Nearest Neighbours算法,翻译过来很简单,就是K最近邻居算法。这是一个经典的 无监督学习 的算法,原理非常直观,易于理解。 监督与无监督 简单介绍一下监督这个概念,监督是supervised的直译,我个人觉得不太准确,翻译成 有标注和无标注 可能更加准确。也就是说如果模型在学习的时候,既能够看到样本的特征又可以看到样本的结果,那么就是有监督学习,如果只能看到特征,但是并不能知道这些特征对应的结果,那么就是无监督学习。 之前我们介绍的线性回归和逻辑回归模型就是典型的有监督模型,因为模型在训练的时候知道样本的结果,并且根据我们设计的损失函数朝着贴近样本真实结果的方向“努力”。而今天介绍的KNN算法则是一个经典的无监督学习模型,算法在训练的时候并不知道正确的结果是什么,也因此模型根本没有损失函数这个概念,那么自然整个算法的运行原理也很监督模型大相径庭。 算法概述 其实KNN算法的原理非常简单,简单到只有一句话,就是 找到样本的K个邻居 ,然后这K个邻居出现次数最多的结果就是答案。 但是我们怎么定义邻居,又怎么找到这些邻居呢? 在回答这个问题之前,我们先来看一个例子。 假设现在有这么一个问题,我需要知道全城的用户有哪些用户有车