【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
- 【spark系列4】分类之SVMWithSGD
- Spark RDD概念学习系列之Spark的算子的分类(十一)
- Spark之 源码解读系列
- Spark MLlib之分类模型源码分析
- spark MLlib之分类和回归
- Spark机器学习之分类与回归
- spark mllib之分类和回归
- spark机器学习库之决策树分类
- listView系列之分类显示
- Spark系列(4)-Spark Web 页面
- 【Spark系列4】Spark的shuffle原理
- Spark源码系列之Spark内核——Job提交
- Spark源码系列之Spark内核——Task运行
- Spark源码系列之Spark内核——Storage模块
- Spark源码系列之Spark内核——Shuffle
- 【spark系列5】回归之LinearRegressionWithSGD
- 【spark系列6】聚类之KMeans
- 【spark系列7】协同过滤之ALS
- 5.容器配接器和字符串
- 人生何处不相逢
- 嵌入式 hi3518c默认看门狗没有开启,uboot汇编start.s解析
- Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)
- 回文数(山东理工OJ)
- 【spark系列4】分类之SVMWithSGD
- 初识GCC
- 解决Qt中文乱码问题
- Graphics.MeasureString 不能获得精确宽度的问题
- ArrayList
- [Bzoj1588][HNOI2002]营业额统计 (Treap|Splay)
- hdu 1827 有向图缩点看度数
- 2014编程之美:神奇的数列
- 第八周项目1-2利用友元函数实现运算符重载