当前位置:   article > 正文

Spark MLlib数据挖掘3--特征提取和转换_spark mllib特征提取转换

spark mllib特征提取转换

Spark MLlib数据挖掘3–特征提取和转换

一、TF-IDF回顾
1.TF-IDF(Term frequency-inverse document frequency )
TF-IDF是文本挖掘中一种广泛使用的特征向量化方法。TF-IDF反映了语料中单词对文档的重要程度。假设单词用t表示,F表示频度,文档用d表示,语料用D表示,那么文档频度DF(t, D)是包含单词t的文档数。
如果仅使用词的频率来衡量重要性,则介词、人称代词等词会对文档的描述产生很重要的作用,而这些词实质上对文档的描述并没有决定性的作用,例如“a”,“the”,“of”,“we”和“I”。因此如果术语在语料库中经常出现,则表示它不包含有关特定文档的特殊信息。

2.公式
逆文档频度(IDF)是单词携带信息量的数值度量。
在这里插入图片描述
其中 |D|是语料中的文档总数,DF(t, D)是包含单词t的文档数,文档用d表示,语料用D表示。由于使用了log计算,如果单词在所有文档中出现,那么IDF就等于0。注意这里做了平滑处理(+1操作),防止单词没有在语料中出现时IDF计算中除0。
TF-IDF度量是TF和IDF的简单相乘:
在这里插入图片描述
MLlib中词频统计的实现使用了hashing trick(散列技巧),也就是使用哈希函数将原始特征映射到一个数字索引。然后基于这个索引来计算词频。

3.在spark 中TF和IDF的实现是HashingTF和IDF。HashingTF以RDD为输入。

import org.apache.spark.rdd.RDD
import org.apache.spark.SparkContext
import org.apache.spark.mllib.feature.HashingTF
import org.apache.spark.mllib.linalg.Vector
import org.apache.spark.mllib.feature.IDF

val sc: SparkContext = ...
//读取文档数据保存到RDD:documents中
val documents: RDD[Seq[String]] = sc.textFile("...").map(_.split(" ").toSeq)
val hashingTF = new HashingTF()
//获取文档数据的单词频度矩阵
val tf: RDD[Vector] = hashingTF.transform(documents)
//依据tf计算文档的IDF值
val idf = new IDF().fit(tf)
//依据idf和tf计算文档的tfidf值
val tfidf: RDD[Vector] = idf.transform(tf)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在Spark MLlib中IDF可以设置文档的最低频度,用于过滤少于最小数量的文档中出现的术语,设置参数为minDocFreq。

import org.apache.spark.rdd.RDD
import org.apache.spark.SparkContext
import org.apache.spark.mllib.feature.HashingTF
import org.apache.spark.mllib.linalg.Vector
import org.apache.spark.mllib.feature.IDF

//读取文档数据保存到RDD:documents中
val documents: RDD[Seq[String]] = sc.textFile("...").map(_.split(" ").toSeq)
val hashingTF = new HashingTF()
//获取文档数据的单词频度矩阵
val tf: RDD[Vector] = hashingTF.transform(
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/997213
推荐阅读
相关标签
  

闽ICP备14008679号