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

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

Word2Vec

单词向量化是一个估算器将文档转换成一个按照固定顺序排列的单词序列然后训练成一个Word2VecModel单词向量化的模型该模型将每个单词映射成一个唯一性的、固定大小的向量集对每个文档的所有单词进行平均将文档转换成一个向量集该向量集可以作为预测的特征集、用于计算文档的相似性或者其他文本处理领域。

代码示例

如上所示data是定义了三行记录的文档数据集schema定义了一个数据表的元数据信息第一列text是原文documentDF使用data以及schema创建了一个数据框架用于特征提取word2Vec定义一个单词向量化的特征估算器model是使用word2Vec对数据集documentDF训练成一个模型result对数据特征进行预测最后输出预测的结果。

CountVectorizer

是一个用于对向量集进行计数的估算器CountVectorizer估算器以及CountVectorizerModel模型是对输入的文档集转换成每个文档的分词集合再对每个文档中的单词进行计数输出每个文档中每个单词的统计总数其使用的稀疏集合表示每个文档。

代码示例

如上所示定义一个文档集合表示两行记录。

如上所示使用CountVectorizer估算器对文档集合进行训练得到CountVectorizerModel该模型的训练结果中第一列id表示文档的序号第二列表texts表示原文第三列vector表示一个向量集该向量集的第一个元素表示单词的总数第二个元素表示单词对应的序号0表示a1表示b2表示c第三个元素表示每个单词的统计数第一行文档a出现1、b出现1次、c出现1次第二行文档a出现2次、b出现2次、c出现1次。

如上所示data是对应的文档schema定义数据集的元数据信息第一列text表示原文df使用data以及shcema定义了一个数据框架cvModel是使用CountVectorizer训练而成的一个向量集计数模型cvm是以其他方式定义一个模型最后进行数据集预测、输出预测结果。

FeatureHasher

特征哈希器是将分类特征或者数值特征转换成一个指定维度数的特征向量集一般情况下该转换器是对多个列进行转换每个列的类型是分类特征或者数值特征根据数据类型的哈希算法如下所示

  •  数值类型的列使用列的名称计算哈希值映射其值到特征向量集对应的索引位置

  • 字符串类型的列使用key=value的方式计算哈希值映射其值到特征向量集对应的索引位置

  • 布尔类型的列使用key=false或者key=true的方式计算哈希值映射其值到特征向量集对应的索引位置

如上所示输入的数据样本包括4列、4行记录第一个列的数据类型是数值、第二列的数据类型是布尔、第三列的数据类型是字符串数值、第四列的数据类型是字符串。

如上所示使用FeatureHasher哈希器转换成特征向量集。

如上所示data是定义的4列4行的数据样本schema是定义的数据存储格式dataset是创建一个数据框架hasher是定义一个FeatureHasher哈希器featurized是已经转换的特征向量集。

Spark代码单元测试

如上所示从apache spark官方网址下载对应的版本。

如上所示运行bin目录下的spark-shell命令启动scala运行环境。

如上所示输入scala的代码执行特征转换输出转换的特征向量集。

未完待续

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