PySpark 学习笔记五

5 Introducing the ML Package
在前面,我们使用了Spark中严格基于RDD的MLlib包。 在这里,我们将基于DataFrame使用MLlib包。 另外,根据Spark文档,现在主要的Spark机器学习API是spark.ml包中基于DataFrame的一套模型。
5.1 ML包的介绍
从顶层上看,ML包主要包含三大抽象类:转换器、预测器和工作流。

5.1.1 转换器(Transformer)
从Transformer抽象类派生出来的每一个新的Transformer都需要实现一个.transform(…) 方法,该方法可以将一个DataFrame转换成另一个DataFrame。
在spark.ml.feature中有许多Transformer:

  • Binarizer :给定一个阈值,该方法需要一个连续的变量将其转换为二进制。
  • Bucketizer:分箱(分段处理):将连续数值转换为离散类别比如特征是年龄,是一个连续数值,需要将其转换为离散类别(未成年人、青年人、中年人、老年人),就要用到Bucketizer了。
  • ChiSqSelector:对于分类目标变量(考虑到分类模型),此方法允许你预定义数量的特征(通过numTopFeatures参数指定)。 选择完成后,如方法的名称所示,使用卡方检验。 需要两步:首先,你需要.fit(…) 数据(为了这个方法可以计算卡方检验)。然后,调用.fit(…)方法(将你的DataFrame作为参数传递)返回一个可以用.transform(…)转换的ChiSqSelectorModel对象。
  • CountVectorizer:将文本文档转换为单词计数的向量。当不存在先验字典时,Countvectorizer作为Estimator提取词汇进行训练,并生成一个CountVectorizerModel用于存储相应的词汇向量空间。该模型产生文档关于词语的稀疏表示,其表示可以传递给其他算法,
  • HashingTF : 生成词频率向量。它采用词集合并将这些集合转换成固定长度的特征向量。在文本处理中,“一组词”可能是一袋词。 HashingTF使用散列技巧。通过应用散列函数将原始要素映射到索引,然后基于映射的索引来计算项频率。
  • IDF : 此方法计算逆文档频率。需要注意的是文本首先要用向量表示,可以用HashingTF 或者 CountVectorizer。
  • MinMaxScaler:最大-最小规范化,将所有特征向量线性变换到用户指定最大-最小值之间。但注意在计算时还是一个一个特征向量分开计算的。通常将最大,最小值设置为1和0,这样就归一化到[0,1]。Spark中可以对min和max进行设置,默认就是[0,1]。(不移动中心点)
  • MaxAbsScaler:同样对某一个特征操作,各特征值除以最大绝对值,因此缩放到[-1,1]之间。且不移动中心点。不会将稀疏矩阵变得稠密。
  • NGram :返回 n-grams,两个连续的序列词,或三个或更多。例如 [‘good’,’morning’, ‘Robin’, ‘Williams’] ,返回两个即 [‘good morning’, ‘morning Robin’, ‘Robin Williams’] 。
  • Normalizer : 将某个特征向量(由所有样本某一个特征组成的向量)计算其p-范数,然后对该每个元素除以p-范数。将原始特征Normalizer以后可以使得机器学习算法有更好的表现。(默认是L2)。
  • PCA : 数据降维。
  • RegexTokenizer:使用正则表达式。
  • StandardScaler :将某个特征向量(由所有样本某一个特征组成的向量)进行标准化,使数据均值为0
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值