葡萄酒分类(scala实现)

分类方法:逻辑回归

其中

  • 0代表坏葡萄酒
  • 1代表好葡萄酒

训练集中质量评分7.0以上被视为好葡萄酒

import org.apache.spark.ml.classification.LogisticRegressionimport org.apache.spark.ml.param.ParamMapimport org.apache.spark.ml.linalg.{Vector, Vectors}import org.apache.spark.ml.regression.LinearRegressionModelimport org.apache.spark.sql.{Row, SparkSession}object LogicRegressWineClassifyDemo {def main(args: Array[String]): Unit = {val sess = SparkSession.builder().appName("ml").master("local[4]").getOrCreate();val sc = sess.sparkContext;//数据目录val dataDir = "file:///D:/downloads/bigdata/ml/winequality-white.csv"//定义样例类case class Wine(FixedAcidity: Double, VolatileAcidity: Double,CitricAcid: Double, ResidualSugar: Double, Chlorides: Double,FreeSulfurDioxide: Double, TotalSulfurDioxide: Double, Density: Double, PH:Double, Sulphates: Double, Alcohol: Double, Quality: Double)//变换val wineDataRDD = sc.textFile(dataDir).map(_.split(";")).map(w => Wine(w(0).toDouble, w(1).toDouble,w(2).toDouble, w(3).toDouble, w(4).toDouble, w(5).toDouble, w(6).toDouble, w(7).toDouble, w(8).toDouble, w(9).toDouble, w(10).toDouble, w(11).toDouble))import sess.implicits._//转换RDD成DataFrameval trainingDF = wineDataRDD.map(w => (if (w.Quality < 7) 0D else 1D,Vectors.dense(w.FixedAcidity, w.VolatileAcidity, w.CitricAcid,w.ResidualSugar, w.Chlorides, w.FreeSulfurDioxide, w.TotalSulfurDioxide,w.Density, w.PH, w.Sulphates, w.Alcohol))).toDF("label", "features")//创建线性回归对象val lr = new LogisticRegression()//设置最大迭代次数lr.setMaxIter(10).setRegParam(0.01)//val model = lr.fit(trainingDF)//创建测试Dataframeval testDF = sess.createDataFrame(Seq((1.0,Vectors.dense(6.1, 0.32, 0.24, 1.5, 0.036, 43, 140, 0.9894, 3.36, 0.64, 10.7)),(0.0, Vectors.dense(5.2, 0.44, 0.04, 1.4, 0.036, 38, 124, 0.9898, 3.29, 0.42, 12.4)),(0.0,Vectors.dense(7.2, 0.32, 0.47, 5.1, 0.044, 19, 65, 0.9951, 3.38, 0.36, 9)),(0.0, Vectors.dense(6.4, 0.595, 0.14, 5.2, 0.058, 15, 97, 0.991, 3.03, 0.41, 12.6)))).toDF("label", "features")//显式测试数据testDF.show();println("========================")//预测测试数据(带标签),评测模型的质量。testDF.createOrReplaceTempView("test")val tested = model.transform(testDF).select("features", "label", "prediction")tested.show();println("========================")//预测无标签的测试数据。val predictDF = sess.sql("SELECT features FROM test")//预测结果val predicted = model.transform(predictDF).select("features", "prediction")predicted.show();}}

葡萄酒逻辑回归分类(scala实现)相关推荐

  1. python利用什么写模板_Python利用逻辑回归分类实现模板

    Logistic Regression Classifier逻辑回归主要思想就是用最大似然概率方法构建出方程,为最大化方程,利用牛顿梯度上升求解方程参数. 优点:计算代价不高,易于理解和实现. 缺点: ...

  2. spark java 逻辑回归_逻辑回归分类技术分享,使用Java和Spark区分垃圾邮件

    原标题:逻辑回归分类技术分享,使用Java和Spark区分垃圾邮件 由于最近的工作原因,小鸟很久没给大家分享技术了.今天小鸟就给大家介绍一种比较火的机器学习算法,逻辑回归分类算法. 回归是一种监督式学 ...

  3. R语言使用逻辑回归分类算法

    R语言使用逻辑回归分类算法 逻辑回归属于概率统计的分类算法模型的算法,是根据一个或者多个特征进行类别标号预测.在R语言中可以通过调用logit函数执行逻辑回归分类算法并预测输出概率.通过调用glm函数 ...

  4. python机器学习基础05——sklearn之逻辑回归+分类评价指标

    文章目录 逻辑回归 逻辑回归的损失函数 逻辑回归API 分类模型的评价指标 混淆矩阵 准确率 召回率(较多被使用) 精确率 f1-score:精确率和召回率的调和平均数 AUC 逻辑回归 逻辑回归是经 ...

  5. 数据挖掘—逻辑回归分类—信用卡欺诈分析

    文章目录 1.分析目的: 2.掌握要点: 3.构建逻辑回归分类器 4.模型评估指标 5.精确度和召回率(不平衡数据衡量指标) 6.案例分析: 1.分析目的: 信用卡欺诈的危害性大,如何通过遗忘的交易数 ...

  6. 树模型与线性模型的区别 决策树分类和逻辑回归分类的区别 【总结】

    树模型与线性模型的区别在于: (一)树模型 ①树模型产生可视化的分类规则,可以通过图表表达简单直观,逐个特征进行处理,更加接近人的决策方式   ②产生的模型可以抽取规则易于理解,即解释性比线性模型强. ...

  7. java基础巩固-宇宙第一AiYWM:为了维持生计,编程语言番外篇之机器学习(项目预测模块总结:线性回归算法、逻辑回归分类算法)~整起

    机器学习 一.机器学习常见算法(未完待续...) 1.算法一:线性回归算法:找一条完美的直线,完美拟合所有的点,使得直线与点的误差最小 2.算法二:逻辑回归分类算法 3.算法三:贝叶斯分类算法 4.算 ...

  8. 编程实践-逻辑回归分类算法--马的疝气病症分类

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 逻辑回归分类 @dataset:马的疝气病症数据集Horse Col ...

  9. 逻辑回归分类鸢尾花和红酒等级

    逻辑回归分类鸢尾花和红酒等级 源代码以及训练数据和测试数据已上传:https://download.csdn.net/download/j__max/10816259 一.实验准备 1.实验内容和目的 ...

  10. r语言的逻辑回归分类

    iris 是r语言内置的数据集 head(iris) # 与python的不同iris.head() Sepal.Length Sepal.Width Petal.Length Petal.Width ...

最新文章

  1. CUDA学习(十五)
  2. python 函数的*args,**kwargs
  3. 1.2安装配置VMwaer虚拟机
  4. VTK:多数据点用法实战
  5. 计算机网络【4】传输层
  6. 类选择器遍历赋值_利用反射实现配置表数据到类对象数据的转换
  7. 作者:曾琛(1987-),女,就职于中国科学院计算技术研究所。
  8. 高仿wx钱包页H5网站源码
  9. 在Linux 安装Python3.5.6详细文档!!!!
  10. 【JAVA】FreeMarker学习1(Ftl)
  11. 禁用联想笔记本电脑自带的键盘
  12. 【ESP32】HardwareSerial库使用
  13. 常见软件非功能性需求描述案例
  14. ping丢包故障处理
  15. maya python 弹出窗口_Open Project Folder (python in maya)
  16. linux发挥显卡性能,Sandy Bridge集成显卡总算支持Linux 开源性能实测
  17. dakai微信小程序 ios_【iOS】微信小程序打开APP到底是怎么回事?
  18. 计算广告第四章——合约广告
  19. C#栈(后进先出)队列实现与解析
  20. 官方文档 恢复备份指南一 恢复备份介绍

热门文章

  1. 使用Fiddler监控雷电/夜神模拟器浏览网页:安全警告:该网站的安全证书有问题.解决方案!
  2. 47名应届生毕业生,骗领49万杭州人才补贴!检察机关建议从宽处理
  3. [教程]安装系统解码器 - 指导教程
  4. VGA PCB布局布线要点
  5. 出栈顺序判断问题——划线法
  6. matlab运算放大器仿真,利用Matlab分析运算放大器电路.doc
  7. 强智教务系统模拟登陆经验【附源码】
  8. IC卡卡面卡号如何写入
  9. php写出个人所得税,php趣味编程-php求个人所得税
  10. 职场必杀技之职场英语