Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何转换一个值数组,使每个值更接近平均值,但在PySpark中具有类似形状的分布(即减少stdev)_Node.js_Apache Spark_Machine Learning_Pyspark_Statistics - Fatal编程技术网

Node.js 如何转换一个值数组,使每个值更接近平均值,但在PySpark中具有类似形状的分布(即减少stdev)

Node.js 如何转换一个值数组,使每个值更接近平均值,但在PySpark中具有类似形状的分布(即减少stdev),node.js,apache-spark,machine-learning,pyspark,statistics,Node.js,Apache Spark,Machine Learning,Pyspark,Statistics,我希望我已经用正确的术语描述了我需要做的工作。本质上,我需要“压缩”一系列值,以便所有值都更接近平均值,但它们的值应该相对于它们与平均值的距离减小(或增大) 数据帧如下所示: >>> df[['population', 'postalCode']].show(10) +----------+----------+ |population|postalCode| +----------+----------+ | 1464| 96028| | 465

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

数据帧如下所示:

>>> 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中执行此任务的任何帮助。

总体思路是:

  • 将平均值转换为零
  • 重新缩放到新的标准偏差
  • 转换为所需的平均值(在本例中为原始平均值)
  • 在伪代码中,如果值存储在变量
    x
    中:

    x.scaled = new.mean + (x - mean(x)) * new.SD/sd(x)
    
    或者,对于SD=1000且平均值无变化的特定情况:

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

    令人惊叹的!谢谢尝试了这一点,它奏效了,但有了正确的术语,我就找到了一个更好的方向:带有numpy的pyspark有一个MinMaxScale函数。。。!