使用Spark MLlib的逻辑回归(LogisticRegression)进行用户分类预测识别
来源:互联网 发布:mac上有什么好玩的网游 编辑:程序博客网 时间:2024/06/05 00:28
import org.apache.spark.SparkContextimport org.apache.spark.SparkConfimport org.apache.spark.mllib.classification.{LogisticRegressionWithLBFGS, LogisticRegressionWithSGD}import org.apache.spark.mllib.regression.LabeledPointimport org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.mllib.evaluation.BinaryClassificationMetricsimport org.apache.spark.mllib.optimization._/** * Created by simon on 2017/5/8. */object genderClassificationWithLogisticRegression { def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.setAppName("genderClassification").setMaster("local[2]") val sc = new SparkContext(conf) // 1.读取数据 val trainData = sc.textFile("file:\\E:\\test.csv") // 2.解析数据,构建数据集 val parsedTrainData = trainData.map { line => val parts= line.split("\\|") val label = toInt(parts(1)) //第二列是标签 val features = Vectors.dense(parts.slice(6,parts.length-1).map(_.toDouble)) //第7到最后一列是属性,需要转换为Doube类型 LabeledPoint(label, features) //构建LabelPoint格式,第一列是标签列,后面是属性向量 }.cache() // 3.将数据集随机分为两份,一份是训练集,一份是测试集 val splits = parsedTrainData.randomSplit(Array(0.7, 0.3), seed = 11L) val training = splits(0) val testing = splits(1) // 4.新建逻辑回归模型,并设置训练参数// val model = new LogisticRegressionWithLBFGS().setNumClasses(2)// model.optimizer.setNumIterations(500).setUpdater(new SimpleUpdater())//可以选择LogisticRegressionWithLBFGS,也可以选择LogisticRegressionWithSGD,LogisticRegressionWithLBFGS是优化方法 val model = new LogisticRegressionWithSGD() //建立模型 model.optimizer.setNumIterations(500).setUpdater(new SimpleUpdater()).setStepSize(0.001).setMiniBatchFraction(0.02) //模型参数 val trained = model.run(training) //使用训练集训练模型 // 5.测试样本进行预测 val prediction = trained.predict(testing.map(_.features)) //使用测试数据属性进行预测 val predictionAndLabels = prediction.zip(testing.map(_.label)) //获取预测标签 // 6.测量预测效果 val metrics = new BinaryClassificationMetrics(predictionAndLabels) // 7.看看AUROC结果 val auROC = metrics.areaUnderROC println("Area under ROC = " + auROC) } // 将标签转换为0和1 def toInt(s: String): Int = { if (s == "m") 1 else 0 }}
阅读全文
0 0
- 使用Spark MLlib的逻辑回归(LogisticRegression)进行用户分类预测识别
- Spark MLlib 源代码解析之逻辑回归LogisticRegression
- 【spark+python】采用LogisticRegression(MLLib)对MNIST的0-1数字进行识别
- Spark中组件Mllib的学习26之逻辑回归-简单数据集,带预测
- <转>Spark中组件Mllib的学习26之逻辑回归-简单数据集,带预测
- Spark中组件Mllib的学习27之逻辑回归-多元逻辑回归,较大数据集,带预测准确度计算
- spark mllib源码分析之二分类逻辑回归evaluation
- spark&pthon MLlib逻辑回归
- spark.mllib源码阅读-分类算法1-LogisticRegression
- 使用Spark MLlib随机森林RandomForest+pipeline进行预测
- spark厦大-----逻辑斯蒂回归分类器--spark.mllib
- LogisticRegression逻辑回归
- Sklearn-LogisticRegression逻辑回归
- 逻辑回归LogisticRegression
- Spark MLlib Logistic Regression逻辑回归算法
- Spark-MLlib实例——逻辑回归
- <转>Spark Mllib逻辑回归算法分析
- <转>Spark Mllib逻辑回归算法分析
- POJ 1220 NUMBER BASE CONVERSION 笔记
- 基于DragonBoard 410c的智能门铃系列三之系统功能分析
- py scikit-learn 库
- androidstudio常用设置
- TCP的四种定时器
- 使用Spark MLlib的逻辑回归(LogisticRegression)进行用户分类预测识别
- Java泛型及通配符
- 基于DragonBoard 410c的智能门铃系列四之云端方案
- QT5.8交叉编译-arm架构运行!包含触摸屏tslib配置。
- 做junit时,直接读excel中数据
- iOS 应用开发中的断点续传实践总结
- 汇编中各寄存器的作用
- java多线程学习(线程同步)
- 计算机网络漫谈之网络层