OneHotEncoder介绍单属性多属性scala实现

本文介绍了如何使用Spark的OneHotEncoder将类别属性转换为二进制向量,适合机器学习中的连续特征处理。首先展示了单属性的官方实现,然后详细解释了如何扩展到处理多属性,包括数据预处理的各个步骤,如StringIndexer和Pipeline的使用。
摘要由CSDN通过智能技术生成
       因为项目的需要,将数据库中表的属性向量化,然后进行机器学习,所以去spark官网学习了一下OneHotEncoder,官网的相关介绍比较少,主要是针对单属性的处理,但是项目的要求是多属性的处理,网上找了很多的资料,研究了大半天终于将它集成到了自己的项目之中,下面分享一下自己的学习心得,说的不好的地方,还请各位大神多多指教。
      介绍:将类别映射为二进制向量,其中至多一个值为1(其余为零),这种编码可供期望连续特征的算法使用,比如逻辑回归,这些分类的算法。
     好处:1.解决分类器不好处理属性数据的问题(分类器往往默认数据是连续的,并且是有序的)
                2.在一定程度上也起到了扩充特征的作用
     原理:1.String字符串转换成索引IndexDouble
                2.索引转化成SparseVector
      总结:OneHotEncoder=String->IndexDouble->SparseVector

单属性的官网实现:

package com.iflytek.features
import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer}
import org.apache.spark.ml.feature.{IndexT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值