您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關spark mllib如何實現基于卡方校驗的特征選擇的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
package spark.FeatureExtractionAndTransformation import org.apache.spark.mllib.feature.ChiSqSelector import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.mllib.util.MLUtils import org.apache.spark.{SparkConf, SparkContext} /** * 基于卡方校驗的特征選擇 * 卡方校驗: * 在分類資料統計推斷中一般用于檢驗一個樣本是否符合預期的一個分布. * 是統計樣本的實際值與理論推斷值之間的偏離程度. * 卡方值越小,越趨于符合 * * Created by eric on 16-7-24. */ object FeatureSelection { val conf = new SparkConf() //創建環境變量 .setMaster("local") //設置本地化處理 .setAppName("TF_IDF") //設定名稱 val sc = new SparkContext(conf) def main(args: Array[String]) { val data = MLUtils.loadLibSVMFile(sc, "/home/eric/IdeaProjects/wordCount/src/main/spark/FeatureExtractionAndTransformation/fs.txt") val discretizedData = data.map { lp => //創建數據處理空間 LabeledPoint(lp.label, Vectors.dense(lp.features.toArray.map {x => x/2})) } val selector = new ChiSqSelector(2)//創建選擇2個特性的卡方校驗 val transformer = selector.fit(discretizedData)//創建訓練模型 val filteredData = discretizedData.map { lp => //過濾前兩個特性 LabeledPoint(lp.label, transformer.transform(lp.features)) } filteredData.foreach(println) // (0.0,[1.0,0.5]) // (1.0,[0.0,0.0]) // (0.0,[1.5,1.5]) // (1.0,[0.5,0.0]) // (1.0,[2.0,1.0]) } }
0 1:2 2:1 3:0 4:1 1 1:0 2:0 3:1 4:0 0 1:3 2:3 3:2 4:2 1 1:1 2:0 3:4 4:3 1 1:4 2:2 3:3 4:1
感謝各位的閱讀!關于“spark mllib如何實現基于卡方校驗的特征選擇”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。