【spark系列4】分类之SVMWithSGD

来源:互联网 发布:大数据产业测度 编辑:程序博客网 时间:2024/06/05 16:50

关于SVM和SGD的知识请参考其他资料,这里只介绍如何在spark-shell下跑分类模型。



分类数据集


这里面使用的是spark样例数据,文件地址为spark-0.9.1/mllib/data/sample_svm_data.txt。



启动spark


编译好spark后,在spark目录的bin目录下,运行
spark-shell


启动完后会出现
scala>

编写调用mllib的scala程序

import org.apache.spark.SparkContextimport org.apache.spark.mllib.classification.SVMWithSGDimport org.apache.spark.mllib.regression.LabeledPointimport org.apache.spark.mllib.optimization.L1Updaterobject ObSVMWithSGD{    def run() {        // Load and parse the data file        val data = sc.textFile("D:/schoolar_tool/spark-0.9.1/mllib/data/sample_svm_data.txt")        val parsedData = data.map{line =>             val parts = line.split(' ')            LabeledPoint(parts(0).toDouble, parts.tail.map(x => x.toDouble).toArray)        }        // Run training algorithm to build the model        val svmAlg = new SVMWithSGD()        svmAlg.optimizer.setNumIterations(200)                        .setRegParam(0.1)                        .setUpdater(new L1Updater)        val model = svmAlg.run(parsedData)        // Evaluate model on training examples and compute training error        val labelAndPreds2 = parsedData.map{ point =>            val prediction = model.predict(point.features)            (point.label, prediction)        }        val trainErr = labelAndPreds2.filter(r => r._1 != r._2).count.toDouble / parsedData.count        println("Training Error = " + trainErr)    }}

粘贴程序

输入 :paste ,粘贴多行代码。
(注意:代码中不要有tab缩进,否则界面会出现大量输入提示。)

scala> :paste

粘贴上面的代码。



运行程序

按 ctrl+D 运行程序。
运行后效果为:





再输入ObSVMWithSGD.run,开始运行。
scala> ObSVMWithSGD.run

效果

屏幕开始滚动,最终效果为




简单提示

可以适当修改上述程序,对自己需要分类的数据进行分类。




参考资料

1.官网MLlib指南 http://spark.apache.org/docs/latest/mllib-guide.html



0 0
原创粉丝点击