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.RDD
或pyspark.sql.DataFrame
-
一个抽样或DataFrame向量。如果提供了DataFrame,它必须有一个单独的向量类型的列。
- numRows int,可选
-
矩阵的行数。非容积值是未知的,此时的行数将由数量的记录行抽样。
- numCols int,可选
-
矩阵的列数。非容积值是未知的,此时列的数量将取决于大小的第一行。
-
行
方法
columnSimilarities
((阈值))这个矩阵的列计算相似性。
计算列汇总统计。
计算协方差矩阵,把每一行作为一个观察。
格兰姆矩阵计算一个T ^。
计算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
-
主成分数。
- 返回
笔记
这不能计算矩阵有超过65535列。
例子
> > >行=sc。并行化([[1,2,3),(2,4,5),(3,6,1]])> > >rm=RowMatrix(行)
> > >#返回rm的两个主要组件> > >主成分分析=rm。computePrincipalComponents(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]是最大的奇异值。
- 返回
例子
> > >行=sc。并行化([[3,1,1),(- - - - - -1,3,1]])> > >rm=RowMatrix(行)
> > >svd_model=rm。computeSVD(2,真正的)> > >svd_model。U。行。收集()[DenseVector ([-0.7071, 0.7071]), DenseVector ([-0.7071, -0.7071])]> > >svd_model。年代DenseVector ([3.4641, 3.1623])> > >svd_model。VDenseMatrix (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
-
当地一个稠密矩阵的行数必须匹配这个矩阵的列数
-
矩阵
- 返回
例子
> > >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=decomp。R
> > >#测试与绝对值> > >absQRows=问。行。地图(λ行:腹肌(行。toArray())。tolist())> > >absQRows。收集()[[0.6……,0.0),(0。8…,0.0),(0.0,1.0]]
> > >#测试与绝对值> > >腹肌(R。toArray())。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))