KNN算法思考

拼搏现实的明天。 2022-05-09 09:06 278阅读 0赞

学习机器学习时,我们可能接触到KNN算法,这是一中间的算法,是利用距离来表征两者之间的相似度。这一算法最经典的应用就是给相似人群做推荐系统。这里对算法内容不做详细解释,只是引发两个疑问,和大家一起思考一下。

首先,假设,这是一个电影平台,如果你是Netflix用户,Netflix将不断提醒你:多给电影评分吧,你评论的电影越多,给你的推荐就越准确。现在你明白了其中的原因:你评论的电影越多,Netflix就越能准确地判断出你与哪些用户类似。

第一个问题:在Netflix示例中,你使用距离公式计算两位用户的距离,但给电影打分时,每位用户的标准并不都相同。假设你有两位用户——Yogi和Pinky,他们欣赏电影的品味相同,Yogi给喜欢的电影都打5分,而Pinky更挑剔,只给特别好的电影打5分。他们的品味一致,但根据距离算法,他们并非邻居。如何将这种评分方式的差异考虑进来呢?

第二个问题:假设Netflix指定了一组意见领袖(类似专业的影评)。例如,Quentin Tarantino和Wes Anderson就是Netflix的意见领袖,因此他们的评分比普通用户更重要。请问你该如何修改推荐系统,使其偏重于意见领袖的评分呢?

第三个问题:K指的是邻居的数量,那我该选几个比较合适呢?

解答第一个问题,需要用到数据的预处理手段,就是对两者的数据进行归一化处理(normalization)。你可计算每位用户平均评分,并据此来调整用户的评分。例如,你可能发现Pinky的平均评分为星3,而Yogi的平均评分为3.5星。因此,你稍微调高Pinky的评分,使其平均评分也为3.5星。这样就能基于同样的标准比较他们的评分了。至于什么是归一化处理,可以参考我的另一篇博客https://blog.csdn.net/weixin_42575020/article/details/82944291

解答第二个问题,可在使用KNN时给意见领袖的评分更大权重。假设有3个邻居——Joe、Dave和意见领袖Wes Anderson,他们给Caddyshack的评分分别为3星、4星和5星。可不计算这些评分的平均值 (3 + 4 + 5) / 3 = 4星,而给Wes Anderson的评分更大权重:(3 + 4 + 5 + 5 + 5) /5 = 4.4星。(类似于我们平时说的一票顶三票)

解答第三个问题:如果考虑的邻居太少,结果很可能存在偏差。一个不错的经验规则是:如果有N位用户,应考虑sqrt(N)个邻居。,但也不是绝对,具体可根据实际工作中的需要自己把握。

发表评论

表情:
评论列表 (有 0 条评论,278人围观)

还没有评论,来说两句吧...

相关阅读

    相关 KNN算法

    记得读研那会,接触过这个算法,算法原理还是比较容易理解,类似机器学习中的预测,在给定的一堆数据,预测当前节点的分类。计算距离,然后排序,计算最相似的分类。 impor

    相关 knn算法概述

    数据挖掘算法原理与实践:k-近邻 knn算法概述 201228 > educoder 答案 任务描述 本关任务:使用python实现方法,找出目标样本最近的k个样

    相关 KNN分类算法

    KNN分类算法 最简单最初级的分类器,就是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类 K近邻(k-nea

    相关 kNN算法总结

    一直接触KNN近邻算法,但是一直没有机会系统的总结一下,现在做一下总结,希望加深一下自己对近邻算法的理解。 定义:K-近邻算法采用测量不同特征值之间的距离方法进行分类 优缺

    相关 KNN算法思考

    学习机器学习时,我们可能接触到KNN算法,这是一中间的算法,是利用距离来表征两者之间的相似度。这一算法最经典的应用就是给相似人群做推荐系统。这里对算法内容不做详细解释,只是引发

    相关 KNN算法

    KNN算法即K-近邻算法,KNN的核心思想是通过你的“邻居”来推断出你的类别。 1 K-近邻算法(KNN)原理     k 值取得过小,容易受到异常点的影响   

    相关 KNN算法

    1、kNN算法又称为k近邻分类(k-nearest neighbor classification)算法。 最简单平凡的分类器也许是那种死记硬背式的分类器,记住所有的训练数