独热码(One-Hot编码)
一、独热码
二、
三、SparkML — OneHotEncoder
OneHotEncoder has been deprecated in 2.3.0 and will be removed in 3.0.0. Please use OneHotEncoderEstimator instead.
3.1、OneHotEncoder将标签指标映射为二值向量,其中最多一个单值。
import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer}val df = spark.createDataFrame(Seq((0, "a"),(1, "b"),(2, "c"),(3, "a"),(4, "a"),(5, "c")
)).toDF("id", "category")val indexer = new StringIndexer().setInputCol("category").setOutputCol("categoryIndex").fit(df)
val indexed = indexer.transform(df)val encoder = new OneHotEncoder().setInputCol("categoryIndex").setOutputCol("categoryVec")
.setDropLast(false)val encoded = encoder.transform(indexed)
encoded.show()
【说明】
1、OneHotEncoder缺省状态下将删除最后一个分类或把最后一个分类作为0.
// 示例
import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer}val fd = spark.createDataFrame( Seq((1.0, "a"), (1.5, "a"), (10.0, "b"), (3.2, "c"),(3.8,"c"))).toDF("x","c")
val ss =new StringIndexer().setInputCol("c").setOutputCol("c_idx")
val ff = ss.fit(fd).transform(fd)
ff.show()
最后一个分类为b,通过OneHotEncoder变为向量后,已被删除。
import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer}val fd = spark.createDataFrame( Seq((1.0, "a"), (1.5, "a"), (10.0, "b"), (3.2, "c"),(3.8,"c"))).toDF("x","c")
val ss =new StringIndexer().setInputCol("c").setOutputCol("c_idx")
val ff = ss.fit(fd).transform(fd)
ff.show()
与其他特征组合为特征向量后,将置为0,请看下例
val assembler = new VectorAssembler().setInputCols(Array("x", "c_idx", "c_idx_vec")).setOutputCol("features")
val vecDF: DataFrame = assembler.transform(fe)
vecDF.show(false)
如果想不删除最后一个分类,可添加setDropLast(False)。
oe.setDropLast(false)
val fl = oe.transform(ff)
fl.show()
与其他特征向量结合后,情况如下:
val vecDFl: DataFrame = assembler.transform(fl)
vecDFl.show(false)
2、如果分类中出现空字符,需要进行处理,如设置为"None",否则会报错。
3.2、OneHotEncoderEstimator
独热码(One-Hot编码)相关推荐
- HDLBits 系列(25)独热码有限状态机实现的简单方式
目录 原题重现 一点解释 最终实现 原题重现 The following is the state transition table for a Moore state machine with on ...
- Verilog专题(二十)one-hot FSM(独热码有限状态机)
HDLBits网址:https://hdlbits.01xz.net/wiki/Main_Page 题目 The following is the state transition table for ...
- FPGA中有限状态机的状态编码采用格雷码还是独热码?
今天看<从算法设计到硬件逻辑的实现>这本电子书时,遇到了一个问题,就是有限状态机的编写中,状态编码是采用格雷码还是独热码呢?究竟采用哪一种编码呢? 采用独热码为什么节省许多组合电路? 等等 ...
- Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码
一般的,在Verilog中最常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码. 二进制码和格雷码是压缩状态编码. 若使用格雷编码,则相邻状态转 ...
- FPGA/数字IC之有限状态机:简介及其编码方式:顺序码、独热码与格雷码比较
目录 一.状态机的分类 二.状态机的优点与存在的问题 三.状态的编码方式 四.三种方式的比较 一.状态机的分类 标准状态机分为摩尔(Moore)状态机与米勒(Mealy)状态机. 摩尔状态机的输出只与 ...
- verilog中状态机的三种编码方式的比较(二进制码、独热码、格雷码)
最近做了一个小项目,是关于状态机中三种编码方式的比较,总结了一下三种编码方式的不同,可以会在以后IC笔试面试过程中用到,简单记录一下三种编码方式的优缺点. 三种编码方式如下图所示:其中独热码只有一位为 ...
- Verilog-状态机编码方式对比:独热码 vs 格雷码
博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...
- Verilog常见编码方式:二进制码、格雷码、独热码
Verilog常见编码方式有:二进制码.格雷码.独热码:三种编码方式各有特点利弊,因此有必要理解比较,以求不同场合的合理选择: 目录 一.结论: 二.详细了解 二进制码 格雷码 独热码 比较 三.参考 ...
- 独热码(one-hot-enconding)的理解以及编码与解码
独热码(one-hot-enconding)的理解以及编码与解码 1.为什么要引入独热码的概念 在机器学习的领域中,常常会遇到分类,聚类等问题,如果所收集到的数据拥有大量离散型的特征和类别,则我们就需 ...
最新文章
- 怎样在表格中选出同一类_超超超超实用的年会策划执行表格模板合集!
- 2040张图片训练出的ViT,准确率96.7%,连迁移性能都令人惊讶 | 南京大学
- 深度解析HashMap
- MINIGUI 开发指南---GDI
- 多线程 进度条 C# .net
- MyBatis Generator配置文件翻译
- mplayer安装记录 源码分析
- 配置WINDOWS群集
- java 等待线程结束 框架_深入理解Java多线程与并发框架——线程的状态
- c# 操作redisclient 设置过期时间_C# Redis分布式锁 单节点
- 决策树 Decision Tree
- 非确定性算法_《长安十二时辰》背后的文娱大脑:如何提升爆款的确定性?
- 短视频源码APP开发,短视频的功能
- 我的世界java太卡了怎么办_我的世界服务器太卡怎么办 MC服务器优化攻略
- jupyter怎么换背景颜色
- ajax hack,Ajax Hacks-hack9 深入了解HTTP Respon_jquery
- Adobe Acrobat XI Pro 软件下载安装详细教程
- iOS之深入解析插件化架构
- luogu2791 幼儿园篮球题 第二类斯大林数(特)卡常NTT
- 【办公自动化】“一键”生成国土空间规划CAD标准图层