【spark系列4】分类之SVMWithSGD

关于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.SparkContext
import org.apache.spark.mllib.classification.SVMWithSGD
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.optimization.L1Updater

object 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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值