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))