K近邻算法:“近朱者赤,近墨者黑”的智慧

0 评论 1825 浏览 13 收藏 6 分钟

AI产品经理需要掌握的内容有很多,本文将介绍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算法是机器学习的入门级算法,希望对大家有所帮助。

下篇文章,我们会聊一聊朴素贝叶斯算法,敬请期待。

本文由 @AI小当家 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!