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


Python pyspark MinMaxScaler用法及代码示例


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

用法:

class pyspark.ml.feature.MinMaxScaler(*, min=0.0, max=1.0, inputCol=None, outputCol=None)

使用列汇总统计将每个特征单独重新缩放到一个公共范围 [min, max],这也称为min-max 标准化或重新缩放。特征 E 的重新缩放值计算为,

重新缩放(e_i) = (e_i - E_min) /(E_max - E_min) * (max - min) + min

对于 E_max == E_min 的情况,Rescaled(e_i) = 0.5 * (max + min)

版本 1.6.0 中的新函数。

注意

由于零值可能会转换为非零值,因此即使对于稀疏输入,转换器的输出也将是DenseVector。

例子

>>> from pyspark.ml.linalg import Vectors
>>> df = spark.createDataFrame([(Vectors.dense([0.0]),), (Vectors.dense([2.0]),)], ["a"])
>>> mmScaler = MinMaxScaler(outputCol="scaled")
>>> mmScaler.setInputCol("a")
MinMaxScaler...
>>> model = mmScaler.fit(df)
>>> model.setOutputCol("scaledOutput")
MinMaxScalerModel...
>>> model.originalMin
DenseVector([0.0])
>>> model.originalMax
DenseVector([2.0])
>>> model.transform(df).show()
+-----+------------+
|    a|scaledOutput|
+-----+------------+
|[0.0]|       [0.0]|
|[2.0]|       [1.0]|
+-----+------------+
...
>>> minMaxScalerPath = temp_path + "/min-max-scaler"
>>> mmScaler.save(minMaxScalerPath)
>>> loadedMMScaler = MinMaxScaler.load(minMaxScalerPath)
>>> loadedMMScaler.getMin() == mmScaler.getMin()
True
>>> loadedMMScaler.getMax() == mmScaler.getMax()
True
>>> modelPath = temp_path + "/min-max-scaler-model"
>>> model.save(modelPath)
>>> loadedModel = MinMaxScalerModel.load(modelPath)
>>> loadedModel.originalMin == model.originalMin
True
>>> loadedModel.originalMax == model.originalMax
True
>>> loadedModel.transform(df).take(1) == model.transform(df).take(1)
True

相关用法


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