本篇博文主要是對pyspark.ml.feature模塊的函數進行介紹,也可以直接看官網文檔。其中博文的數據皆來自官方文檔中例子。官方文檔地址: http://spark.apache.org/docs/latest/api/python/pyspark.ml.html
pyspark.ml.feature 函數概括:
__all__ = ['Binarizer', 'Bucketizer', 'CountVectorizer', 'CountVectorizerModel', 'DCT',
'ElementwiseProduct', 'HashingTF', 'IDF', 'IDFModel', 'IndexToString', 'MinMaxScaler',
'MinMaxScalerModel', 'NGram', 'Normalizer', 'OneHotEncoder', 'PCA', 'PCAModel',
'PolynomialExpansion', 'RegexTokenizer', 'RFormula', 'RFormulaModel', 'SQLTransformer',
'StandardScaler', 'StandardScalerModel', 'StopWordsRemover', 'StringIndexer',
'StringIndexerModel', 'Tokenizer', 'VectorAssembler', 'VectorIndexer', 'VectorSlicer',
'Word2Vec', 'Word2VecModel']
1、MinMaxScaler(min=0.0, max=1.0, inputCol=None, outputCol=None)
MinMaxScaler歸一化數據到特定的範圍,被稱爲最小最大正則或者縮放。
計算公式如下:
Rescaled(e_i) = (e_i - E_min) / (E_max - E_min) * (max - min) + min
For the case E_max == E_min, Rescaled(e_i) = 0.5 * (max + min)
其中:[min,max]爲欲歸一化的特定範圍,e_i待處理數據,E_max數據最大值,E_min數據最小值。
from pyspark.ml.feature import MinMaxScaler
>>> from pyspark.ml.linalg import Vectors
>>> df = spark.createDataFrame([(Vectors.dense([0.0]),), (Vectors.dense([2.0]),)], ["a"])
>>> mmScaler = MinMaxScaler(inputCol="a", outputCol="scaled")
>>> model = mmScaler.fit(df)
>>> model.originalMin
DenseVector([0.0])
>>> model.originalMax
DenseVector([2.0])
>>> model.transform(df).show()
ss