Apache Spark 机器学习 特征抽取 4-1

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

特征数据集是用于在机器学习中进行训练有关特征的算法的分类如下所示

  • 抽取Extraction从原始数据集中提取出对应的特征集

  • 转换Transformation缩放特征、转换特征以及修改特征

  • 选择Selection从全部特征集中选择一个子集合

  • 局部敏感哈希算法Locality Sensitive Hashing LSH综合了特征算法与其他算法的性质

特征抽取Feature Extractors

主要包括的算法是TF-IDF、Word2Vec、CountVectorizer、FeatureHasher。

TF-IDF

频繁项与倒排频繁文档Term frequency-inverse document frequency该算法用于特征向量化被广泛地应用于文本挖掘以反映出总体上一个词条项在文档中的重要性假设用t表示项d表示文档D表示全集则频繁项TF(t,d)表示t在文档d中出现的次数则频繁文档DF(t,D)表示包含t的文档个数如果只是用频繁项去测量重要性则很容易造成过于强调项是经常出现但是在文档中却携带很少的信息例如a或者the或者of这些单词很明显这些词在文档中出现的次数不能体现出词的重要性。因此倒排频繁文档是一个数字测量单位用于体现一个项能提供多少信息其公式定义如下所示

如上所示其中|D|表示文档全集的数量由于使用了对数如果一个项在所有文档中都出现则|D|等于DF(t,D)则该项对应的IDF值等于0TF-IDF的公式定义如下所示

如上所示其中TFIDF包括了有关频繁项与频繁文档的变量在Spark的机器学习技术框架MLlib中TF与IDF是分开计算以保证算法的灵活性。

TF

MLlib技术框架的HashingTF与CountVectorizer都可以应用于生成频繁项向量集。

其中HashingTF是一个转换器其使用特定的哈希技术将来自项的数据集合转换成固定长度的特征向量集合在文本的处理过程中项的集合对应单词词汇的集合。HashingTF使用哈希算法一个项对应的原始特征通过一个哈希函数转换成一个索引值频繁项基于索引值出现的次数进行计算使用哈希技术的好处是不必要创建一个项的总集以及每个项都映射到总集的位置上从而节省了大量的内存空间。然而使用哈希技术当项对应的哈希值相同的时候会出现碰撞的情况为了降低哈希值碰撞的几率可以提升哈希取模的维度或者提升哈希表每个桶的大小为了保证哈希值能均匀地分布建议取模的维度设置为2的次方默认的模维度是218等于262144HashingTF也提供了其他参数设置控制项频繁总数当设置为true时所有项频繁总数等于1当进行概率模型的计算时该参数设置非常有用。

其中CountVectorizer提供将文本文档转换成项对应的向量集的总数。

IDF

IDF是一个估算器Estimator用于对HashingTF 或者CountVectorizer创建的数据集进行拟合与训练、最终生成一个IDFModel类型的倒排频繁文档模型该模型的输出提供缩小特征值的范围特征规范化也就是降低在总集中频繁地出现的特征的权重值。

示例代码

如上所示data是原文定义三行记录的数据样本集每行的第一列表示标签第二列表示句子schema定义一个数据表的元数据包括两列第一列label表示标签第二列sentence表示句子sentenceData是使用前面定义的data以及schema定义一个数据框架tokenizer定义一个分词器用于对句子进行分词处理输出单词词汇集wordsData分词器输出单词词汇集hashingTF是定义一个哈希转换器使用哈希算法对单词集合进行特征规范化处理featurizedData是使用哈希算法处理的特征集idf是定义一个估算器对特征集进行拟合以及训练idfModel是使用特征集进行训练完成的模型rescaledData是使用训练完成的模型对特征集进行预测最后输出标签与特征的对应关系。

未完待续

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 机器学习