spark mllib 预测之LinearRegression(线性回归)

商品价格与消费者输入之间的关系

商品需求(y, 吨),价格(x1, 元),消费者收入(x2, 元)

yx1x2
511
812
721
1323
1834

建立需求函数: y = ax1+bx2

运行代码如下

package spark.regressionAnalysis

/**
  * 线性回归, 建立商品价格与消费者输入之间的关系,
  * 预测价格
  */

import org.apache.log4j.{Level, Logger}
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.{LabeledPoint, LinearRegressionWithSGD}
import org.apache.spark.{SparkConf, SparkContext}

object LinearRegression {
  val conf = new SparkConf()     //创建环境变量
    .setMaster("local")        //设置本地化处理
    .setAppName("LinearRegression")//设定名称
  val sc = new SparkContext(conf)  //创建环境变量实例

  def main(args: Array[String]) {
    val data = sc.textFile("./src/main/spark/regressionAnalysis/lr.txt")//获取数据集路径
    val parsedData = data.map { line =>	 //开始对数据集处理
        val parts = line.split('|') //根据逗号进行分区
        LabeledPoint(parts(0).toDouble, Vectors.dense(parts(1).split(',').map(_.toDouble)))
      }.cache() //转化数据格式

    //LabeledPoint, numIterations, stepSize
    val model = LinearRegressionWithSGD.train(parsedData, 2, 0.1) //建立模型

    val result = model.predict(Vectors.dense(1, 3))//通过模型预测模型
    println(model.weights)
    println(model.weights.size)
    println(result)	//打印预测结果
  }
}



lr.txt

5|1,1
8|1,2
7|2,1
13|2,3
18|3,4

结果如图

转载于:https://my.oschina.net/sunmin/blog/719693

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值