首页 > 解决方案 > PySpark 特征变换:输出均匀分布的 QuantileTransformer

问题描述

链接到 scikit-learn 上的文档: link

它本质上所做的是,它对数据进行规范化,使得每个数据点都落在 0 到 1 之间的存储桶(百分位等级?)下,我假设每个存储桶都具有相同数量的数据点。这张图片描述了我正在尝试做的事情。

图片

我想将此分位数转换与 PySpark 一起使用。PySpark 中有一个 QuantileDiscretizer链接,但它并不完全符合我的要求。它还返回比输入参数中给出的更少数量的桶。下面的代码行在具有数百万行的数据集上仅返回 81 个不同的桶,min(col_1) 为 0,max(col_1) 为 20000。

discretizer_1 = QuantileDiscretizer(numBuckets=100, inputCol="col_1", outputCol="result")

那么有没有一种方法可以统一规范化我的数据,使用 QuantileDiscretizer或以其他方式使用 PySpark?

标签: pysparknormalizationfeature-engineering

解决方案


推荐阅读