Spark ML机器学习算法svm,als,线性回归,逻辑回归简单试验

本文通过Spark MLlib库实践了线性回归、逻辑回归、SVM和ALS算法。对于线性回归,使用LinearRegressionWithSGD建立模型并计算均方差评估;逻辑回归运用LogisticRegressionWithLBFGS,SVM借助SVMWithSGD训练,并计算训练误差。ALS的部分未详细说明数据集和过程,但提到了输出评估结果。
摘要由CSDN通过智能技术生成

很久很久以前看的ML提供的几个算法,简单运行了下官网的代码,说实话价值不大,还是应当到官网去学习,我唯一做的就是添加了几句中文注释,如果是学习官网示例遇到障碍,不了解数据集的格式等可以在这学习一下

线性回归

数据集格式

这里写图片描述

试验过程

导入训练集数据,将其解析为带label的RDD,然后使用LinearRegressionWithSGD 建立一个简单的线性模型预测label的值,最后计算了均方差来评估预测值与实际值的吻合度

object LinearRegressionModelDemo {
   

  def main(args: Array[String]): Unit = {
    // Load and parse the data
    val conf =  new SparkConf().setAppName("LeanerRegressionModelDemo").setMaster("local")
    val sc = new SparkContext(conf)
    val root = SVMWithSGDDemo.getClass.getResource("/")
    val data = sc.textFile(root + "ridge-data/lpsa.data")
    val parsedData = data.map { line =>
      val parts = line.split(',')
      LabeledPoint(parts(0).toDouble, Vectors.dense(parts(1).split(' ').map(_.toDouble)))
    }.cache()

    // 建模
    //parsedData:RDD (label, array of features)
    val numIterations = 100//迭代次数
    val stepSize = 0.00000001//梯度下降的每次迭代的步长
    val model = LinearRegressionWithSGD.train(parsedData, numIterations, stepSize)

    // 评估训练样本模型并计算训练误差
    val valuesAndPreds = parsedData.map { point =>
      val prediction = model.predict(point.features)
      (point.label, prediction)
    }
    val MSE = valuesAndPreds.map{
  case(v, p) => math.pow((v - p), 2)}.mean()
    println("training Mean Squared Error = " + MSE)
    // 保存,加载模型
    model
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值