當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pyspark Statistics.corr用法及代碼示例


本文簡要介紹 pyspark.mllib.stat.Statistics.corr 的用法。

用法:

static corr(x, y=None, method=None)

使用指定的方法計算輸入 RDD(s) 的相關性(矩陣)。當前支持的方法:pearson (default), spearman

如果傳入單個向量 RDD,則返回一個比較輸入 RDD 中的列的相關矩陣。使用method 指定用於單個 RDD 輸入的方法。如果傳入兩個 RDD 的浮點數,則返回一個浮點數。

參數

xpyspark.RDD

要計算相關矩陣的向量的 RDD,或者在指定 y 時與 y 具有相同基數的 float 的 RDD。

y pyspark.RDD ,可選

與 x 具有相同基數的浮點 RDD。

methodstr,可選

指定用於計算相關性的方法的字符串。支持:pearson(默認)、spearman

返回

pyspark.mllib.linalg.Matrix

比較 x 中的列的相關矩陣。

例子

>>> x = sc.parallelize([1.0, 0.0, -2.0], 2)
>>> y = sc.parallelize([4.0, 5.0, 3.0], 2)
>>> zeros = sc.parallelize([0.0, 0.0, 0.0], 2)
>>> abs(Statistics.corr(x, y) - 0.6546537) < 1e-7
True
>>> Statistics.corr(x, y) == Statistics.corr(x, y, "pearson")
True
>>> Statistics.corr(x, y, "spearman")
0.5
>>> from math import isnan
>>> isnan(Statistics.corr(x, zeros))
True
>>> from pyspark.mllib.linalg import Vectors
>>> rdd = sc.parallelize([Vectors.dense([1, 0, 0, -2]), Vectors.dense([4, 5, 0, 3]),
...                       Vectors.dense([6, 7, 0,  8]), Vectors.dense([9, 0, 0, 1])])
>>> pearsonCorr = Statistics.corr(rdd)
>>> print(str(pearsonCorr).replace('nan', 'NaN'))
[[ 1.          0.05564149         NaN  0.40047142]
 [ 0.05564149  1.                 NaN  0.91359586]
 [        NaN         NaN  1.                 NaN]
 [ 0.40047142  0.91359586         NaN  1.        ]]
>>> spearmanCorr = Statistics.corr(rdd, method="spearman")
>>> print(str(spearmanCorr).replace('nan', 'NaN'))
[[ 1.          0.10540926         NaN  0.4       ]
 [ 0.10540926  1.                 NaN  0.9486833 ]
 [        NaN         NaN  1.                 NaN]
 [ 0.4         0.9486833          NaN  1.        ]]
>>> try:
...     Statistics.corr(rdd, "spearman")
...     print("Method name as second argument without 'method=' shouldn't be allowed.")
... except TypeError:
...     pass

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.mllib.stat.Statistics.corr。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。