没有合适的资源?快使用搜索试试~ 我知道了~
微信公众号:数据拾光者。愿结交更多的小伙伴,一同走人生路。 摘要:通常在大厂实际项目中会使用Spark来处理大规模数据下的数据挖掘和分析相关工作。本篇从项目实战中总结常用的Spark特征处理实例,方便小伙伴们更好的使用Spark做数据挖掘相关的工作。 目录 01 特征处理的意义 02 特征提取 03 特征转换 04 特征选择 01 特征处理的意义 在数据挖掘项目中,由于我们获取的原始数据中包含很多噪声,所以在真正提供给模型前需要特征处理处理工作,否则再好的模型也只能“Garbage in,garbage out”。 总的来说,特征处理主要包括三部分,特征提取、特征转换和特征选择。 02 特征提
资源详情
资源评论
资源推荐
Spark中那些常用的特征处理操作中那些常用的特征处理操作
微信公众号:数据拾光者。愿结交更多的小伙伴,一同走人生路。
摘要:通常在大厂实际项目中会使用Spark来处理大规模数据下的数据挖掘和分析相关工作。本篇从项目实战中总结常用的
Spark特征处理实例,方便小伙伴们更好的使用Spark做数据挖掘相关的工作。
目录
01 特征处理的意义
02 特征提取
03 特征转换
04 特征选择
01 特征处理的意义特征处理的意义
在数据挖掘项目中,由于我们获取的原始数据中包含很多噪声,所以在真正提供给模型前需要特征处理处理工作,否则再好的
模型也只能“Garbage in,garbage out”。
总的来说,特征处理主要包括三部分,特征提取、特征转换和特征选择。
02 特征提取特征提取
特征提取一般指从原始数据中抽取特征的过程。
1. 计数向量器(Countvectorizer)
定义及用途:计数向量器将所有的文本词语进行编号,并统计该词语在文档中的词频作为特征向量。
代码实例
importorg.apache.spark.ml.feature.{CountVectorizer, CountVectorizerModel}
val df =spark.createDataFrame(Seq(
(0, Array("a","e","a","d","b")),
(1, Array("a","c","b","d","c","f","a","b")),
(2, Array("a","f"))
)).toDF("id", "words")
var cv_model = newCountVectorizer().setInputCol("words").setOutputCol("features").setVocabSize(10).setMinDF(2).fit(df)
val cv1 = cv_model.transform(df)
cv1.show(false)
注意点:计数向量器会将所有数据整合到一起进行去重形成一张词表,通过setVocabSize和setMinDF这两个参数来确定是否
进入词表。其中setVocabSize决定词表的长度,而setMinDF决定要在多少个不同的样本中出现才进入词表。上例中设置词表
的长度为10,至少在两个样本中出现才会进入词表,则能进入词表的只有a,b,d,f。c和e仅在一条数据中出现所以并不会统计词
频。
2. 词频-逆向文件频率(TF-IDF)
定义及用途:通俗的理解就是计算一个词区别一篇文档的程度。通过在一篇文档中的词频和该词在文档库中多少篇文档中出现
综合来评估。仅通过词频来区分一篇文档是不合理的。比如文档中会多次出现能代表通用含义的词,但是这些词对于文档的识
别并无意义。我们需要的是一些特别的词,它出现的次数多,并且能在少数的文档中出现,这些词才能够识别文档。举个极端
的例子,比如“我们”这个词可能出现在N多篇文档中然而并没用处。很多童鞋会说我们可以通过停用词去除掉这些词呀,对。
而我说的就是这一类在停用词之外,出现范围很广但是并无识别用处的词。
代码实例
weixin_38703823
- 粉丝: 6
- 资源: 939
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0