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