页面树结构

2017-07-25 Apache Spark 2.2.0 官方文档中文版发布 : http://spark.apachecn.org/docs/cn/2.2.0/


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

spark.mllib支持的模型

Spark.mllib支持模型导出到Predictive Model Markup Language(预测模型标记语言)

下表列出了可以导出到PMML的spark.mllib模型及其等效的PMML模型。

Spark.mllib模型PMML模型
KMeansModelClusteringModel
LinearRegressionModelRegressionModel (functionName="regression")
RidgeRegressionModelRegressionModel (functionName="regression")
LassoModelRegressionModel (functionName="regression")
SVMModelRegressionModel (functionName="classification" normalizationMethod="none")
Binary LogisticRegressionModelRegressionModel (functionName="classification" normalizationMethod="logit")

例子

将支持的模型(见上表)导出到PMML,只需调用model.toPMML。

除了将PMML模型导出为String(model.toPMML,如上例所示),您也可以将PMML模型导出为其他格式。

这里是一个建立KMeansModel并以PMML格式打印出来的完整示例:

Scala
import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.mllib.linalg.Vectors
 
// 加载并解析数据
val data = sc.textFile("data/mllib/kmeans_data.txt")
val parsedData = data.map(s =>Vectors.dense(s.split(' ').map(_.toDouble))).cache()
 
// 使用KMeans将数据分成两类
val numClusters = 2 
val numIterations = 20 
val clusters =KMeans.train(parsedData, numClusters, numIterations)
 
// 以PMML格式导出一个字符串
println("PMML Model:\n" + clusters.toPMML)
// 将模型导出为PMML格式的本地文件
clusters.toPMML("/tmp/kmeans.xml")
// 以PMML格式将模型导出到分布式文件系统的目录上
clusters.toPMML(sc, "/tmp/kmeans")
// 将模型导出为PMML格式的输出流
clusters.toPMML(System.out)

有关API的详细信息,请参阅KMeans Scala文档Vectors Scala文档

在Spark repo中的“examples/src/main/scala/org/apache/spark/examples/mllib/PMMLModelExportExample.scala”中查找完整示例代码。

对于不支持的模型,您将找不到.toPMML方法,否则将抛出IllegalArgumentException异常。

 

  • 无标签