當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。