1、Spark MLlib
机器学习利用数据或以往经验,一次优化计算机程序的性能标准
其中模型是算法用数据进行训练以后得到模型。
传统机器学习需要从海量数据中进行抽样提取特征,大数据基础下可以对数据进行全量学习。
2、机器学习流水线(构建、评估和调整机器学习工作流的工具)
输入的DataFrame(二维表)在每个阶段都会被转换,如下图所示:上一行表示转换器,其中Tokenizer是一个分词器,它对原始输入的文本文件(Raw text输入数据集)的英语单词进行分词,得到很多个单词即下一行的Words。然后再作为HashingTF的输入,把单词转换为特征向量,进行后面的机器学习。特征向量可以拿来在Logistic Regression逻辑斯蒂回归算法(评估器)进行训练,评估器调用.fit()方法进行训练,就可以得到Logistic Regression Model。
简单的例子:
1、初始数据集的构建
2、定义Pipeline阶段:分词器(转换器)、转换器、评估器
3、组装并构建模型
4、构建测试数据
没有标签列,标签列是预测出来的。
5、调用模型,生成预测结果
3、特征抽取:TF-IDF(词频-逆向文件评率)
在文本挖掘中广泛使用的特征向量化方法,体现一个文档中词语在语料库中的重要程度。
可对IDF输入训练集,调用.fit()得到一个模型。
过程描述:
1、以一组句子开始
2、首先使用分解器Tokenizer把句子划分为单个词语
3、对每一个句子(词袋),使用HashingTF将句子转换为特征向量
4、最后使用IDF重新调整特征向量
这里面,每一个句子代表一个文档。调用.toDF()构建文档(句子)中的列,得到一个二维表(包括两列),然后对二维表进行转换。
分词器的输入列为二维表中的“sentence”列,结果为“words”列。
输入单词列,将单词进行特征化向量表示。 但是到这里还没有完成调权重的过程。用IDF进行权重调整。
先用IDF评估器进行训练,得到一个IDF模型。
输入的是原特征向量rawFeatures,输出的是调整以后的特征向量features。此时里的特征向量列应该是调整以后的内容。
对评估器进行训练 ,用featurizedData数据集作为输入来调用.fit()方法完成idf的训练,得到模型。
得到的模型对得到的新的特征向量进行调权重的操作。