2016-04-19 3 views
-1

Я смотрю документацию для Statistics.corr в PySpark: https://spark.apache.org/docs/1.1.0/api/python/pyspark.mllib.stat.Statistics-class.html#corr.Почему этот пример приводит к NaN?

Почему здесь корреляция приводит к NaN?

>>> 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.  ]] 

ответ

3

Это довольно коэффициент корреляции simple.Pearson определяются следующим образом:

enter image description here

Так как стандартное отклонение для второго столбца ([0, 0, 0, 0]) равно 0, целые результатов в уравнении NaN.

Смежные вопросы