Scale type |
Description |
Nominal Scale |
=、≠ 定义的类别,不是数值的。 如:male、female |
Ordinal Scale |
=、≠、<、> 等级类的,从最不重要的到最重要的。 如:公司员工的等级 |
Interval Scale |
=、≠、<、>、+、- Ordinal scale + 层级距离 分配给层级数据的数字的显示顺序,任何两个连续的值之间的差异是相同的。 如:60°C不是指2倍的30°C |
Ratio Scale |
=、≠、<、>、+、-、×、÷ 连续成比例的数据。 如:$60是$30的2倍
|
> import org.apache.spark.mllib.linalg.{Vectors,Vector} > val dvPerson = Vectors.dense(100,50,200) > val svPerson = Vectors.sparse(3,Array(0,1,2),Array(100,50,200))
def dense(values: Array[Double]): Vector def sparse(size: Int, indices: Array[Int], values: Array[Double]): Vector
Labeled point是一个local vector(sparse/dense),它有一个相关的标签。Labeled数据用于监督学习中,帮助实现训练算法。Labeled作为double值存储在LabeledPoint。即每一个分类标签,都映射一个double值。示例:
> import org.apache.spark.mllib.linalg.{Vectors,Vector} > import org.apache.spark.mllib.regression.LabeledPoint > val willBuySUV = LabeledPoint(1.0,Vectors.dense(300.0,80,40)) > val willBuySUV = LabeledPoint(1.0,Vectors.sparse(3,Array(0,1,2),Array(300.0,80,40)))
> val people = Matrices.dense(3,2,Array(150d,60d,25d,300d,80d,40d)) > val personRDD = sc.parallelize(List(Vectors.dense(150,60,25), Vectors.dense(300,80,40))) > import org.apache.spark.mllib.linalg.distributed.{IndexedRow, IndexedRowMatrix,RowMatrix, CoordinateMatrix,MatrixEntry} > val personMat = new RowMatrix(personRDD) > val personRDD = sc.parallelize(List(IndexedRow(0L, Vectors.dense(150,60,25)), IndexedRow(1L, Vectors.dense(300,80,40)))) > val pirmat = new IndexedRowMatrix(personRDD) > val meRDD = sc.parallelize(List( MatrixEntry(0,0,150), MatrixEntry(1,0,60), MatrixEntry(2,0,25), MatrixEntry(0,1,300), MatrixEntry(1,1,80), MatrixEntry(2,1,40) )) > val pcmat = new CoordinateMatrix(meRDD)