基于KNN(K最近邻分类算法)的推荐算法

1.1算法简介
KNN(K最近邻分类算法)是一种在机器学习中比较简单的算法,它的原理如下:对于一个需要分类的物品A,定义某一种刻画物品之间距离方法,找出该物品最邻近k个有已知类别的物品,这k物品中出现最多的类别即为物品A的类别。如下图:
在这里插入图片描述
在KNN算中,最核心的一点是怎么定义物品之间的距离,这里我们简单列举几种计算物品距离的方法:欧式距离、曼哈顿距离、切比雪夫距离、杰卡德系数、夹角余弦、皮尔逊系数。

下面介绍KNN在实际业务中的运用。

4.2业务实践

业务场景1:以应用商店为例,在用户下载完一个应用时,触发一个“大家还下载”的推荐,下面介绍如何运用knn算法实现这个场景的推荐:

首先定义应用的维度向量,一种简单的方法是离散化所有特征,然后进行one-hot编码,得到所有维度取值0/1的向量V,例如:可以把每个用户当做一个维度,如果第n个用户安装了应用A,那么应用A在第n个维度取值为1,否则为0,运用欧式距离可以得到应用A与应用B的距离公式:在这里插入图片描述

给定一个应用A,通过上述公式取距离最小的4个应用出来,在用户下载完应用A以后给该用户推荐这4个应用。

业务场景2:网络购物中,在“猜你喜欢”场景推荐一批物品给用户,通过用户的历史购物清单,运用杰卡德公式计算用户与用户的相关系数:
在这里插入图片描述
Ax表示购买了物品x的用户集合,那么用户u与用户v的距离定义为:
在这里插入图片描述
给定一个用户u,首先找出这个用户最邻近的k个用户,然后在这k个用户中按照购买的用户数对物品进行降序,去除用户u已经购买的物品,取top 10个物品推荐给用户

1.3实例代码

参考来源
[1] https://mp.weixin.qq.com/s/9F_BRgnhAxP-nALtBdIZpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值