当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark RobustScaler用法及代码示例


本文简要介绍 pyspark.ml.feature.RobustScaler 的用法。

用法:

class pyspark.ml.feature.RobustScaler(*, lower=0.25, upper=0.75, withCentering=False, withScaling=True, inputCol=None, outputCol=None, relativeError=0.001)

RobustScaler 删除中位数并根据分位数范围缩放数据。分位数范围默认为 IQR(四分位数范围,第一个四分位数 = 第 25 个分位数和第三个四分位数 = 第 75 个分位数之间的分位数范围),但可以配置。通过计算训练集中样本的相关统计数据,对每个特征独立进行居中和缩放。然后存储中位数和分位数范围,以供以后使用变换方法的数据使用。请注意,在计算中位数和范围时,NaN 值被忽略。

3.0.0 版中的新函数。

例子

>>> from pyspark.ml.linalg import Vectors
>>> data = [(0, Vectors.dense([0.0, 0.0]),),
...         (1, Vectors.dense([1.0, -1.0]),),
...         (2, Vectors.dense([2.0, -2.0]),),
...         (3, Vectors.dense([3.0, -3.0]),),
...         (4, Vectors.dense([4.0, -4.0]),),]
>>> df = spark.createDataFrame(data, ["id", "features"])
>>> scaler = RobustScaler()
>>> scaler.setInputCol("features")
RobustScaler...
>>> scaler.setOutputCol("scaled")
RobustScaler...
>>> model = scaler.fit(df)
>>> model.setOutputCol("output")
RobustScalerModel...
>>> model.median
DenseVector([2.0, -2.0])
>>> model.range
DenseVector([2.0, 2.0])
>>> model.transform(df).collect()[1].output
DenseVector([0.5, -0.5])
>>> scalerPath = temp_path + "/robust-scaler"
>>> scaler.save(scalerPath)
>>> loadedScaler = RobustScaler.load(scalerPath)
>>> loadedScaler.getWithCentering() == scaler.getWithCentering()
True
>>> loadedScaler.getWithScaling() == scaler.getWithScaling()
True
>>> modelPath = temp_path + "/robust-scaler-model"
>>> model.save(modelPath)
>>> loadedModel = RobustScalerModel.load(modelPath)
>>> loadedModel.median == model.median
True
>>> loadedModel.range == model.range
True
>>> loadedModel.transform(df).take(1) == model.transform(df).take(1)
True

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.ml.feature.RobustScaler。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。