使用Fregata實現spark的羅吉斯迴歸演算法_spark

來源:互聯網
上載者:User
 
import fregata.spark.data.LibSvmReaderimport fregata.spark.metrics.classification.{AreaUnderRoc, Accuracy}import fregata.spark.model.classification.LogisticRegressionimport org.apache.spark.{SparkConf, SparkContext}/**  * Created by ALL on 2016/12/8.  */object FregataFirstTest {  def main(args: Array[String]): Unit = {    val conf=new SparkConf().setAppName("test").setMaster("local")    val sc=new SparkContext(conf)    //通過Fregata的API讀取資料    val (_,trainData)=LibSvmReader.read(sc,"/fregataData/a9a",123)    val (_,testData)=LibSvmReader.read(sc,"/fregataData/a9a.t",123)    //使用訓練資料構建羅吉斯迴歸模型    val model=LogisticRegression.run(trainData)    //使用測試資料預測類別    val pd=model.classPredict(testData)    //通過AUC或者其他指標來評估模型    val acc=Accuracy.of( pd.map{      case ((x,l),(p,c))=>        c -> l    })    val auc=AreaUnderRoc.of( pd.map{      case ((x,l),(p,c))=>        p -> l    })    val loss = fregata.spark.loss.log(pd.map{      case ((x,l),(p,c)) =>        if( l == 1d ) {          (l,c,p)        }else{          ( l , c , 1-p )        }    })    println( s"AreaUnderRoc = $auc ")    println( s"Accuracy = $acc ")    println( s"LogLoss = $loss ")  }}
Fregata訓練資料的API需要資料類型為RDD[(fregata.Vector,fregata.Num)],對於預測的API需要和訓練資料類型相同或者是RDD[fregata.Vector]
的資料格式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.