MLlib-Basics (I)
来源:互联网 发布:javascript用vs6.0编写 编辑:程序博客网 时间:2024/06/06 02:57
MLlib-Basics
1 Local vector 本地向量
一个本地向量可以是integer型和double型的值,存储在单机上。MLlib支持两种类型的本地向量即dense和sparse型。两者之从表达形式上不同,例如:
一个向量(1.0,0.0,3.0) in dense format [1.0,0.0,3.0] ,in sparse format (3,[0,2][1.0,3.0]),其中3是这个向量的大小。
scala> import org.apache.spark.mllib.linalg.{Vector,Vectors}
import org.apache.spark.mllib.linalg.{Vector, Vectors}
// Create a dense vector (1.0, 0.0, 3.0).
scala> val dv:Vector=Vectors.dense(1.0,0.0,3.0)dv: org.apache.spark.mllib.linalg.Vector = [1.0,0.0,3.0]
// Create a sparse vector (1.0, 0.0, 3.0) by specifying its indices and values corresponding to nonzero entries.
scala> val sv1:Vector=Vectors.sparse(3,Array(0,2),Array(1.0,3.0))sv1: org.apache.spark.mllib.linalg.Vector = (3,[(0,1.0),(2,3.0)])
// Create a sparse vector (1.0, 0.0, 3.0) by specifying its nonzero entries.
scala> val sv2:Vector=Vectors.sparse(3,Seq((0,1.0),(2,3.0)))sv2: org.apache.spark.mllib.linalg.Vector = (3,[(0,1.0),(2,3.0)])
注释:
scala会自动importsscala.collection.immutable.Vector
,所以你必须显示的importorg.apache.spark.mllib.linalg.Vector
。
2 Labeled point 标记点
一个标记点就是一个带有标签或者反应的本地向量,可以是dense也可以是sparse,在MLlib,标记点经常在监督性学习算法中使用,我们用double来存一个标记,所以
我们可以在回归和分类中用标记的点。例如,在二分法中,标记应该是0(负)或者1(正);在多类的分类中,标记应该从0开始,0,1,2,.....
scala> import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.linalg.Vectors
scala> import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.regression.LabeledPoint
// Create a labeled point with a positive label and a dense feature vector.
scala> val pos=LabeledPoint(1.0,Vectors.dense(1.0,0.0,3.0))pos: org.apache.spark.mllib.regression.LabeledPoint = LabeledPoint(1.0, [1.0,0.0,3.0])
// Create a labeled point with a negative label and a sparse feature vector.
scala> val neg=LabeledPoint(0.0,Vectors.sparse(3,Array(0,2),Array(1.0,3.0)))neg: org.apache.spark.mllib.regression.LabeledPoint = LabeledPoint(0.0, (3,[(0,1.0),(2,3.0)]))
Sparse data 稀疏数据
现实中我们经常用到稀疏的训练数据。MLlib支持读取以LIBSVM格式的训练例子。这些数据缺省情况下是LIBSVM ,LIBLINEAR格式。如果是text格式,则每一行代表一个
标记的稀疏特征向量,以一下格式:
label index1:value1 index2:value2 ...例子:
import org.apache.spark.mllib.regression.LabeledPointimport org.apache.spark.mllib.util.MLUtilsimport org.apache.spark.rdd.RDDval training: RDD[LabeledPoint] = MLUtils.loadLibSVMFile(sc, "mllib/data/sample_svm_data.txt") //出错,好像是文件split两个
- MLlib-Basics (I)
- MLlib-Basics (II)
- MLlib-Basics (III)
- [Dividend] Basics -- Part I
- 关于SparkMLlib的基础数据结构Spark-MLlib-Basics
- 关于SparkMLlib的基础数据结构Spark-MLlib-Basics
- <转>关于SparkMLlib的基础数据结构Spark-MLlib-Basics
- <转>关于SparkMLlib的基础数据结构Spark-MLlib-Basics
- CUDA Programming Basics Part I
- WebCore Rendering I – The Basics
- WebKit Page Cache I – The Basics
- WebCore Rendering I – The Basics
- I. The Basics---Introduction----Graphics and Rendering
- I. The Basics---Chapter 1----Dissecting Display
- I. The Basics---Chapter 1----Making Shaders
- I. The Basics---Chapter 2----Vertex Attributes
- WebCore Rendering I – The Basics
- Basics
- Android系统中自带的图标&一些预定义样式&参考颜色值
- ios tableView中在不同行中显示不同的颜色
- SpannableString,ImageSpan实现图文混排
- [iOS] iOS 6的Rotation
- 第四十八题(左移递减数组中查找某一个数)
- MLlib-Basics (I)
- AIX下RAC搭建 Oracle10G(二)主机配置
- VS2010 调试AUTOCAD窗体事件进不去断点
- Android有效地展示大图片(三)
- jQuery代码优化:事件委托篇
- 初识cocos2dx
- in与exist的区别
- 使用httpmodule验证用户登录
- BeEF介绍