聊聊基于Alink库的特征工程方法

news2024/9/9 0:06:13

独热编码

OneHotEncoder 是用于将类别型特征转换为独热编码的类。独热编码是一种常用的特征编码方式,特别适用于处理类别型特征,将其转换为数值型特征。
对于每个类别型特征,OneHotEncoder 将其编码成一个长度为类别数量的向量。
每个类别对应一个维度,如果样本的该特征值为该类别,则对应维度置1,其他维度置0。

示例:

List <Row> df = Arrays.asList(
        Row.of("a", 1),
        Row.of("b", 1),
        Row.of("c", 1),
        Row.of("e", 2),
        Row.of("a", 2),
        Row.of("b", 1),
        Row.of("c", 2),
        Row.of("d", 2),
        Row.of(null, 1)
);
BatchOperator <?> inOp = new MemSourceBatchOp(df, "query string, weight int");
OneHotEncoder one_hot = new OneHotEncoder().setSelectedCols("query").setEncode(Encode.VECTOR);
// 或者单独设置输出列
// OneHotEncoder one_hot = new OneHotEncoder().setSelectedCols("query").setOutputCols("output");
one_hot.fit(inOp).transform(inOp).print();

输出结果如下所示:

queryweight
$5$0:1.01
$5$1:1.01
$5$2:1.01
5 5 52
$5$0:1.02
$5$1:1.01
$5$2:1.02
$5$3:1.02
$5$4:1.01

向量聚合

VectorAssembler 是用于将多列特征合并为单列特征向量的类。它将多个特征列的值合并为一个特征向量,通常用于特征工程的最后阶段,以准备机器学习模型的输入特征。
对于每个样本,VectorAssembler 将选定的特征列的值合并成一个特征向量。特征向量的维度等于选定的特征列数,每个维度对应一个特征列的值。

合并的特征列仅支持数值类型。

示例:

List <Row> df = Arrays.asList(
        Row.of("0", "$6$1:2.0 2:3.0 5:4.3", "3.0 2.0 3.0"),
        Row.of("1", "$8$1:2.0 2:3.0 7:4.3", "3.0 2.0 3.0"),
        Row.of("2", "$8$1:2.0 2:3.0 7:4.3", "2.0 3.0 2.2")
);
MemSourceBatchOp data = new MemSourceBatchOp(df, "id string, c0 string, c1 string");
VectorAssembler res = new VectorAssembler()
        .setSelectedCols("c0", "c1")
        .setOutputCol("table2vec");
res.transform(data).print();

输出结果如下所示:

idc0c1table2vec
0$6$1:2.0 2:3.0 5:4.33.0 2.0 3.0$9$1:2.0 2:3.0 … 8:3.0
1$8$1:2.0 2:3.0 7:4.33.0 2.0 3.0$11$1:2.0 2:3.0 … 10:3.0
2$8$1:2.0 2:3.0 7:4.32.0 3.0 2.2$11$1:2.0 2:3.0 … 10:2.2

特征哈希

FeatureHasher 是用于将多列特征进行哈希映射,将特征合并成特征向量的类。
对于每个样本,将选定的特征列的值进行哈希映射,得到特征向量的维度。每个特征列的值经过哈希函数映射到特征向量的对应维度,形成一个特征向量。
这种方式可以降低特征维度,减少内存和计算资源的消耗,尤其适用于高维稀疏特征。

不限于数值类型的数据

示例:

List<Row> df1 = Arrays.asList(
        Row.of(1.1, true, 2, "A"),
        Row.of(1.1, false, 2, "B"),
        Row.of(1.1, true, 1, "B"),
        Row.of(2.2, true, 1, "A")
);
BatchOperator <?> inOp = new MemSourceBatchOp(df1, "double double, bool boolean, number int, str string");
FeatureHasher binarizer = new FeatureHasher().setSelectedCols("double", "bool", "number", "str").setOutputCol("output").setNumFeatures(3);

输出结果如下所示:

doubleboolnumberstroutput
1.1000true2A$3$0:3.0 1:1.1 2:1.0
1.1000false2B$3$0:3.0 1:1.1 2:1.0
1.1000true1B$3$0:2.0 1:1.1 2:1.0
2.2000true1A$3$0:2.0 1:2.2 2:1.0

文本特征生成

DocCountVectorizer 用于将文本数据转换为文本特征向量。它主要适用于文本数据的特征抽取和处理,以便进一步用于机器学习模型的训练和预测。主要用于自然语言处理(NLP)任务,如文本分类、情感分析、主题建模等。

特征抽取过程:

  • 对于每个文本数据,DocCountVectorizer 统计每个词汇在文本中的出现次数,作为特征向量的值。

  • 每个文本对应一个特征向量,特征向量的维度为词汇表的大小。

Alink库封装的DocCountVectorizer支持生成多种类型的特征向量,支持IDF/WORD_COUNT/TF_IDF/Binary/TF。默认是WORD_COUNT特征类型,即单词出现的频率。

示例:

List <Row> df = Arrays.asList(
        Row.of(0, "二手旧书:医学电磁成像"),
        Row.of(1, "二手美国文学选读( 下册 )李宜燮南开大学出版社 9787310003969"),
        Row.of(2, "二手正版图解象棋入门/谢恩思主编/华龄出版社"),
        Row.of(3, "二手中国糖尿病文献索引"),
        Row.of(4, "二手郁达夫文集( 国内版 )全十二册馆藏书")
);
BatchOperator <?> inOp = new MemSourceBatchOp(df, "id int, text string");
Pipeline pipeline = new Pipeline()
        .add(new Segment().setSelectedCol("text")) // 分词
        .add(new DocCountVectorizer().setFeatureType("TF_IDF").setSelectedCol("text").setOutputCol("vec"));
pipeline.fit(inOp).transform(inOp).print();

输出结果如下所示:

idtextvec
0二手 旧书 : 医学 电磁 成像$37$10:0.1831020481113516 14:0.1831020481113516 … 34:0.1831020481113516
1二手 美国 文学 选读 ( 下册 ) 李宜燮 南开大学 出版社 9787310003969$37$0:0.04077336356234972 1:0.04077336356234972 … 35:0.06462425227459469
2二手 正版 图解 象棋 入门 / 谢恩 思 主编 / 华龄 出版社$37$5:0.0915510240556758 6:0.0915510240556758 … 36:0.1831020481113516
3二手 中国 糖尿病 文献 索引$37$8:0.21972245773362198 9:0.21972245773362198 … 32:0.21972245773362198
4二手 郁达夫 文集 ( 国内 版 ) 全 十二册 馆藏 书$37$0:0.046209812037329684 1:0.046209812037329684 … 30:0.07324081924454065

文本哈希特征生成

DocHashCountVectorizer 将文本数据中的每个词汇通过哈希函数映射到特征向量的维度,得到特征向量。
特征向量的维度由用户设置的参数 numFeatures 决定,通常较小以减少维度。

示例:

List <Row> df = Arrays.asList(
        Row.of(0, "二手旧书:医学电磁成像"),
        Row.of(1, "二手美国文学选读( 下册 )李宜燮南开大学出版社 9787310003969"),
        Row.of(2, "二手正版图解象棋入门/谢恩思主编/华龄出版社"),
        Row.of(3, "二手中国糖尿病文献索引"),
        Row.of(4, "二手郁达夫文集( 国内版 )全十二册馆藏书")
);
BatchOperator <?> inOp = new MemSourceBatchOp(df, "id int, text string");
Pipeline pipeline = new Pipeline()
        .add(new Segment().setSelectedCol("text"))
        .add(new DocHashCountVectorizer().setFeatureType("TF_IDF").setSelectedCol("text").setOutputCol("vec").setNumFeatures(3));
pipeline.fit(inOp).transform(inOp).print();

输出结果如下所示:

idtextvec
0二手 旧书 : 医学 电磁 成像$3$0:-0.7331685343967134 1:-0.5207269374140805
1二手 美国 文学 选读 ( 下册 ) 李宜燮 南开大学 出版社 9787310003969$3$0:-0.776296095243579 1:-0.24504797054780258 2:-0.21559781926450705
2二手 正版 图解 象棋 入门 / 谢恩 思 主编 / 华龄 出版社$3$0:-0.7331685343967134 1:-0.17357564580469348 2:-0.30543024395805163
3二手 中国 糖尿病 文献 索引$3$0:-0.2932674137586854 1:-0.4165815499312644 2:-0.366516292749662
4二手 郁达夫 文集 ( 国内 版 ) 全 十二册 馆藏 书$3$0:-0.5865348275173707 1:-0.34715129160938696 2:-0.24434419516644132

Word2Vec

Word2Vec是Google在2013年开源的一个将词表转为向量的算法,其利用神经网络,可以通过训练,将词映射到K维度空间向量,它主要用于将单词表示成高维空间中的向量,以便能够在计算机上更好地处理自然语言文本。Word2Vec 提供了一种有效的方式来捕获单词之间的语义关系,这对于自然语言处理任务非常有用。

Word2Vec有两种主要模型:Skip-gram和Continuous Bag of Words (CBOW)。
Skip-gram模型是预测上下文单词,而CBOW模型是预测中心单词。

示例:

List <Row> df = Arrays.asList(
        Row.of("A B C")
);
BatchOperator <?> inOp = new MemSourceBatchOp(df, "tokens string");
Word2Vec word2vec = new Word2Vec().setSelectedCol("tokens").setMinCount(1).setVectorSize(2).setOutputCol("vec");
word2vec.fit(inOp).transform(inOp).print();

输出结果如下所示:

tokensvec
A B C0.7309789158041142 0.40841706187852966

最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

五、面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下。
在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

相关文章

使用 Python 进行马尔可夫链职业路径建模

欢迎来到雲闪世界。从职业角度来说&#xff0c;我是个非常奇怪的人&#xff1a;我在一家初创公司担任软件/机器学习工程师&#xff0c;拥有物理学硕士学位&#xff0c;即将为航空航天和机械工程博士学位论文答辩。在我不断变化的职业生涯中&#xff0c;有两件事始终不变&#x…

Java9-21的开发相关新特性总结

目录 下载地址 Java 21(LTS) 概述 变动说明 1、JEP 441: Switch 的模式匹配&#xff08;正式特性&#xff09; 功能进化 Switch 模式匹配 类型标签 null标签 守卫标签 使用enum常量作值 语法总结 2、JEP 440&#xff1a;Record模式&#xff08;正式特性&#xff09…

GPU的shader分支跳转性能总结

引言&#xff1a; 如下的&#xff08;一&#xff09;与&#xff08;二&#xff09;分别属于uniform branch与宏定义&#xff0c;&#xff08;一&#xff09;至始至终是一个固定的值&#xff0c;分支只执行一条而不是既有执行condition ture 也有执行condition false 的情况&am…

基于CentOS Stream 9平台安装MySQL Community Server 9.0.1 Innovation

1. 安装之前 1.1 查看系统版本 cat /etc/redhat-releaseCentOS Stream release 9 1.2 查看cpu架构 lscpu架构&#xff1a; x86_64 CPU 运行模式&#xff1a; 32-bit, 64-bit 2. 官网下载 https://dev.mysql.com/downloads/mysql/ 要多看看 官方9.0文档&#xff1a;https://d…

前端面试基础题(微信公众号:前端面试成长之路)

BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BFC、IFC、GFC和FFC Whats FC&#xff1f; 一定不是KFC&#xff0c;FC的全称是&#xff1a;Formatting Contexts&#xff0c;是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域&#xff0c;并…

【C++进阶学习】第九弹——哈希的原理与实现——开放寻址法的讲解

前言&#xff1a; 在前面&#xff0c;我们已经学习了很多存储机构&#xff0c;包括线性存储、树性存储等&#xff0c;并学习了多种拓展结构&#xff0c;效率也越来越高&#xff0c;但是是否有一种存储结构可以在大部分问题中都一次找到目标值呢&#xff1f;哈希可能能实现 目录…

npm国内淘宝镜像registry镜像过期

我们在使用npm的时候会遇到淘宝镜像安装过期的问题 首先了解 npm 淘宝镜像是一个 npm 注册表的镜像&#xff0c;用于加速 npm 包的下载。 一、如何设置&#xff1f; 如何设置淘宝镜像&#xff1f;淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com n…

【书生大模型实战营(暑假场)】入门任务一 Linux+InternStudio 关卡

入门任务一 LinuxInternStudio 关卡 参考&#xff1a; 教程任务 1 闯关任务 1.1 基于 VScode 的 SSH 链接 感谢官方教程的清晰指引&#xff0c;基于VS code 实现 SSH 的链接并不困难&#xff0c;完成公钥配之后&#xff0c;可以实现快速一键链接&#xff0c;链接后效果如下…

搭建自动化 Web 页面性能检测系统 —— 部署篇

作为一个前端想去做全栈的项目时&#xff0c;可能第一个思路是 node vue/react。一开始可能会新建多个工程目录去实现&#xff0c;假设分别为 web 和 server&#xff0c;也许还有管理后台的代码 admin&#xff0c;那么就有了三个工程的代码。此时为了方便管理就需要在远程仓库…

JSON介绍及使用

目录 什么是JSON JSON在JavaScript中的使用 JSON的定义 JSON的访问 JSON的两个常用方法 JSON在Java中的使用 JavaBean和JSON的相互转换 List和JSON的相互转换 Map和JSON的相互转换 什么是JSON JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的…

No module named pip._internal.cli.main

conda 创建的虚拟化python2.7,里面没有pip报错&#xff1a;No module named pip._internal.cli.main 解决办法 使用 ensurepip 安装 pip python -m ensurepip --upgrade确认 pip 已正确安装 pip --version然后又遇到报错 此时我们只需要更新一下pip python -m pip install --up…

使用 Python 中的 ELSER 进行Serverless 语义搜索:探索夏季奥运会历史

作者&#xff1a;来自 Elastic Essodjolo Kahanam 本博客介绍如何使用语义搜索以自然语言表达形式从 Elasticsearch 索引中获取信息。我们将创建一个无服务器 Elasticsearch 项目&#xff0c;将之前的奥运会数据集加载到索引中&#xff0c;使用推理处理器和 ELSER 模型生成推理…

洛谷 P1883 【模板】三分 | 函数

原题 题目描述 给定 n 个二次函数 f1​(x),f2​(x),…,fn​(x)&#xff08;均形如 ax2bxc&#xff09;&#xff0c;设 &#x1d439;(&#x1d465;)F(x)max{f1​(x),f2​(x),...,fn​(x)}&#xff0c;求 &#x1d439;(&#x1d465;)F(x) 在区间[0,1000] 上的最小值。 输入…

PHP师生荣誉管理系统—计算机毕业设计源码10079

目 录 摘要 1 绪论 1.1 研究背景 1.2论文结构与章节安排 2 师生荣誉管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.…

Hive命令创建数据库和表(内置数据库)

【实验目的】 1) 了解hive操作命令 2) 熟悉hive数据库的操作 【实验原理】 配置完毕hive环境之后&#xff0c;通过hive指令进行创建数据库和表&#xff0c;这些信息被存放在metadata和hdfs上面&#xff0c;当执行操作之后&#xff0c;会在hdfs上有目录结构变化&#xff0c…

windows C/C++系列 64位汇编

Visual Studio 包括 32 位和 64 位托管版本的 MASM&#xff08;Microsoft 宏汇编程序&#xff09;&#xff0c;面向 x64 代码。 它的名称为 ml64.exe&#xff0c;是接受 x64 汇编程序语言的汇编程序。 当你在 Visual Studio 安装期间选择 C 工作负荷时&#xff0c;会安装 MASM …

【运维】远程控制与访问的协议(域,工作组,RDP,ARD,VNC,SSH,SCP)和工具(DDNS,跳板机,堡垒机)

【运维】远程控制与访问的协议&#xff08;域&#xff0c;工作组&#xff0c;RDP&#xff0c;ARD&#xff0c;VNC&#xff0c;SSH&#xff0c;SCP&#xff09;和工具&#xff08;DDNS&#xff0c;跳板机&#xff0c;堡垒机&#xff09; 文章目录 1、远程访问协议1.1 组织&#…

基于 SASL/SCRAM 让 Kafka 实现动态授权认证

一、说明 在大数据处理和分析中 Apache Kafka 已经成为了一个核心组件。然而在生产环境中部署 Kafka 时&#xff0c;安全性是一个必须要考虑的重要因素。SASL&#xff08;简单认证与安全层&#xff09;和 SCRAM&#xff08;基于密码的认证机制的盐化挑战响应认证机制&#xff…

傻瓜式PHP-Webshell免杀学习手册,零基础小白也能看懂

项目描述 一、PHP相关资料 PHP官方手册&#xff1a; https://www.php.net/manual/zh/ PHP函数参考&#xff1a; https://www.php.net/manual/zh/funcref.php 菜鸟教程&#xff1a; https://www.runoob.com/php/php-tutorial.html w3school&#xff1a; https://www.w3school…

网络流量分析>>pcapng文件快速分析有用价值解析

引言 在网络安全和流量管理中&#xff0c;解析网络协议数据包是了解网络行为和检测潜在威胁的关键步骤。本文介绍了如何使用Python解析和分析TCP、UDP和ICMP协议的数据包&#xff0c;并统计端口的访问次数。本文的示例代码展示了如何处理不同协议的数据包&#xff0c;提取关键…