您好,登錄后才能下訂單哦!
這篇文章主要介紹spark mllib中數(shù)據(jù)降維之如何實現(xiàn)奇異值分解,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
package spark.DataDimensionReduction import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.linalg.distributed.RowMatrix import org.apache.spark.{SparkContext, SparkConf} /** * 數(shù)據(jù)降維 * 一個矩陣在計算過程中,將它在一個方向上進行拉伸,需要關(guān)心的是拉伸的幅度與方向. * 奇異值分解(SVD):一個矩陣分解成帶有方向向量的矩陣相乘 * Created by eric on 16-7-24. */ object SVD { val conf = new SparkConf() //創(chuàng)建環(huán)境變量 .setMaster("local") //設(shè)置本地化處理 .setAppName("SVD") //設(shè)定名稱 val sc = new SparkContext(conf) def main(args: Array[String]) { val data = sc.textFile("./src/main/spark/DataDimensionReduction/a.txt") .map(_.split(" ").map(_.toDouble)) .map(line => Vectors.dense(line)) val rm = new RowMatrix(data) //讀入行矩陣 val SVD = rm.computeSVD(2, computeU = true) //進行SVD計算 println(SVD) //打印SVD結(jié)果矩陣 //求 SVD 分解的矩陣 println("*********************") val u = SVD.U val s = SVD.s val v = SVD.V println(u, s, v) } }
1 2 3 4 5 6 7 8 9 0 8 7 6 4 2 1
以上是“spark mllib中數(shù)據(jù)降維之如何實現(xiàn)奇異值分解”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。