标签:row min 存储 区分 str max 类型 tokenizer blog
摘要:
1.pipeline 模式
1.1相关概念
1.2代码示例
2.特征提取,转换以及特征选择
2.1特征提取
2.2特征转换
2.3特征选择
3.模型选择与参数选择
3.1 交叉验证
3.2 训练集-测试集 切分
内容:
1.pipeline 模式
1.1相关概念
DataFrame是来自Spark SQL的ML DataSet 可以存储一系列的数据类型,text,特征向量,Label和预测结果
Transformer:将DataFrame转化为另外一个DataFrame的算法,通过实现transform()方法
Estimator:将DataFrame转化为一个Transformer的算法,通过实现fit()方法
PipeLine:将多个Transformer和Estimator串成一个特定的ML Wolkflow
Parameter:Tansformer和Estimator共用同一个声明参数的API
上图中蓝色标识的是Transformer(Tokenizer
and HashingTF
),红色标识的是Estimator(LogisticRegression)
1.2代码示例
val tokenizer = new Tokenizer() .setInputCol("text") .setOutputCol("words") val hashingTF = new HashingTF() .setNumFeatures(1000) .setInputCol(tokenizer.getOutputCol) .setOutputCol("features") val lr = new LogisticRegression() .setMaxIter(10) .setRegParam(0.01) val pipeline = new Pipeline() .setStages(Array(tokenizer, hashingTF, lr)) // Fit the pipeline to training documents. val model = pipeline.fit(training)
// Make predictions on test documents.
model.transform(test)
.select("id", "text", "probability", "prediction")
.collect()
.foreach { case Row(id: Long, text: String, prob: Vector, prediction: Double) =>
println(s"($id, $text) --> prob=$prob, prediction=$prediction")
}
2.特征提取,转换以及特征选择
2.1特征提取
2.2特征转换
stopWords
parameter. Default stop words for some languages are accessible by calling StopWordsRemover.loadDefaultStopWords(language)
2.3特征选择
3.模型选择与参数选择
3.1 交叉验证
将数据分为K分,每次测评选取一份作为测试集,其余为训练集;
3.2 训练集-测试集 切分
根据固定的比例将数据分为测试集和训练集
代码示例:
val cv = new CrossValidator()
.setEstimator(pipeline)
.setEvaluator(new BinaryClassificationEvaluator)
.setEstimatorParamMaps(paramGrid)
.setNumFolds(2) // Use 3+ in practice
标签:row min 存储 区分 str max 类型 tokenizer blog
原文地址:http://www.cnblogs.com/arachis/p/Spark2_ML.html