当前位置:   article > 正文

Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS_sparkml 推荐

sparkml 推荐
Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS

 

1、线性回归:

1)模型的建立:

回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多重共线性情况下运行良好。

 

数学上,ElasticNet被定义为L1和L2正则化项的凸组合:

通过适当设置α,ElasticNet包含L1和L2正则化作为特殊情况。例如,如果用参数α设置为1来训练线性回归模型,则其等价于Lasso模型。另一方面,如果α被设置为0,则训练的模型简化为ridge回归模型。 

(2)实战:

利用线性回归+随机梯度下降算法构建一个线性模型,并进行预测,最后计算均方误差(Mean Squared Errors)来对模型进行评估。

   val conf =  new SparkConf().setAppName("LeanerRegressionModelDemo").setMaster("local[4]")

      val sc = new SparkContext(conf)

      val data = sc.textFile("C://Users//BIGDATA//Desktop//文件//BigData//Spark//7.SparkMLlib_2//resource//resource//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()

    // Building the model

    val numIterations = 20

    val model = LinearRegressionWithSGD.train(parsedData, numIterations)

   

    // Evaluate model on training examples and compute training error

    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)}.reduce(_ + _)/valuesAndPreds.count

println("training Mean Squared Error = " + MSE)

  

2、逻辑回归:

(1)数学公式

逻辑回归一般是用来预测二元分类的,它的线性方法可以用公式(1)进行描述,它的损失函数用公式(2)进行描术:

f(w):=λR(w)+1n∑i=1nL(w;xi,yi)          (1)

这里,xi∈Rd 代表训练数据, 1≤i≤n , yi∈R对应的是labels. 
目标函数f有两部分:正则化和损失函数,前者的作用是为了去躁,后者是用来评估训练数据模型的误差。在w中损失函数L(w;.)是一个典型的凸函数。固定的正则化参数λ≥0(代码中用regParam 表示),用来权衡两目标间的最小损失。 
下面是sparkmllib当中的损失函数和它对应的梯度下降方法数学表达式: 
 
接下来的正则化函数公式: 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号