一、独热码

二、

三、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编码)相关推荐

  1. HDLBits 系列(25)独热码有限状态机实现的简单方式

    目录 原题重现 一点解释 最终实现 原题重现 The following is the state transition table for a Moore state machine with on ...

  2. Verilog专题(二十)one-hot FSM(独热码有限状态机)

    HDLBits网址:https://hdlbits.01xz.net/wiki/Main_Page 题目 The following is the state transition table for ...

  3. FPGA中有限状态机的状态编码采用格雷码还是独热码?

    今天看<从算法设计到硬件逻辑的实现>这本电子书时,遇到了一个问题,就是有限状态机的编写中,状态编码是采用格雷码还是独热码呢?究竟采用哪一种编码呢? 采用独热码为什么节省许多组合电路? 等等 ...

  4. Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码

    一般的,在Verilog中最常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码. 二进制码和格雷码是压缩状态编码. 若使用格雷编码,则相邻状态转 ...

  5. FPGA/数字IC之有限状态机:简介及其编码方式:顺序码、独热码与格雷码比较

    目录 一.状态机的分类 二.状态机的优点与存在的问题 三.状态的编码方式 四.三种方式的比较 一.状态机的分类 标准状态机分为摩尔(Moore)状态机与米勒(Mealy)状态机. 摩尔状态机的输出只与 ...

  6. verilog中状态机的三种编码方式的比较(二进制码、独热码、格雷码)

    最近做了一个小项目,是关于状态机中三种编码方式的比较,总结了一下三种编码方式的不同,可以会在以后IC笔试面试过程中用到,简单记录一下三种编码方式的优缺点. 三种编码方式如下图所示:其中独热码只有一位为 ...

  7. Verilog-状态机编码方式对比:独热码 vs 格雷码

    博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...

  8. Verilog常见编码方式:二进制码、格雷码、独热码

    Verilog常见编码方式有:二进制码.格雷码.独热码:三种编码方式各有特点利弊,因此有必要理解比较,以求不同场合的合理选择: 目录 一.结论: 二.详细了解 二进制码 格雷码 独热码 比较 三.参考 ...

  9. 独热码(one-hot-enconding)的理解以及编码与解码

    独热码(one-hot-enconding)的理解以及编码与解码 1.为什么要引入独热码的概念 在机器学习的领域中,常常会遇到分类,聚类等问题,如果所收集到的数据拥有大量离散型的特征和类别,则我们就需 ...

最新文章

  1. 怎样在表格中选出同一类_超超超超实用的年会策划执行表格模板合集!
  2. 2040张图片训练出的ViT,准确率96.7%,连迁移性能都令人惊讶 | 南京大学
  3. 深度解析HashMap
  4. MINIGUI 开发指南---GDI
  5. 多线程 进度条 C# .net
  6. MyBatis Generator配置文件翻译
  7. mplayer安装记录 源码分析
  8. 配置WINDOWS群集
  9. java 等待线程结束 框架_深入理解Java多线程与并发框架——线程的状态
  10. c# 操作redisclient 设置过期时间_C# Redis分布式锁 单节点
  11. 决策树 Decision Tree
  12. 非确定性算法_《长安十二时辰》背后的文娱大脑:如何提升爆款的确定性?
  13. 短视频源码APP开发,短视频的功能
  14. 我的世界java太卡了怎么办_我的世界服务器太卡怎么办 MC服务器优化攻略
  15. jupyter怎么换背景颜色
  16. ajax hack,Ajax Hacks-hack9 深入了解HTTP Respon_jquery
  17. Adobe Acrobat XI Pro 软件下载安装详细教程
  18. iOS之深入解析插件化架构
  19. luogu2791 幼儿园篮球题 第二类斯大林数(特)卡常NTT
  20. 【办公自动化】“一键”生成国土空间规划CAD标准图层

热门文章

  1. 工程思维与中国人情社会 (一)
  2. Fluent算例4:脏几何处理的歧管
  3. 学测试必看!测试理论知识之测试基础
  4. Linux Ubuntu钉钉消息框无法输入中文只有英文字母的解决方案
  5. 腾讯云发布微搭生态开放计划,与合作伙伴携手共创产业未来
  6. 关于Java项目中,word和Excel类型文件的预览功能实现
  7. concat 与 add
  8. pythonic风格_什么样的函数才叫 Pythonic
  9. HTML5的aside标签怎么用?
  10. 前目的地罗伯森是谁_前目的地 - 隐藏的时间线