如何转换值的数组,以使每个值都更接近均值,但是在PySpark中具有类似形状的分布(即减小stdev)

詹姆斯·亨特

我希望我已经用正确的术语描述了我需要做的工作。本质上,我需要``压缩''一系列值,以使所有值都更接近均值,但是相对于它们与均值的距离,应减小(或增大)它们的值...

数据框如下所示:

>>> df[['population', 'postalCode']].show(10)
+----------+----------+
|population|postalCode|
+----------+----------+
|      1464|     96028|
|       465|     96015|
|       366|     96016|
|      5490|     96101|
|       183|     96068|
|       569|     96009|
|       366|     96054|
|        90|     96119|
|       557|     96006|
|       233|     96116|
+----------+----------+
only showing top 10 rows

>>> df.describe().show()
+-------+------------------+------------------+
|summary|        population|        postalCode|
+-------+------------------+------------------+
|  count|              1082|              1082|
|   mean|23348.511090573014| 93458.60813308688|
| stddev|21825.045923603615|1883.6307236060127|
+-------+------------------+------------------+

总体均值对我而言是正确的,但我需要围绕它的方差要小...

希望这是有道理的,非常感谢在pyspark或node.js中执行此工作的任何帮助。

eipi10

总体思路是:

  1. 将均值转换为零。
  2. 重新调整为新的标准偏差
  3. 转换为所需的均值(在这种情况下,为原始均值)

在伪代码中,如果您的值存储在变量中x

x.scaled = new.mean + (x - mean(x)) * new.SD/sd(x)

或者,对于特定的情况,例如SD = 1000,均值没有变化:

x.scaled = mean(x) + (x - mean(x)) * 1000/sd(x)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档