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

news2025/1/23 13:07:00

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),并且加了权重,所以不需要归一化,即不需要余弦向量积的分母就能达到余弦相似化的效果。当然,实际应用中用余弦相似度更好更广泛一些。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2280912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在Matplotlib中绘制多个Y轴刻度

Matplotlib是一个功能强大的Python库,在它的帮助下,我们可以绘制条形图,图表,绘图,比例等。在本文中,我们将尝试在Matplotlib中绘制多个Y轴刻度。 为什么多个Y轴刻度很重要? 绘制具有不同单位…

大模型GUI系列论文阅读 DAY1:《基于大型语言模型的图形用户界面智能体:综述》(6.6W 字长文)

摘要 图形用户界面(Graphical User Interfaces, GUIs)长期以来一直是人机交互的核心,为用户提供了直观且以视觉为驱动的方式来访问和操作数字系统。传统上,GUI交互的自动化依赖于基于脚本或规则的方法,这些方法在固定…

RabbitMQ1-消息队列

目录 MQ的相关概念 什么是MQ 为什么要用MQ MQ的分类 MQ的选择 RabbitMQ RabbitMQ的概念 四大核心概念 RabbitMQ的核心部分 各个名词介绍 MQ的相关概念 什么是MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出&am…

linux 下tensorrt的yolov8的前向推理(python 版本)的实现

一、yolov8的python实现的环境搭建 #通过pip安装 pip install ultralytics #通过git克隆GitHub仓库 git clone <https://github.com/ultralytics/ultralytics.git> cd ultralytics #安装依赖 pip install -r requirements.txt #执行推理 yolo predict model./yolov8n.pt …

java文件按行写入数据后并创建行索引及查询

背景 当有很多数据需要存储&#xff0c;这些数据只是想要简单的按行存储和查询&#xff0c;不需要进行其他条件搜索&#xff0c;此时就可以考虑不需把这些数据存储在数据库&#xff0c;而是直接写入文件&#xff0c;然后从文件中查询 但是正常情况下&#xff0c;如果仅仅只是按…

SpringBoot集成Flink-CDC,实现对数据库数据的监听

一、什么是 CDC &#xff1f; CDC 是Change Data Capture&#xff08;变更数据获取&#xff09;的简称。 核心思想是&#xff0c;监测并捕获数据库的变动&#xff08;包括数据或数据表的插入、 更新以及删除等&#xff09;&#xff0c;将这些变更按发生的顺序完整记录下来&…

VisualStudio中配置OpenGL环境并制作模板

VisualStudio中配置OpenGL环境并制作模板 本教程来自&#xff1a;sumantaguha Install Visual Studio Download Microsoft Visual Studio Community 2019 from https://my. visualstudio.com/Downloads?qvisual%20studio%202019&wt.mc_ idomsftvscom~older-downloads and…

工程上LabVIEW常用的控制算法有哪些

在工程应用中&#xff0c;LabVIEW常用的控制算法有很多&#xff0c;它们广泛应用于自动化、过程控制、机器人、测试测量等领域。以下是一些常见的控制算法&#xff1a; 1. PID 控制 用途&#xff1a;PID&#xff08;比例-积分-微分&#xff09;控制是最常用的反馈控制算法&…

WPF1-从最简单的xaml开始

1. 最简单的WPF应用 1.1. App.config1.2. App.xaml 和 App.xaml.cs1.3. MainWindow.xaml 和 MainWindow.xaml.cs 2. 正式开始分析 2.1. 声明即定义2.2. 命名空间 2.2.1. xaml的Property和Attribute2.2.2. xaml中命名空间2.2.3. partial关键字 学习WPF&#xff0c;肯定要先学…

对话小羊驼vicuna

文章目录 1. gpu租用2. 公网网盘存储实例/数据3. 登录实例4. 预训练模型下载5. llama、alpaca、vicuna的前世今生6. 对话Vicuna&#xff08;1&#xff09;llama-2-7b-hf&#xff08;2&#xff09;vicuna-7b-delta-v0&#xff08;3&#xff09;vicuna-7b-v0&#xff08;4&#x…

web路径问题和会话技术(Cookie和Session)

一.Base 1.base介绍①base是HTMl语言的基准网址标签,是一个单标签,位于网页头部文件的head标签内②一个页面最多使用一个base元素,用来提供一个指定的默认目标,是一种表达路径和连接网址的标记③常见的url路径分别有相对路径和绝对路径,如果base标签指定了目标,浏览器将通过这个…

C++17 新特性解析:Lambda 捕获 this

C17 引入了许多改进和新特性&#xff0c;其中之一是对 lambda 表达式的增强。在这篇文章中&#xff0c;我们将深入探讨 lambda 表达式中的一个特别有用的新特性&#xff1a;通过 *this 捕获当前对象的副本。这个特性不仅提高了代码的安全性&#xff0c;还极大地简化了某些场景下…

2025.1.20——二、buuctf BUU UPLOAD COURSE 1 1 文件上传

题目来源&#xff1a;buuctf BUU UPLOAD COURSE 1 1 一、打开靶机&#xff0c;查看信息 这里提示到了文件会被上传到./uploads&#xff0c;有路径&#xff0c;题目也说了upload&#xff0c;所以是文件上传漏洞。好简洁的题目&#xff0c;做过十七关upload-labs的我&#xff0c…

python学opencv|读取图像(四十二)使用cv2.add()函数实现多图像叠加

【1】引言 前序学习过程中&#xff0c;掌握了灰度图像和彩色图像的掩模操作&#xff1a; python学opencv|读取图像&#xff08;九&#xff09;用numpy创建黑白相间灰度图_numpy生成全黑图片-CSDN博客 python学opencv|读取图像&#xff08;四十&#xff09;掩模&#xff1a;三…

springBoot 整合ModBus TCP

ModBus是什么&#xff1a; ModBus是一种串行通信协议&#xff0c;主要用于从仪器和控制设备传输信号到主控制器或数据采集系统&#xff0c;例如用于测量温度和湿度并将结果传输到计算机的系统。&#xff08;百度答案&#xff09; ModBus 有些什么东西&#xff1a; ModBus其分…

数据结构——实验二·栈

海~~欢迎来到Tubishu的博客&#x1f338;如果你也是一名在校大学生&#xff0c;正在寻找各种变成资源&#xff0c;那么你就来对地方啦&#x1f31f; Tubishu是一名计算机本科生&#xff0c;会不定期整理和分享学习中的优质资源&#xff0c;希望能为你的编程之路添砖加瓦⭐&…

【IEEE Fellow 主讲报告| EI检索稳定】第五届机器学习与智能系统工程国际学术会议(MLISE 2025)

重要信息 会议时间地点&#xff1a;2025年6月13-15日 中国深圳 会议官网&#xff1a;http://mlise.org EI Compendex/Scopus稳定检索 会议简介 第五届机器学习与智能系统工程国际学术会议将于6月13-15日在中国深圳隆重召开。本次会议旨在搭建一个顶尖的学术交流平台&#xf…

一文详解Filter类源码和应用

背景 在日常开发中&#xff0c;经常会有需要统一对请求做一些处理&#xff0c;常见的比如记录日志、权限安全控制、响应处理等。此时&#xff0c;ServletApi中的Filter类&#xff0c;就可以很方便的实现上述效果。 Filter类 是一个接口&#xff0c;属于 Java Servlet API 的一部…

开发环境搭建-1:配置 WSL (类 centos 的 oracle linux 官方镜像)

一些 Linux 基本概念 个人理解&#xff0c;并且为了便于理解&#xff0c;可能会存在一些问题&#xff0c;如果有根本上的错误希望大家及时指出 发行版 WSL 的系统是基于特定发行版的特定版本的 Linux 发行版 有固定组织维护的、开箱就能用的 Linux 发行版由固定的团队、社区…

llama-2-7b权重文件转hf格式及模型使用

目录 1. obtain llama weights 2. convert llama weights files into hf format 3. use llama2 to generate text 1. obtain llama weights &#xff08;1&#xff09;登录huggingface官网&#xff0c;搜索llama-2-7b &#xff08;2&#xff09;填写申请表单&#xff0c;VP…