RowMatrix

pyspark.mllib.linalg.distributed。 RowMatrix ( :联盟(pyspark.rdd.RDD(pyspark.mllib.linalg.Vector],pyspark.sql.dataframe.DataFrame],numRows:int=0,numCols:int=0 )

代表一个row-oriented分布式矩阵没有有意义的行索引。

参数
pyspark.RDDpyspark.sql.DataFrame

一个抽样或DataFrame向量。如果提供了DataFrame,它必须有一个单独的向量类型的列。

numRows int,可选

矩阵的行数。非容积值是未知的,此时的行数将由数量的记录抽样。

numCols int,可选

矩阵的列数。非容积值是未知的,此时列的数量将取决于大小的第一行。

方法

columnSimilarities((阈值))

这个矩阵的列计算相似性。

computeColumnSummaryStatistics()

计算列汇总统计。

computeCovariance()

计算协方差矩阵,把每一行作为一个观察。

computeGramianMatrix()

格兰姆矩阵计算一个T ^

computePrincipalComponents(k)

计算k给定行矩阵的主成分

computeSVD(k [、computeU rCond])

RowMatrix计算奇异值分解。

(矩阵)

这个矩阵乘以一个本地稠密矩阵在右边。

numCols()

获取或计算的关口。

numRows()

获取或计算的行数。

tallSkinnyQR([computeQ])

计算这个RowMatrix的QR分解。

属性

RowMatrix存储为一个抽样的行向量。

方法的文档

columnSimilarities ( 阈值:浮动=0.0 )pyspark.mllib.linalg.distributed.CoordinateMatrix

这个矩阵的列计算相似性。

阈值参数估计质量和计算成本之间的权衡旋钮。

默认阈值设置为0保证确定性正确的结果,但使用蛮力方法计算归一化的点积。

阈值设置为正值使用抽样方法和所严格计算成本比蛮力的方法。然而相似性计算将估计。

抽样保证相对误差的正确性对列相似度大于给定的相似度阈值。

描述了担保,我们设置一些符号:

  • 让一个最小的这个矩阵的非零元素级。

  • 让B级最大的这个矩阵的非零元素。

  • 让我每一行的非零的最大数量。

例如,对于矩阵{0,1}:A = B = 1。另一个例子,Netflix矩阵:A = 1, B = 5

对于那些列对高于阈值,计算相似性是正确的相对误差在20%的概率至少1 - (0.981)10 / B ^ ^

洗牌的大小是有限的以下两个表达式:

  • O (n log (n)信用证(阈值*))

  • O (m L ^ 2 ^)

后者是强力的成本的方法,对于非零阈值,成本总是低于蛮力的方法。

参数
阈值 浮动,可选

设置为0的确定性保证正确性。高于此阈值的相似性估计与上述成本和估计质量的权衡。

返回
CoordinateMatrix

一个n * n稀疏的上三角CoordinateMatrix余弦相似性列的矩阵。

例子

> > >=sc并行化([[1,2),(1,5]])> > >=RowMatrix()
> > >西姆斯=columnSimilarities()> > >西姆斯条目第一个()价值0.91914503……
computeColumnSummaryStatistics ( )→pyspark.mllib.stat._statistics.MultivariateStatisticalSummary

计算列汇总统计。

返回
MultivariateStatisticalSummary

对象包含列汇总统计。

例子

> > >=sc并行化([[1,2,3),(4,5,6]])> > >=RowMatrix()
> > >colStats=computeColumnSummaryStatistics()> > >colStats的意思是()阵列((2.5,3.5,4.5))
computeCovariance ( )pyspark.mllib.linalg.Matrix

计算协方差矩阵,把每一行作为一个观察。

笔记

这不能计算矩阵有超过65535列。

例子

> > >=sc并行化([[1,2),(2,1]])> > >=RowMatrix()
> > >computeCovariance()DenseMatrix (2, 2, 0.5, -0.5, -0.5, 0.5, 0)
computeGramianMatrix ( )pyspark.mllib.linalg.Matrix

格兰姆矩阵计算一个T ^

笔记

这不能计算矩阵有超过65535列。

例子

> > >=sc并行化([[1,2,3),(4,5,6]])> > >=RowMatrix()
> > >computeGramianMatrix()DenseMatrix (3 3 (17.0, 22.0, 27.0, 22.0, 29.0, 36.0, 27.0, 36.0, 45.0), 0)
computePrincipalComponents ( k:int )pyspark.mllib.linalg.Matrix

计算k给定行矩阵的主成分

参数
k int

主成分数。

返回
pyspark.mllib.linalg.DenseMatrix

笔记

这不能计算矩阵有超过65535列。

例子

> > >=sc并行化([[1,2,3),(2,4,5),(3,6,1]])> > >rm=RowMatrix()
> > >#返回rm的两个主要组件> > >主成分分析=rmcomputePrincipalComponents(2)> > >主成分分析DenseMatrix (3 2 (-0.349, -0.6981, 0.6252, -0.2796, -0.5592, -0.7805), 0)
> > >#转变成新的维度的方差。> > >rm(主成分分析)收集()[DenseVector ([0.1305, -3.7394]), DenseVector ([-0.3642, -6.6983]), DenseVector ([-4.6102, -4.9745])]
computeSVD ( k:int,computeU:bool=,rCond:浮动=1 e-09 )pyspark.mllib.linalg.distributed.SingularValueDecomposition ( pyspark.mllib.linalg.distributed.RowMatrix , pyspark.mllib.linalg.Matrix ]

RowMatrix计算奇异值分解。

给定行矩阵的维度(m X n)分解成U * * V的地方

  • U: (m X k)(左奇异向量)RowMatrix的列的特征向量(X ')

  • s: DenseVector组成的特征值的平方根奇异值的降序排列。

  • v: X k (n)(右奇异向量)的特征向量矩阵的列(“X)

更具体的实现细节,请参阅Scala文档。

参数
k int

保持领先的奇异值的数量(0 < k < = n)。它可能会返回小于k如果有数值零奇异值或没有足够的丽兹值聚合前Arnoldi更新迭代的最大数量达到(以防矩阵A是坏脾气的)。

computeU bool,可选

是否要计算,如果设置为真,那么计算U * V * s ^ 1

rCond 浮动,可选

互惠的条件数。所有奇异值小于rCond *[0]被视为零,年代[0]是最大的奇异值。

返回
SingularValueDecomposition

例子

> > >=sc并行化([[3,1,1),(- - - - - -1,3,1]])> > >rm=RowMatrix()
> > >svd_model=rmcomputeSVD(2,真正的)> > >svd_modelU收集()[DenseVector ([-0.7071, 0.7071]), DenseVector ([-0.7071, -0.7071])]> > >svd_model年代DenseVector ([3.4641, 3.1623])> > >svd_modelVDenseMatrix (3 2 (-0.4082, -0.8165, -0.4082, 0.8944, -0.4472, 0.0…), 0)
( 矩阵:pyspark.mllib.linalg.Matrix )pyspark.mllib.linalg.distributed.RowMatrix

这个矩阵乘以一个本地稠密矩阵在右边。

参数
矩阵 pyspark.mllib.linalg.Matrix

当地一个稠密矩阵的行数必须匹配这个矩阵的列数

返回
RowMatrix

例子

> > >rm=RowMatrix(sc并行化([[0,1),(2,3]]))> > >rm(DenseMatrix(2,2,(0,2,1,3)))收集()[DenseVector ([2.0, 3.0]), DenseVector ([6.0, 11.0])]
numCols ( )→int

获取或计算的关口。

例子

> > >=sc并行化([[1,2,3),(4,5,6),(7,8,9),(10,11,12]])
> > >=RowMatrix()> > >打印(numCols())3
> > >=RowMatrix(,7,6)> > >打印(numCols())6
numRows ( )→int

获取或计算的行数。

例子

> > >=sc并行化([[1,2,3),(4,5,6),(7,8,9),(10,11,12]])
> > >=RowMatrix()> > >打印(numRows())4
> > >=RowMatrix(,7,6)> > >打印(numRows())7
tallSkinnyQR ( computeQ:bool= )pyspark.mllib.linalg.QRDecomposition (可选( pyspark.mllib.linalg.distributed.RowMatrix ] , pyspark.mllib.linalg.Matrix ]

计算这个RowMatrix的QR分解。

实现的目的是优化QR分解(分解)的RowMatrix又高又瘦的形状[1]

1

大卫·f·保罗·g·康斯坦丁Gleich。“又高又瘦QR分解在MapReduce架构”https://doi.org/10.1145/1996092.1996103

参数
computeQ bool,可选

是否computeQ

返回
pyspark.mllib.linalg.QRDecomposition

QRDecomposition(问:RowMatrix R:矩阵),Q =如果computeQ = false。

例子

> > >=sc并行化([[3,- - - - - -6),(4,- - - - - -8),(0,1]])> > >=RowMatrix()> > >decomp=tallSkinnyQR(真正的)> > >=decomp> > >R=decompR
> > >#测试与绝对值> > >absQRows=地图(λ:腹肌(toArray())tolist())> > >absQRows收集()[[0.6……,0.0),(0。8…,0.0),(0.0,1.0]]
> > >#测试与绝对值> > >腹肌(RtoArray())tolist()[[5.0,10.0],[0.0,1.0]]

属性的文档

RowMatrix存储为一个抽样的行向量。

例子

> > >=RowMatrix(sc并行化([[1,2,3),(4,5,6]]))> > >=> > >第一个()DenseVector ((1.0, 2.0, 3.0))