作为一名想要在AI领域长期发展的PM同学,对算法有一个初步的、总体的了解是非常有必要的。今天我们将从最简单、最容易理解的——k近邻(KNN)算法开始。 KNN 是一种监督学习算法,可用于分类和回归。以下是一些常用的算法。其他算法将在稍后讨论。
为什么需要了解算法,不仅仅是为了方便和算法同学交流,而是只有深入了解人工智能为你的产品提供动力的过程,你才能更清楚地了解你的产品的方向,探索其中的可能性。产品亮点。
因此,今天我们就从最简单、最容易理解的算法——k近邻(KNN)算法开始。 KNN 是一种监督学习算法,可用于分类和回归。稍后我将逐步介绍它们。其他常用算法。
KNN的核心理念可以用一句俗语来表达:“物以类聚,人以群分”。想要了解一个人,就看他交的朋友是什么样的。所以核心思想是:如果一个样本在特征空间中的k个近邻(距离最近的样本)大部分属于某个类别,那么该样本也属于这个类别,并且具有这个类别的特征。样本特征。在该方法中,在进行分类决策时,仅根据最接近的一个或多个样本的类别来确定待分类样本的类别。
这里的距离一般可以使用欧氏距离、曼哈顿距离或者最小距离等公式来计算,但是对于产品经理来说,没有什么不同的公式。
让我用这张图简单解释一下。蓝色方块(标有B)和红色三角形(R)是要分类的样本。对于KNN,K=3,C 的最近邻是1B 和2R。根据多数规则,C应该属于“R”型。对于k=5,C 的最近邻居是3B 和2R。 C属于“B”类型吗?
确定类别的方法也有两种。
通过投票做出决定,少数服从多数,最接近的类别中得分最高的类别属于该类别。加权投票法:根据距离对附近的投票进行加权(权重为距离平方的倒数)。很多朋友看到这里都会提出疑问。如何选择K值?K值的大小如何影响模型性能?
关于K值的选择,应注意以下几点:
如果k值太大,会包含更多不相似的数据,从而增加噪声并降低分类结果。如果k值太小,则获得的邻域数据太少,会降低分类精度,放大分类结果。噪声数据中的干扰,经验规则:k通常小于训练样本数量的平方根,通常通过交叉验证来确定。
接下来我们简单介绍一下训练过程,主要分为以下几个步骤:
准备数据并对数据进行预处理。选择合适的数据结构来存储您的训练数据并设置k 等参数。维护一个大小为k 的优先级队列来存储最近邻居训练元组。从训练元组中随机选择k元组作为第一近邻元组,计算这些k元组与测试元组的距离,并将训练元组的标签和距离存储在优先级队列中。遍历训练元组并计算它们之间的距离。比较当前的训练和测试元组,并将所得距离L 与优先级队列中的最大距离Lmax 进行比较。如果L=Lmax,则丢弃该元组并遍历下一个元组。如果L Lmax,则移除优先级队列中距离最大的元组,并将当前训练元组保存到优先级队列中。 一旦遍历完成,优先级队列中的k元组的多数类被计算并用作测试元组的类。对元组的测试集进行测试后,我们计算错误率,继续用不同的k值重新训练,最终得到错误率最低的k值。我们快速介绍了基本概念和培训过程。接下来我们将讨论K近邻法的优点和缺点。
优势:
简单、易于理解、易于实现、无需参数估计或训练,特别适合多分类问题(多模态、具有多个类别标签的对象),kNN 的表现比SVM 所展示的更好。坏处:
如果计算复杂度和空间复杂度较高,如果样本严重不平衡,如果一类样本容量大而另一类样本容量小,则新样本在创建时更有可能被错误地归入该类别。大投入。现在我们了解了该算法的优点和局限性,我们来看看它的适用领域。
模式识别,尤其是光学字符识别、数据库(例如基于内容的图像搜索)以及DNA 序列向导系统。我们建议检查类似的评分算法来检测正确的拼写,从而提高运动员的专业表现。本文最初发表于@yanranweile 的《人人都是产品经理》。它禁止未经授权的复制。
标题图片来自Unsplash,并获得CC0 许可。
本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/584632.html