pyspark

多项式转化 PolynomialExpansion

degree=3 时,x ,xx ,xxx ,y ,xy ,xxy ,yy ,xyy ,yyy

 

类别型数据常用独热编码:

字符转换成数字索引 StringIndexer

在转换成独热编码  OneHotEncoder

使用stringindex将category转换成categoryIndex  之后,本来a,b,c是没有大小顺序的,但是转换成数字索引后数字0,1,2有了大小关系,因此使用onehotencoder再次转换

一般只在测试集上进行独热编码,测试数据中可能会出现新的类别,比如‘e’,因此,编码时可以先预留一种‘rare’类别,新的类别都归进去

 

文本处理

基于DataFrame的StopWordsRemover处理

停止词的词表一般不需要自己制作,有很多可选项可以自己下载选用。中文暂时没有词表。

remover.transform(sentenceData).show(truncate=False)

truncate=False:结果show的时候太长也不会做截断,属性为True时会截断

 

Tokenize 将一句话转换成一个单词的序列

Count Vectorizer

说明features中第一行id为1 的数据[0,1,2],[1,1,1],含义,左边是值,右边是出现次数,表示0出现1次,1出现1次,2出现一次。

 

要先使用fit对数据进行扫描,才知道数据的出现次数,进行编码,然后才能transport

 

TF-IDF

SQLTransformer

from pyspark.ml.feature import SQLTransformer
df = spark.createDataFrame([
    (0,1.0,2.0 ), 
    (1, 3.0,2.0),
    (2,4.0,7.0 )],
    ["id", "v1","v2"])
sqlTrans = SQLTransformer(statement="SELECT *, (v1 + v2) AS v3, (v1 * v2) AS v4 FROM __THIS__")
sqlTrans.transform(df).show()
spark.stop()

+---+---+---+----+----+
| id| v1| v2|  v3|  v4|
+---+---+---+----+----+
|  0|1.0|2.0| 3.0| 2.0|
|  1|3.0|2.0| 5.0| 6.0|
|  2|4.0|7.0|11.0|28.0|
+---+---+---+----+----+

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值