当前位置: 首页 > news >正文

推荐算法架构7:特征工程(吊打面试官,史上最全!)

系列文章,请多关注

推荐算法架构1:召回

推荐算法架构2:粗排

推荐算法架构3:精排

推荐算法架构4:重排

推荐算法架构5:全链路专项优化

推荐算法架构6:数据样本

推荐算法架构7:特征工程

1 概述

特征工程[1](Feature Engineering)是推荐算法的基础,它对收集到的原始数据进行解析和变换,从而提取出模型所需要的信息。通过挖掘丰富和高质量的特征,并对其进行合理的处理,可以提升模型预估准确度,从而提升推荐系统业务效果。特征工程是一项需要重点掌握的技术。

本文先讲解特征类目体系,分析推荐系统中一般会有哪些特征。然后讲解特征处理范式,分析如何对特征进行离散化、归一化、池化和缺失值填充等处理。最后讲解特征重要性评估,从而提升特征可解释性,并对其进行筛选,以及进一步挖掘更多高质量特征。特征工程的技术架构如图1所示。

图1 特征工程技术架构

2 特征类目体系

掌握特征类目体系,有利于提升特征丰富度,完善特征工程体系。在具体的业务场景中,可以将自己想象为一个真实用户,思考哪些特征对用户点击和转化有比较大的影响。深度学习赋予了特征自动交叉的能力,降低了对领域知识的要求,但不代表不需要加强业务理解能力。

一般来说主要包括环境特征(Context Feature)、用户特征(User Feature)和物品特征(Item Feature)三大类。环境特征一般需要用户授权才能获取,不同业务场景所需的环境特征会有一定区别,可以枚举如下:

  1. 请求时间:如请求发生在周几,是否节假日,发生在几点,当前季节等。

  2. 地理位置:如用户当前所在的国家、省份、城市,以及当地天气和温度等。

  3. 设备信息:如手机机型、手机厂商、操作系统(Android/IOS)等。

  4. 网络信息:如运营商渠道、网络类型(WIFI/5G/4G)等。

  5. 客户端信息:如请求渠道(APP/小程序/H5/PC等)、APP版本号等

  6. 推荐场景:如首页推荐、相关推荐、详情页推荐等

用户特征通常也称用户画像,主要包括用户静态特征、统计特征和行为序列特征三大类,一般也需要用户授权才能获取和使用。用户特征有利于提高个性化分发能力,可以枚举如下:

  1. 静态特征:如用户ID、性别、年龄、注册城市、职业、注册时间、是否VIP、是否新用户、是否已婚,以及是否有小孩等。静态特征通常区分度很高,是推荐系统中的强信号。比如不同性别和年龄的用户,其兴趣差异会很大。是否有小孩,会直接决定用户是否对母婴类目商品有兴趣。静态特征一般很少变动,适用范围广,可以应用到多个不同业务场景中。其难点在于不好收集,需要用户主动提供且授权,才能使用。另外一般需要加密存储,防止用户隐私信息泄露。

  2. 统计特征:如用户近30天、14天和7天的曝光物品数、点击数、购买数、点击率和转化率等。统计特征包括绝对值和相对值两大类,绝对值用来刻画流量信息,相对值则可以刻画效率信息。相对值需要注意其置信度,例如“曝光数2次、点击数1次”,和“曝光数200次、点击数100次”两组特征,点击率虽然同为0.5,但前者置信度明显不足。统计特征大多为后验特征,经过了真实场景充分验证,对模型帮助很大。最后需要注意的是,统计特征容易出现数据穿越问题,生产时要小心。例如构造天级样本时,千万不要把当天的统计数据也计算进去了。

  3.  行为序列特征:目前,针对用户行为序列特征的研究很多,它是当前算法模型效果提升的关键。一个历史行为,可以包括被行为(如被点击)物品的ID,还可以包括其类目ID、品牌ID和卖家ID等物品属性特征,以及历史行为距离当前时间间隔等环境特征。按时间窗口划分,有Session级行为序列、短期行为序列和长期行为序列。按用户反馈正负性划分,有点击、购买和收藏等正反馈序列,和曝光未点击等负反馈序列。构建全面而丰富的用户行为序列,可以充分挖掘用户兴趣,有利于提升模型效果和用户体验。

物品特征主要包括物品静态特征、统计特征和交叉特征三大类。物品是推荐这一行为的实体,充分挖掘其特征有助于筛选出高质量,且用户喜欢的物品。物品特征可以枚举如下:

  1. 静态特征:如物品ID、类目ID、品牌ID、卖家ID、价格、标题和上架时间等。其在不同场景下有一定的区别,比如电商场景和短视频场景。这些特征可由机器识别、运营标注和卖家(或创作者)填写等多种方式产出。

  2. 统计特征:如物品近30天、14天和7天的曝光数、点击数、购买数、点击率和转化率等。统计特征可以表征物品的热度、质量和转化效率等信息,重要性很高。按时间窗口划分,有近30天、近14天、近7天和近3天等构造方法。按统计对象划分,有曝光数、点击数、购买数等绝对值,和点击率、转化率等相对值。按统计粒度划分,既可以统计物品本身数据,还可以统计物品的卖家、对应类目、对应品牌的各项数据。按统计场景划分,可以对推荐、搜索、运营活动和全站等多个场景分别统计。跟用户侧一样,物品统计特征也要注意数据穿越问题。

  3. 交叉特征:物品与用户交叉特征,比如物品在不同性别、年龄用户上的统计特征。有利于挖掘物品在不同人群上的流量和效率表现情况,缓解“辛普森悖论”问题,从而让个性化分发更准确。虽然深度模型可以实现自动特征交叉,但交叉不一定充分。另外交叉特征是强信号特征,可以降低模型学习难度,从而让它将精力用在其他更需要学习的地方。因此,手工构造关键的交叉特征,目前仍然有重要意义。一般来说,用户特征与物品特征间交叉,比用户特征之间,或物品特征之间交叉,更为重要。

3 特征处理范式

收集到原始特征后,还需要进一步进行离散化、归一化、池化和缺失值填充等处理,才能输入到模型中。特征处理有助于让模型学习更高效,更鲁棒,因此同样十分重要。针对不同类型的特征,会有不同的处理方法。特征类型主要有离散型、连续型和多值特征三大类。

离散型特征,一般也称为类别型特征,如物品ID、类目ID和品牌ID等。类别型特征枚举值多,区分度高,是推荐系统中的强信号。而且大多是静态特征,不需要后验数据,冷启动效果好。离散型特征主要有如下处理方法:

  1. one-hot编码:每个类别为一个二进制向量,向量中每个维度代表一个类别取值,只有一个维度的值为1,其余均为0。one-hot编码简单易用,是机器学习中经常采用的编码方法。但当特征类别值较多时,会遇到“维度灾难”问题。

  2. Hash编码:利用Hash函数,对原始值进行变换和降维。有较强的压缩能力,特别适合于类别值很多的特征。同时其计算速度很快,额外开销小。但有一定概率会将不同原始值Hash为同一值,存在Hash冲突问题,可能影响算法准确度。另外Hash编码会导致原始值难以识别,可解释性降低。

连续型特征,如用户侧和物品侧的各项统计特征。它可以有效表征用户活跃度、物品质量、物品转化效率等信息,因此十分重要。另外很多连续型特征同时也是后验特征,经过了大量真实用户检验,可以提升模型预估准确性。连续型特征主要有如下处理方法:

  1. 保持原始值:可以将连续型特征,直接与类别型特征的Embedding编码向量,拼接起来,然后输入到模型中。DeepCrossing[2]等早期深度模型通常采用这一方案。它操作简单,容易实现,但泛化能力差,且容易受异常值影响。

  2. 分桶离散化:目前常用的方法,利用预先定义的分桶边界值,将连续值归入对应桶内。这种方法有利于提升模型泛化能力,降低过拟合问题,同时对异常值不敏感,因此应用十分广泛。有等距分桶和等频分桶等多种具体实现方式,一般来说正样本等频分桶效果较好。分桶法的缺点是位于分桶边界附近的数值,即使差距很小,也有可能会被归入不同的桶内。最后,分桶法需要注意尽量让每个桶内都有充足样本,且样本不要集中于个别桶内。

  3. 归一化:有最大最小值归一化、对数函数转换、区间缩放法等多种方法。归一化有利于降低个别特征的主导地位,让模型学习更平稳,并加快收敛速度。

多值特征,最典型的就是用户行为序列,以及用户Tag、物品Tag和物品标题等特征。推荐系统中,绝大多数的特征都是单值的,比如用户性别和年龄。但有部分特征是数组等多值形式,比如物品标题由多个字组成,用户行为序列由多个历史行为组成等。多值特征的数组长度不固定,无法直接输入到模型中,因此需要转换为固定长度,主要方法有:

  1. 池化:如最大值池化、求和池化和平均池化等方法。先利用离散型特征或连续型特征的处理方法,对多值特征中的每个特征值进行转换,并进行Embedding编码。然后对它们求最大值、求和或求平均,将其压缩为一个单值Embedding向量。这种方法比较简单,计算耗时低,但没有考虑不同特征值之间的重要性差别。为了解决这一问题,Attention[3]池化被提出。它先计算每个特征值的权重,然后再加权求和。目前物品标题等普通多值特征常使用平均池化,而用户行为序列则可以使用Attention池化。

  2. 序列建模:常用在用户行为序列特征的处理中。它利用LSTM[4]或GRU[5]等循环神经网络,或Transformer[6]网络进行信息抽取,并将不定长的原始序列转换为一个定长向量,然后再输入到模型上层网络中。Transformer表达能力强,并行计算快,目前已经成为了行为序列建模的主流方案。

特征工程中,还经常碰到缺失值和异常值问题。对于缺失值,可以用平均值、固定值、中位数或近邻值进行填充,也可以看做一种普通数值而不填充。对于异常值,可以做最值截断、平滑或直接去除等操作。

4 特征重要性评估

特征重要性评估,一方面可以用来做特征筛选,精简不必要的特征,从而减少离线和在线计算和存储压力。另一方面可以提高算法可解释性,帮助卖家(或创作者)高效运营。另外还可以为特征挖掘寻找方向,方便后续构造出更多重要特征。

特征重要性评估,有离线特征法、离线模型法和在线模型法三大类。

离线特征法,计算待评估特征与标签(如点击、购买)间的相关性,从而衡量是否是强特征。计算方法有皮尔逊系数、斯皮尔曼系数、单特征AUC[7]等。AUC常用来衡量模型排序能力,应用最多。离线特征法不用训练模型,简单易用,但无法刻画特征经过交叉后的重要性,故准确率不高。

离线模型法,可以训练待评估特征剔除前和剔除后两个模型,然后对比它们的AUC和GAUC[8]等指标。剔除特征后,离线指标下降越多,则说明该特征越重要。离线模型法可以充分考虑待评估特征与其他特征交叉后的重要性,其准确性较高。

在线模型法,则将特征剔除前和剔除后两个模型,进行在线AB测试。其准确性最高,但同时成本也最高。另外由于需要用到真实流量,因此一定要谨慎操作。

5 参考文献

[1] Turner, C.R., Fuggetta, A., Lavazza, L., Wolf, A.L.: A conceptual basis for feature engineering. Journal of Systems and Software 49(1), 3–15 (1999)

[2] Ying Shan, T Ryan Hoens, et al. 2016. Deep crossing: Web-scale modeling without manually crafted combinatorial features. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 255–262.

[3] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. 2015. Neural machine translation by jointly learning to align and translate. In Proceedings of the 3rd International Conference on Learning Representations (ICLR’15)

[4] Sepp Hochreiter and Jürgen Schmidhuber. 1997. Long short-term memory. Neural Comput. 9, 8 (1997), 1735–1780.

[5] Kyunghyun Cho, Bart van Merrienboer, C¸ aglar Gulc¸ehre, ¨ Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. Learning phrase representations using RNN encoder-decoder for statistical machine translation. In Proc. of the Conference on Empirical Methods in Natural Language Processing (EMNLP), 2014.

[6] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in Neural Information Processing Systems. 5998–6008.

[7] T. Fawcett, ‘‘An introduction to ROC analysis,’’ Pattern Recognit. Lett., vol. 27, no. 8, pp. 861–874, Jun. 2006.

[8] Guorui Zhou, Xiaoqiang Zhu, et al. 2018. Deep Interest Network for Click-Through Rate Prediction. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. ACM, 1059–1068.

系列文章,请多关注

推荐算法架构1:召回

推荐算法架构2:粗排

推荐算法架构3:精排

推荐算法架构4:重排

推荐算法架构5:全链路专项优化

推荐算法架构6:数据样本

推荐算法架构7:特征工程

相关文章:

推荐算法架构7:特征工程(吊打面试官,史上最全!)

系列文章,请多关注 推荐算法架构1:召回 推荐算法架构2:粗排 推荐算法架构3:精排 推荐算法架构4:重排 推荐算法架构5:全链路专项优化 推荐算法架构6:数据样本 推荐算法架构7:特…...

Web前端 ---- 【Vue】vue路由守卫(全局前置路由守卫、全局后置路由守卫、局部路由path守卫、局部路由component守卫)

目录 前言 全局前置路由守卫 全局后置路由守卫 局部路由守卫之path守卫 局部路由守卫之component守卫 前言 本文介绍Vue2最后的知识点,关于vue的路由守卫。也就是鉴权,不是所有的组件任何人都可以访问到的,需要权限,而根据权限…...

uniapp点击tabbar之前做判断

在UniApp中,可以通过监听 tabBar 的 click 事件来在点击 tabBar 前做判断。具体步骤如下: 在 pages.json 文件中配置 tabBar,例如: {"pages":[{"path":"pages/home/home","name":"h…...

DLLNotFoundException:xxx tolua... 错误打印

DLLNotFoundException:xxx tolua... 错误打印 一、DLLNotFoundException介绍二、Plugins文件夹文件目录结构如下: 三、Plugins中的Android文件夹四、Plugins中的IOS文件夹这里不说了没测试过不过原理应该也是选择对应的平台即可五、Plugins中的x86和X86_64文件夹 一…...

Python量化投资——金融数据最佳实践: 使用qteasy+tushare搭建本地金融数据仓库并定期批量更新【附源码】

用qteasytushare实现金融数据本地化存储及访问 目的什么是qteasy什么是tushare为什么要本地化使用qteasy创建本地数据仓库qteasy支持的几种本地化仓库类型配置本地数据仓库配置tushare 的API token 配置本地数据源 —— 用MySQL数据库作为本地数据源下载金融历史数据 数据的定期…...

【投稿】北海 - Rust与面向对象(二)

模板方法 Rust提供了trait,类似于面向对象的接口,不同的是,将传统面向对象的虚函数表从对象中分离出来,trait仍然是一个函数表,只不过是独立的,它的参数self指针可以指向任何实现了该trait的结构。 从对象中…...

HarmonyOS构建第一个ArkTS应用(FA模型)

构建第一个ArkTS应用(FA模型) 创建ArkTS工程 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择File > New > Create Project来创建一个新工程。 选择Application应用开发&a…...

阿里云 ARMS 应用监控重磅支持 Java 21

作者:牧思 & 山猎 前言 今年的 9 月 19 日,作为最新的 LTS (Long Term Support) Java 版本,Java 21 正式 GA,带来了不少重量级的更新,详情请参考 The Arrival of Java 21 [ 1] 。虽然目前 Java 11 和 Java 17 都…...

C++ 类的析构函数和构造函数

构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。主要用来在创建对象时初始化对象即为对象成员变量赋初始值。 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用…...

STM32——CAN协议

文章目录 一.CAN协议的基本特点1.1 特点1.2 电平标准1.3 基本的五个帧1.4 数据帧 二.数据帧解析2.1 帧起始和仲裁段2.2 控制段2.3 数据段和CRC段2.4 ACK段和帧结束 三.总线仲裁四.位时序五.STM32CAN控制器原理与配置5.1 STM32CAN控制器介绍5.2 CAN的模式5.3 CAN框图 六 手册寄存…...

数据结构-如何巧妙实现一个栈?逐步解析与代码示例

文章目录 引言1.栈的基本概念2.选择数组还是链表?3. 定义栈结构4.初始化栈5.压栈操作6.弹栈操作7.查看栈顶和判断栈空9.销毁栈操作10.测试并且打印栈内容栈的实际应用结论 引言 栈是一种基本但强大的数据结构,它在许多算法和系统功能中扮演着关键角色。…...

web前端之拖拽API、vue3实现图片上传拖拽排序、拖放、投掷、复制、若依、vuedraggable

MENU vue2html5原生dom原生JavaScript实现跨区域拖放vue2实现跨区域拖放vue2mousedown实现全屏拖动,全屏投掷vue3element-plusvuedraggable实现图片上传拖拽排序vue2transition-group实现拖动排序原生拖拽排序 vue2html5原生dom原生JavaScript实现跨区域拖放 关键代…...

第11章 GUI Page403~405 步骤三 设置滚动范围

运行效果: 源代码: /**************************************************************** Name: wxMyPainterApp.h* Purpose: Defines Application Class* Author: yanzhenxi (3065598272qq.com)* Created: 2023-12-21* Copyright: yanzhen…...

【Spring Security】打造安全无忧的Web应用--使用篇

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Spring Security的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Spring Security中的授权是…...

体验一下 CodeGPT 插件

体验一下 CodeGPT 插件 0. 背景1. CodeGPT 插件安装2. CodeGPT 插件基本配置3. (可选)CodeGPT 插件预制提示词原始配置(英文)4. CodeGPT 插件预制提示词配置(中文)5. 简单验证一下 0. 背景 看到B站Up主 “wwwzhouhui” 一个关于 CodeGPT 的视频,感觉挺有意思&#…...

深度学习 | 基础卷积神经网络

卷积神经网络是人脸识别、自动驾驶汽车等大多数计算机视觉应用的支柱。可以认为是一种特殊的神经网络架构,其中基本的矩阵乘法运算被卷积运算取代,专门处理具有网格状拓扑结构的数据。 1、全连接层的问题 1.1、全连接层的问题 “全连接层”的特点是每个…...

[字符编码]windwos下使用libiconv转换编码格式(二)

在http://t.csdnimg.cn/PLUuz笔记中实现了常用编码格式转换的功能,但这还是一个demo。因为代码中向libiconv库函数传递的字符串是存放在堆空间中的(我也是从网上找例子测试,是否一定要开辟堆空间存放还有待考证),如果一次性转换的字节数很巨大的话,就会导致内存空间不足,进而引…...

textile 语法

1、文字修饰 修饰行内文字 字体样式textile 语法对应的 XHTML 语法实际显示效果加强*strong*<strong>strong</strong>strong强调_emphasis_<em>emphasis</em>emphasis加粗**bold**<b>bold</b>bold斜体__italics__<i>italics</i…...

【快速开发】使用SvelteKit

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…...

【docker笔记】docker常用命令

1、帮助启动类命令 1.1 启动、重启、查询当前状态、停止 systemctl start docker systemctl stop docker systemctl restart docker systemctl status docker1.2 设置开机启动 systemctl enable docker1.3 查看docker概要信息 docker info1.4 查看docker帮助文档 docker -…...

API 接口怎样设计才安全?

设计安全的API接口是确保应用程序和数据安全的重要方面之一。下面是一些设计安全的API接口的常见实践&#xff1a; 1. 身份验证和授权&#xff1a; 使用适当的身份验证机制&#xff0c;如OAuth、JWT或基本身份验证&#xff0c;以确保只有经过身份验证的用户可以访问API。实施…...

网站被CC攻击了怎么办?CC攻击有什么危害

网络爆炸性地发展&#xff0c;网络环境也日益复杂和开放&#xff0c;同时各种各样的恶意威胁和攻击日益增多&#xff0c;其中网站被CC也是常见的情况。 CC攻击有什么危害呢&#xff1f; 被CC会导致&#xff1a; 1.访问速度变慢&#xff1a;网站遭受CC攻击后&#xff0c;由于…...

Docker - 镜像 | 容器 日常开发常用指令 + 演示(一文通关)

目录 Docker 开发常用指令汇总 辅助命令 docker version docker info docker --help 镜像命令 查看镜像信息 下载镜像 搜索镜像 删除镜像 容器命令 查看运行中的容器 运行容器 停止、启动、重启、暂停、恢复容器 杀死容器 删除容器 查看容器日志 进入容器内部…...

要参加微软官方 Copilot 智能编程训练营了

GitHub Copilot 是由 GitHub、OpenAI 和 Microsoft 联合开发的生成式 AI 模型驱动的。 GitHub Copilot 分析用户正在编辑的文件及相关文件的上下文&#xff0c;并在编写代码时提供自动补全式的建议。 刚好下周要参加微软官方组织的 GitHub Copilot 工作坊-智能编程训练营&…...

Python入门学习篇(五)——列表字典

1 列表 1.1 定义 ①有序可重复的元素集合 ②可以存放不同类型的数据 ③个人理解:类似于java中的数组1.2 相关方法 1.2.1 获取列表长度 a 语法 len(列表名)b 示例代码 list2 [1, 2, "hello", 4] print(len(list2))c 运行结果 1.2.2 获取列表值 a 语法 列表名…...

React尝鲜

组件 React的组件就是一个js函数&#xff0c;函数内部return一个由jsx语法创建的html代码片段。 //MyComp.js export default function MyComp(){return (<h1>我是新组件MyComp</h1>) } 在需要引入组件的地方import导入组件&#xff0c;并放在相应位置 //App.js…...

锯齿云服务器租赁使用教程

首先登陆锯齿云账号 网盘上传数据集与代码 随后我们需要做的是将所需要的数据集与代码上传到网盘&#xff08;也可以直接在租用服务器后将数据集与代码传到服务器的硬盘上&#xff0c;但这样做会消耗大量时间&#xff0c;造成资源浪费&#xff09; 点击工作空间&#xff1a;…...

HarmonyOS和OpenHarmony的区别

1.概要 众所周知&#xff0c;鸿蒙是华为开发的一款分布式操作系统。因为开发系统&#xff0c;最重要的是集思广益&#xff0c;大家共同维护。为了在IOS和Android之间生存&#xff0c;鸿蒙的茁壮成长一定是需要开源&#xff0c;各方助力才能实现。   在这种思想上&#xff0c;…...

Redis Stream消息队列之基本语法与使用方式

前言 本文的主角是Redis Stream&#xff0c;它是Redis5.0版本新增加的数据结构&#xff0c;主要用于消息队列&#xff0c;提供了消息的持久化和主备复制功能&#xff0c;可以让任何客户端访问任何时刻的数据&#xff0c;并且能记住每一个客户端的访问位置&#xff0c;还能保证…...

制造行业定制软件解决方案——工业信息采集平台

摘要&#xff1a;针对目前企业在线检测数据信号种类繁多&#xff0c;缺乏统一监控人员和及时处置措施等问题。蓝鹏测控开发针对企业工业生产的在线数据的集中采集分析平台&#xff0c;通过该工业信息采集平台可将企业日常各种仪表设备能够得到数据进行集中分析处理存储&#xf…...

[python]用python实现对arxml文件的操作

目录 关键词平台说明一、背景二、方法2.1 库2.2 code 关键词 python、excel、DBC、openpyxl 平台说明 项目Valuepython版本3.6 一、背景 有时候需要批量处理arxml文件(ARXML 文件符合 AUTOSAR 4.0 标准)&#xff0c;但是工作量太大&#xff0c;阔以考虑用python。 二、方…...

pdf 在线编辑

https://smallpdf.com/edit-pdf#rapp 参考 https://zh.wikihow.com/%E5%B0%86%E5%9B%BE%E5%83%8F%E6%8F%92%E5%85%A5PDF...

自然语言处理(NLP):理解语言,赋能未来

目录 前言1 什么是NLP2 NLP的用途3 发展历史4 NLP的基本任务4.1 词性标注&#xff08;Part-of-Speech Tagging&#xff09;4.2 命名实体识别&#xff08;Named Entity Recognition&#xff09;4.3 共指消解&#xff08;Co-reference Resolution&#xff09;4.4 依存关系分析&am…...

FastAPI使用loguru时,出现重复日志打印的解决方案

首先看图&#xff0c;发现每个日志都被打印了3条。其实这个和uvicorn日志打印的设计有关&#xff0c;在uvicorn中有多个logger&#xff0c;分别是uvicorn、uvicorn.error、uvicorn.access 而LOGGING默认有一个属性propagate&#xff0c;这个属性为True时&#xff0c;子日志记录…...

构建每个聚类的profile和deletion_mean特征

通过summarize_clusters函数构建每个聚类的protein[cluster_profile]和protein[cluster_deletion_mean]特征。目的是把extra_msa信息反映到msa中。 集成函数数据处理流程&#xff1a; sample_msa ->make_masked_msa -> nearest_neighbor_clusters -> summarize_clu…...

Milvus数据一致性介绍及选择方法

1、Milvus 时钟机制 Milvus 通过时间戳水印来保障读链路的一致性&#xff0c;如下图所示&#xff0c;在往消息队列插入数据时&#xff0c; Milvus 不光会为这些插入记录打上时间戳&#xff0c;还会不间断地插入同步时间戳&#xff0c;以图中同步时间戳 syncTs1 为例&#xff0…...

异常处理和单元测试python

一、实验题目 异常处理和单元测试 二、实验目的 了解异常的基本概念和常用异常类。掌握异常处理的格式、处理方法。掌握断言语句的作用和使用方法。了解单元测试的基本概念和作用。掌握在Python中使用测试模块进行单元测试的方法和步骤。 三、实验内容 编程实现如下功能&a…...

蓝牙物联网在汽车领域的应用

I、蓝牙的技术特点 ​ 1998 年 5 月&#xff0c;瑞典爱立信、芬兰诺基亚、日本东芝、美国IBM 和英特尔公司五家著名厂商&#xff0c;在联合拓展短离线通信技术的标准化活动时提出了蓝牙技术的概念。蓝牙工作在无需许可的 2.4GHz 工业频段 (SIM)之上(我国的频段范围为2400.0~248…...

用23种设计模式打造一个cocos creator的游戏框架----(二十二)原型模式

1、模式标准 模式名称&#xff1a;原型模式 模式分类&#xff1a;创建型 模式意图&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过复制这些原型创建新的对象 结构图&#xff1a; 适用于&#xff1a; 1、当一个系统应该独立于它的产品创建、构成和表示时 2、…...

paddle 55 使用Paddle Inference部署嵌入nms的PPYoloe模型(端到端fps达到52.63)

Paddle Inference 是飞桨的原生推理库,提供服务器端的高性能推理能力。由于 Paddle Inference 能力直接基于飞桨的训练算子,因此它支持飞桨训练出的所有模型的推理。paddle平台训练出的模型转换为静态图时可以选用Paddle Inference的框架进行推理,博主以前都是将静态图转换为…...

自动化测试工具-Selenium:WebDriver的API/方法使用全解

我们上一篇文章介绍了Selenium的三大组件&#xff0c;其中介绍了WebDriver是最重要的组件。在这里&#xff0c;我们将看到WebDriver常用的API/方法&#xff08;注&#xff1a;这里使用Python语言来进行演示&#xff09;。 1. WebDriver创建 打开VSCode&#xff0c;我们首先引…...

如何通过蓝牙串口启动智能物联网?

1、低功耗蓝牙(BLE)介绍 BLE 技术是一种低成本、短距离、可互操作的鲁棒性无线技术&#xff0c;工作在免许可的 2,4 GHZ 工业、科学、医学(Industrial Scientific Medical&#xff0c;ISM)频段。BLE在设计之初便被定位为一种超低功耗(Ultra Low Power&#xff0c;ULP)无线技术&…...

Linux---基础操作命令

内容导航 类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统…...

uniapp怎么动态渲染导航栏的title?

直接在接口请求里面写入以下&#xff1a; 自己要什么参数就写什么参数 本人仅供参考&#xff1a; this.name res.data.data[i].name; console.log(名字, res.data.data[i].name); uni.setNavigationBarTitle({title: this.name}) 效果&#xff1a;...

【机器学习】决策树

参考课程视频&#xff1a;https://www.icourse163.org/course/NEU-1462101162?tid1471214452 1 概述 样子&#xff1a; 2 分裂 2.1 分裂原则 信息增益 信息增益比 基尼指数 3 终止 & 剪枝 3.1 终止条件 无需分裂 当前节点内样本同属一类 无法分裂 当前节点内…...

[node] Node.js的全局对象Global

[node] Node.js的全局对象Global 什么是全局对象 & 全局变量全局对象与全局变量全局变量-- __filename全局变量-- __dirname全局函数-- setTimeout(cb, ms)全局函数-- clearTimeout(t)全局函数-- setInterval(cb, ms)全局变量-- consoleconsole 方法概览 全局变量-- proces…...

完整的 Meteor NPM 集成

在Meteor中&#xff0c;你只能使用包内的模块。你不能直接将模块与流星应用一起使用。此软件包解决了该问题 文章目录 源码下载地址安装定义软件包使用软件包在 Meteor 方法中使用 npm 模块的示例应用程序接口异步实用程序Async.runSync&#xff08;函数&#xff09;Meteor.sy…...

智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.骑手优化算法4.实验参数设定5.算法结果6.…...

解决 MATLAB 遗传算法中 exitflg=4 的问题

一、优化问题简介 以求解下述优化问题为例&#xff1a; P 1 : min ⁡ p ∑ k 1 K p k s . t . { ∑ k 1 K R k r e q l o g ( 1 α k ∗ p k ) ≤ B b s , ∀ k ∈ K p k ≥ 0 , ∀ k ∈ K \begin{align} {P_1:}&\mathop{\min}_{\bm{p}}{ \sum\limits_{k1}^K p_k } \no…...

云卷云舒:云原生业务应用成熟度模型

笔者最近学习了信通院发布的《云原生应用成熟度的评估模型》&#xff0c;做如下解读&#xff1a; 一、概述 云原生业务应用成熟度模型从企业业务应用基础设施域、应用研发域以及服务治理域等三个能力域二十个过程域综合评估企业业务应用在弹性、高可用、自愈性、可观测性以及…...