K近邻算法:“近朱者赤,近墨者黑”的智慧
前文我们介绍了AI产品经理的工作流程、模型构建流程、模型评估等内容,今天我们正式进入算法的学习。
首先介绍的是K近邻算法,K近邻算法是机器学习的入门级算法,原理简单易懂,常用来解决分类问题。
一、基本原理
K近邻算法(K-Nearest Neighbor),简称KNN算法,是基于距离计算来解决分类问题的一种算法。
其实KNN算法充斥在我们的日常生活中,很多时候,我们都会有意无意的参考一下身边人的选择,做出最简单有效的选择。
以买空调为例,在小区里转悠一圈,统计其中安装最多的空调品牌,再找其中一位邻居聊几句,符合预算的话,很容易就下决定了。
还有送女朋友礼物的时候,问下身边的哥们儿之前都送过什么礼物,选择频率最高的礼物,更不容易踩雷。
结合上面两个小例子,KNN的原理其实就是参考周围最近的已经做出的选择,来做出与之类似的选择,也就是“近朱者赤,近墨者黑”。
再回到机器学习场景,那么KNN算法的基本思路就是:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。
这里提到了“最近”的概念,我们在计算样本点之间距离时,可以使用欧式距离、余弦距离、曼哈顿距离等数学公式,最常见的是欧式距离。
找出距离待测样本最近的K个样本点,然后统计其中最多的类别是哪个,就认为待测样本点归属于这个类别。
二、K值的选择
除了距离之外,KNN算法还需要考虑如何选择合适的K值,因为K值的选取会影响模型的预测效果。
如果选择较小的K值,影响决策的样本数量也较少,预测结果会对临近的样本过于敏感,如果临近的样本恰巧是噪声,预测就会出错。换句话说,K值减小就意味着整体模型变复杂,就容易发生过拟合。
如果选择较大的K值,影响决策的样本数量就会过多,导致预测效果下降,很容易导致欠拟合。
我们通常可以将K从1开始,逐一递增,对比每个K值对应的结果,最终选择表现最好的K值。
三、应用场景
理论上,KNN算法可以支持大多数的分类场景,如区分是否好瓜、是否薅羊毛用户等。
除此之外,KNN还可以应用在各种简单的推荐的场景,比如:
- 根据用户的购买记录,推荐相似的商品
- 根据用户的音乐风格和历史播放记录,推荐用户可能喜欢的音乐
四、优缺点
KNN算法的优点:
- 简单易懂,复杂度低:训练代价低,甚至不需要训练,只要把样本数据整理好,就可以直接预测新数据
- 边界不规则的分类效果更好:当数据的分类边界不规则时,KNN算法效果比线性分类算法好,不需要考虑数据的边界问题
KNN算法的缺点:
- 计算量较大:需要计算待测样本和每一个已有样本之间的距离,计算量非常大,所以只适用于小数据集
- 数据容错性较低:如果训练集中存在错误的样本数据,该错误样本又距离待测样本较近,就会导致预测不准确,所以对数据质量依赖程度是非常高的
- 数据分布均衡程度要求高:样本数据不均衡时,某个类别的数据量特别大时,会占有绝对的投票优势,影响到其他类别的预测效果
- 可解释性较差:除了“近朱者赤,近墨者黑”之外,我们好像很难对输出结果有更多的解释
五、总结
本文我们简单介绍了KNN算法的原理、应用场景和优缺点,KNN算法是机器学习的入门级算法,希望对大家有所帮助。
下篇文章,我们会聊一聊朴素贝叶斯算法,敬请期待。
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!