org.apache.spark.ml.feature包中包含了4种不同的归一化方法:
- Normalizer
- StandardScaler
- MinMaxScaler
- MaxAbsScaler
有时感觉会容易混淆,借助官方文档和实际数据的变换,在这里做一次总结。
原文地址:http://www.neilron.xyz/spark-ml-feature-scaler/
0 数据准备
import org.apache.spark.ml.linalg.Vectors
val dataFrame = spark.createDataFrame(Seq(
(0, Vectors.dense(1.0, 0.5, -1.0)),
(1, Vectors.dense(2.0, 1.0, 1.0)),
(2, Vectors.dense(4.0, 10.0, 2.0))
)).toDF("id", "features")
dataFrame.show
// 原始数据
+---+--------------+
| id| features|
+---+--------------+
| 0|[1.0,0.5,-1.0]|
| 1| [2.0,1.0,1.0]|
| 2|[4.0,10.0,2.0]|
+---+--------------+
1 Normalizer
Normalizer的作用范围是每一行,使每一个行向量的范数变换为一个单位范数,下面的示例代码都来自