基于sparkMLlib的机器学习_[1]_基本数据类型[2]向量标签LabeledPoint

来源:互联网 发布:查杀木马软件 编辑:程序博客网 时间:2024/04/30 09:23

一、向量标签基础

向量标签作用:标识不同值

【1】生成方式:

1:直接静态生成向量标签
标记点
内容
2:文件API生成
loadLibSVMFile
格式:(标签,稀疏向量)

【2】注意事项:

1)索引要从1开始,从0开始的时候生成的内部索引时从-1开始,而且数据长度会比实际少1;2)数据的长度是以最大列数为准的,因此最好是要保持数据列数一致;3)标签列可以重复
【3】相关资料:
生成libSVM的数据格式及使用方法总结:点击打开链接

二、测试

package com.dt.spark.main.MLlib.BasicConceptimport org.apache.spark.mllib.linalg.{Vectors, Vector}import org.apache.spark.mllib.regression.LabeledPointimport org.apache.spark.mllib.util.MLUtilsimport org.apache.spark.{SparkConf, SparkContext}/**  * Created by hjw on 17/1/18.  *//*向量标签标识不同值1:直接静态生成向量标签标记点内容2:文件API生成loadLibSVMFile格式:(标签,稀疏向量) */object LabeledPointLearn {  def main(args: Array[String]) {    //=======1:直接静态生成向量标签=======    //密集型向量测试    val vd:Vector = Vectors.dense(1,2,3)    //建立标记点内容数据    val pos = LabeledPoint(1,vd)    //标记点和内容属性(静态类)    println(pos.label + "\n" + pos.features)    //       1.0    //      [1.0,2.0,3.0]    //=======2:文件API生成=======    val conf = new SparkConf()      .setMaster("local")      .setAppName("LabeledPointLearn")    val sc = new SparkContext(conf)    val mu = MLUtils.loadLibSVMFile(sc,"./src/com/dt/spark/main/MLlib/BasicConcept/src/labeledPointTestData.txt")    mu.foreach(println)    //labeledPointTestData.txt    //    1 1:2 2:3 3:4    //    2 1:1 2:2 3:3    //    1 1:1 2:3 3:3    //    1 1:3 2:1 3:3    //结果    //    (1.0,(3,[0,1,2],[2.0,3.0,4.0]))    //    (2.0,(3,[0,1,2],[1.0,2.0,3.0]))    //    (1.0,(3,[0,1,2],[1.0,3.0,3.0]))    //    (1.0,(3,[0,1,2],[3.0,1.0,3.0]))  }}


0 0