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

一、向量标签基础

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

【1】生成方式:

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

【2】注意事项:

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

二、测试

package com.dt.spark.main.MLlib.BasicConcept

import org.apache.spark.mllib.linalg.{Vectors, Vector}
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.util.MLUtils
import 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]))


  }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值