spark mllib 的数据预处理
来源:互联网 发布:巫妖王 数据库 编辑:程序博客网 时间:2024/05/29 07:24
Tokenizer(分词器)
算法介绍:
Tokenization将文本划分为独立个体(通常为单词)。
RegexTokenizer基于正则表达式提供更多的划分选项。默认情况下,参数“pattern”为划分文本的分隔符。或者可以指定参数“gaps”来指明正则“patten”表示“tokens”而不是分隔符,这样来为分词结果找到所有可能匹配的情况。
基于python的实现from pyspark.ml.feature import Tokenizer, RegexTokenizer
from pyspark import SparkContext
from pyspark import SQLContext
sc=SparkContext()
sqlcontext=SQLContext(sc)
sentenceDataFrame = sqlcontext.createDataFrame([
(0, "Hi I heard about Spark"),
(1, "I wish Java could use case classes"),
(2, "Logistic,regression,models,are,neat")
], ["label", "sentence"])
sentenceDataFrame.show()
tokenizer = Tokenizer(inputCol="sentence", outputCol="words")
wordsDataFrame = tokenizer.transform(sentenceDataFrame)
i=wordsDataFrame.take(3)
print i
for words_label in wordsDataFrame.select("words","label").take(3):
print(words_label)
i的结果是这样的:[Row(label=0, sentence=u'Hi I heard about Spark', words=[u'hi', u'i', u'heard', u'about', u'spark']),
结果只粘贴一部分,tokenizer的功能,就是把句子给分成词语,但是也会保留以前的sentence,所以在接下来的for语句当中,要用select选择我们需要的字段。
n-gram
算法介绍:
一个n-gram是一个长度为整数n的字序列。NGram可以用来将输入转换为n-gram。
NGram的输入为一系列字符串(如分词器输出)。参数n决定每个n-gram包含的对象个数。结果包含一系列n-gram,其中每个n-gram代表一个空格分割的n个连续字符。如果输入少于n个字符串,将没有输出结果
from pyspark import SparkContext
from pyspark import SQLContext
from pyspark.ml.feature import NGram
sc=SparkContext()
sqlcontext=SQLContext(sc)
wordDataFrame = sqlcontext.createDataFrame([
(0, ["Hi", "I", "heard", "about", "Spark"]),
(1, ["I", "wish", "Java", "could", "use", "case", "classes"]),
(2, ["Logistic", "regression", "models", "are", "neat"])
], ["label", "words"])
ngram = NGram(inputCol="words", outputCol="ngrams")
ngramDataFrame = ngram.transform(wordDataFrame)
h=ngramDataFrame.take(3)
print h
for ngrams_label in ngramDataFrame.select("ngrams", "label").take(3):
print(ngrams_label)
h的结果:Row(label=0, words=[u'Hi', u'I', u'heard', u'about', u'Spark'], ngrams=[u'Hi I', u'I heard', u'heard about', u'about Spark']) 结果是将前一个词跟后一个词合并,不太理解这个有什么用
PAC
主成分分析是一种统计学方法,它使用正交转换从一系列可能相关的变量中提取线性无关变量集,提取出的变量集中的元素称为主成分。使用PCA
方法可以对变量集合进行降维。下面的示例介绍如何将5维特征向量转换为3维主成分向量。
python代码如下:
from pyspark import SparkContext
from pyspark import SQLContext
from pyspark.ml.feature import PCA
from pyspark.mllib.linalg import Vectors
sc=SparkContext()
sqlcontext=SQLContext(sc)
data = [(Vectors.sparse(5, [(1, 1.0), (3, 7.0)]),),
(Vectors.dense([2.0, 0.0, 3.0, 4.0, 5.0]),),
(Vectors.dense([4.0, 0.0, 0.0, 6.0, 7.0]),)]
df = sqlcontext.createDataFrame(data, ["features"])
df.show(6,False)
pca = PCA(k=3, inputCol="features", outputCol="pcaFeatures")
model = pca.fit(df)
result = model.transform(df).select("pcaFeatures")
result.show(truncate=False)
- spark mllib 的数据预处理
- <转>Spark MLlib 数据预处理-特征变换(二)
- spark mllib的优缺点分析
- spark mllib之基本数据统计
- Spark MLlib
- spark MLlib
- Spark MLLib
- Spark MLlib
- Spark中组件Mllib的学习8之ALS训练的model来预测数据
- 在Kaggle手写数字数据集上使用Spark MLlib的RandomForest进行手写数字识别
- Spark中组件Mllib的学习24之线性回归1-小数据集
- Spark中组件Mllib的学习25之线性回归2-较大数据集(多元)
- Spark中组件Mllib的学习26之逻辑回归-简单数据集,带预测
- <转>Spark中组件Mllib的学习26之逻辑回归-简单数据集,带预测
- Spark 非mllib实现的kmeans详解
- Spark-MLlib机器学习相关的数据类型
- Naive Bayes - spark.mllib的实现
- 利用spark的mllib构建GBDT模型
- java Collections.sort()排序。List排序
- 用PL/SQL Developer创建Oracle触发器以及触发器的一点点知识与出现的问题
- Handlebars一些
- 普通按钮和图片按钮
- spring mvc运行原理
- spark mllib 的数据预处理
- 数字图像处理中结构元素、腐蚀、膨胀的基本概念。(转+源)
- 超声波测深仪工作原理
- Hibernate框架学习-映射关系之一对多与多对一
- Android中仿淘宝头条滚动效果,可定制布局
- hdu 2680 Choose the best route 最短路 解题报告
- <设计模式可复用面向对象软件的基础>模式归类
- 接口测试(一)常见接口类型
- easyui-textbox 赋值