关于Spark的MLlib学习总结Ja

本文来自CSDN博客,作者ID:Quincy点击文末“阅读原文”查看原文

本文主要讲述如何利用Spark的MLlib构建机器学习模型并预测新的数据,具体的流程如下图所示:

加载数据

对于数据的加载或保存,MLlib提供了MLUtils包,其作用是Hlprmthodstoload,savandpr-procssdatausdinMLLib.博客中的数据是采用Spark中提供的数据sampl_libsvm_data.txt,其有一百个数据样本,个特征。具体的数据形式如图所示::

加载libsvm

JavaRDDLabldPointlpdata=MLUtils.loadLibSVMFil(sc,this.libsvmFil).toJavaRDD();

LabldPoint数据类型是对应与libsvmfil格式文件,,具体格式为:

Labl(doubl类型),vctor(Vctor类型)

转化dataFram数据类型

JavaRDDRowjrow=lpdata.map(nwLabldPointToRow());StructTypschma=nwStructTyp(nwStructFild[]{

nwStructFild("labl",DataTyps.DoublTyp,fals,Mtadata.mpty()),

nwStructFild("faturs",nwVctorUDT(),fals,Mtadata.mpty()),});SQLContxtjsql=nwSQLContxt(sc);DataFramdf=jsql.cratDataFram(jrow,schma);

DataFram:DataFram是一个以命名列方式组织的分布式数据集。在概念上,它跟关系型数据库中的一张表或者1个Python(或者R)中的datafram一样,但是比他们更优化。DataFram可以根据结构化的数据文件、Hiv表、外部数据库或者已经存在的RDD构造。

SQLContxt:sparksql所有功能的入口是SQLContxt类,或者SQLContxt的子类。为了创建一个基本的SQLContxt,需要一个SparkContxt。

特征提取

特征归一化处理

StandardScalrscalr=

nwStandardScalr().stInputCol("faturs").stOutputCol("normFaturs").stWithStd(tru);

DataFramscalrDF=scalr.fit(df).transform(df);scalr.sav(this.scalrModlPath)

利用卡方统计做特征提取

ChiSqSlctorslctor=nwChiSqSlctor().stNumTopFaturs().stFatursCol("normFaturs").stLablCol("labl").stOutputCol("slctdFaturs");

ChiSqSlctorModlchiModl=slctor.fit(scalrDF);

DataFramslctdDF=chiModl.transform(scalrDF).slct("labl","slctdFaturs");

chiModl.sav(this.faturSlctdModlPath);

训练机器学习模型(以SVM为例)测试新的样本

测试新的样本前,需要将样本做数据的转化和特征提取的工作,所有刚刚训练模型的过程中,除了保存机器学习模型,还需要保存特征提取的中间模型。具体代码如下:

测试数据集

计算准确率

doublaccuracy=prdictRsult.filtr(nwPrdictAndScor()).count()*1.0/prdictRsult.count();

Systm.out.println(accuracy);

staticclassPrdictAndScorimplmntsFunctionTupl2Doubl,Doubl,Boolan

{

publicBoolancall(Tupl2Doubl,Doublt)

throwsExcption{

doublscor=t._1();doubllabl=t._2();Systm.out.print("scor:"+scor+",labl:"+labl);

if(scor=0.0labl=0.0)

rturntru;ls

if(scor0.0labl0.0)

rturntru;

lsrturnfals;

}

}

具体的代码







































安全治疗白癜风要多少钱
丹芪偏瘫胶囊



转载请注明:http://www.92nongye.com/gaishu/gaishu/204619307.html

  • 上一篇文章:
  •   
  • 下一篇文章: