如何分析spark-mlib的線性回歸,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
目前創(chuàng)新互聯(lián)建站已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計、貢井網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.ml.feature.VectorAssembler import org.apache.spark.sql.SQLContext import org.apache.spark.ml.regression.LinearRegression object SparkMlib { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("mlib").setMaster("local") val context = new SparkContext(conf) val sqlContext = new SQLContext(context) val rdd = context.makeRDD(List((1,3,9),(2,6,18),(3,9,27),(4,12,36))) val cols = Array("x1","x2") val vectors = new VectorAssembler().setInputCols(cols).setOutputCol("predict") import sqlContext.implicits._ val x = vectors.transform(rdd.toDF("x1","x2","y")) val model = new LinearRegression() //自變量的數(shù)據(jù)名 .setFeaturesCol("predict") //因變量 .setLabelCol("y") //是否有截距 .setFitIntercept(false) //訓(xùn)練模型 .fit(x) //線性回歸的系數(shù) println(model.coefficients) //線性回歸的截距 println(model.intercept) //線性回歸的自變量的個數(shù) println(model.numFeatures) //上面的feature列 println(model.summary.featuresCol) //r2 println(model.summary.r2) //平均絕對誤差 println(model.summary.meanAbsoluteError) //方差 println(model.summary.meanSquaredError) //新的集合x1,x2 預(yù)測y val testRdd = context.makeRDD(List((1,3),(2,6),(3,9),(4,12))) //根據(jù)上面的模型預(yù)測結(jié)果 val testSet = vectors.transform(testRdd.toDF("x1","x2")) val pre = model.transform(testSet) pre.show() //println(pre.predictions) } }
關(guān)于如何分析spark-mlib的線性回歸問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。