推荐系统1:推荐系统与KNN算法

推荐系统常常用于推荐给用户可能喜欢的产品,或者推荐给用户可能会喜欢的电影等等场景,一般推荐系统的建立是基于数据的。

 

理解近邻的概念NN:

 

近邻的概念就是一个实体与另外一个实体之间很相似,我们称之为近邻。for example:

上图是A,B,C三个用户的体重,我们发现:

如此看来,A和B的体重更为接近,我们认为他们是近邻,也就是说他们之间更加相似。

我们再添加一个属性:

A和B之间的“”距离“”就可以使用欧氏距离的算法进行计算:

 

但是在多个变量的情形下,单纯的这种计算也会引发误区:

 

我们按照计算发现,A和C好像更加接近,但是直觉告诉我们,B和C才是最接近的,因为他们的齿轮数是一样的。

 

这个时候需要引入归一化概念:

 

归一化就是,将所有的变量统一到同样的尺度的方法。对于不同的属性,类似于上面的表格中,汽车的运行速度的值是100和110,而齿轮的数目确实4和5,二者数值相差很大。所以我们需要将运行速度和齿轮数目统一到相同的尺度上进行比较。

 

常用的归一化的方法有:

 

1.将变量除以当前属性中最大值。

2.将变量减去均值,再除以标准差。

3.将每个变量除以最大值和最小值的差。

 

K近邻算法(KNN)

 

KNN就是找到与当前实体最接近的K个实体,由这K个实体投票表决,决定到底是否推荐给当前的实体。

假如,和当前实体最接近的10个实体中,有9个实体都购买了某件商品,那么,我们将选择把这件商品推荐给当前的实体。

又例如,和当前实体最接近的10个实体中,只有一个实体喜欢某一部电影,其余9个实体不喜欢这部电影,那么我们将选择不把当前的这部电影推荐给当前的实体。

这种推荐方式就是一种协同过滤的方式进行推荐。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值