5. 推荐算法的最基础和最直观的认识

1.性别年龄转换为统一的计量单位

所谓推荐,就是替别人推荐,比如工厂A需要招男员工,希望大家推荐认识的人。那么在这里,就有了推荐的概念,限定条件是男。我们知道,人的性别一般分为男或者女。在这里假设把男用"1"表示,女用"0"表示,那么假设下面有几个人,

很明显的,根据我们的约定可以知道,王、李和杨是男的,符合工厂A的需要。

那么假如工厂还要求年龄在25~30岁之间呢?这时又对年龄也做了限制。如他们的年龄如下:

这样不好看,为了统一计量,我们假设符合条件的年龄为1,不符合条件的年龄为0,则上表变为:

那问题来了,我们界定了性别和年龄的计量单位,如何推荐符合条件的人呢,其实很简单,我们只需要写一个二维的向量X = (1, 1),然后把每个人的性别和年龄看成一个二维的向量,这个几个人的性别和年龄就构成一个矩阵,

我们将矩阵和向量相乘得到

现在我们将这个结果合并到上表中得到下表:

大家发现规律了没有,其实累计的值为2的表示满足工厂A的招工要求,显然,满足招工要求的人是:王、李、杨。

2.多个条件和加权重的计算

2.1多个条件的计算

在第1部分我们推荐了满足2个条件(年龄和性别)的员工,那么如果工程A又加了一些条件呢,比如射高:160~190cm,,体重:50~100kg,假如几个人的个人信息如下表:

我们根据上面的思路,将每个属性符合条件的数据改为1,不符合条件的数据改为0,这时得到下表:

然后我们设一个4维的向量x = (1, 1, 1, 1),上面的4个条件可以得到一个矩阵

我们将矩阵和向量相乘得到

现在我们将这个结果合并到上表中得到下表:

显然,累计值为4的则为满足条件的人,则满足条件的人为王、李。

那么,如果再增加几十个限制属性时,也可以用相同的方法进行计算推荐符合条件的人。

2.2加权重的计算

以上的计算是假设权重相同的条件下进行推荐的,那么现在假设权重不同呢,比如性别、年龄、身高、体重的权重分别为0.4、0.3、0.2、0.1,则计算方式如下:

现在我们将这个结果合并到上表中得到下表:

假如我们将0.7分以上的表示为合格,则满足工厂A录取条件的人为:王、李、杨。

显然,不同权重时,我们也可以做计算,最后得到满足工厂A需要的人。其实,推荐算法就是以此为基础的.推荐算法用到了余弦求相似度,大家可以想想余弦相似度与本文的向量相乘求相似的有什么区别(其实向量乘积就是余弦的向量积的分子),余弦多个分母是为了将不同属性的计量进行归一化,这样才有可比性,否则就没有意义,而本文将不同的属性用了相同的计量方式(0或者1),并且加了权重,所以不需要归一化,即不需要余弦向量积的分母就能达到余弦相似化的效果。当然,实际应用中用余弦相似度更好更广泛一些。

相关推荐
重庆小透明24 分钟前
力扣刷题记录【1】146.LRU缓存
java·后端·学习·算法·leetcode·缓存
desssq43 分钟前
力扣:70. 爬楼梯
算法·leetcode·职场和发展
clock的时钟1 小时前
暑期数据结构第一天
数据结构·算法
小小小小王王王2 小时前
求猪肉价格最大值
数据结构·c++·算法
岁忧2 小时前
(LeetCode 面试经典 150 题 ) 58. 最后一个单词的长度 (字符串)
java·c++·算法·leetcode·面试·go
BIYing_Aurora2 小时前
【IPMV】图像处理与机器视觉:Lec13 Robust Estimation with RANSAC
图像处理·人工智能·算法·计算机视觉
martian6654 小时前
支持向量机(SVM)深度解析:从数学根基到工程实践
算法·机器学习·支持向量机
孟大本事要学习4 小时前
算法19天|回溯算法:理论基础、组合、组合总和Ⅲ、电话号码的字母组合
算法
FF-Studio4 小时前
【硬核数学 · LLM篇】3.1 Transformer之心:自注意力机制的线性代数解构《从零构建机器学习、深度学习到LLM的数学认知》
人工智能·pytorch·深度学习·线性代数·机器学习·数学建模·transformer
??tobenewyorker5 小时前
力扣打卡第二十一天 中后遍历+中前遍历 构造二叉树
数据结构·c++·算法·leetcode