Knn实现简单的物品推荐

    KNN算法是机器学习里面比较简单的一个分类算法了,整体思想比较简单:计算一个点A与其他所有点之间的距离,取出与该点最近的k个点,然后统计这k个点里面所属分类比例最大的,则点A属于该分类。

    这次我就打算用knn来实现物品的推荐,还记得前面写的用协同过滤来做商品推荐吗?是不是和knn的实现有点一样呢,都是计算每个实体的与其他实体之间的距离,来实现n个相似的推荐。在这里Knn的实现和协同过滤有点不同,协同过滤里面各个实体的特征并不是都相同的,比如a用户看过x1电影、x2、x3电影,b看过x2、x3电影,c看过x2、x1电影,这样要为b推荐电影,这种特征之间距离的计算必须一一对应,没有相同的特征则会作为推荐的内容。而knn实现的推荐,更多是基于分类的思想,在这里a,b,c三个用户都有同样的特征,最后推荐的物品,则作为他们的分类属性y。如果是为c推荐,这样的话,a、b势必不能缺失分类属性y,而c是缺少属性y的,这个时候,想相当于为c做自动分类,来实现物品的推荐。

    刚好,过两天要去参加同事的婚礼,婚礼之后,度蜜月是必须的。在这里,我就模仿下旅游公司为他们推荐度蜜月的旅程。数据纯属虚假,如有雷同,请原谅。。

   

Customer     Age     Income     plan
1            25       46k       云南游
2            32       100k      日本北海道游
3            40       38k       济州岛7天游
4            20       150k      马尔代夫激情
5            28       51k       ???
    其中???的地方就是顾客5需要让knn算法自动分类的属性,具体的分类代码我就不写了,在这里主要写一个思路,就是说明可以用knn如何来实现物品的分类。

    如果使用最近邻算法回答我们上面遇到的 “第 5 个顾客最有可能去哪里” 这一问题,答案将是云南游。这是因为第 5 个顾客与第 1 个顾客之间的距离要比第 5 个顾客与其他任何顾客之间的距离都短(实际上是短很多)。基于这个模型,可以得出这样的结论:由最像第 5 个顾客的顾客可以预测出第 5 个顾客的行为。  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值