Spark数据挖掘-数据标准化
Spark数据挖掘-数据标准化 1 前言 特征数据标准化指的是对训练样本通过利用每一列的统计量将特征列转换为0均值单位方差的数据。 这是非常通用的数据预处理步骤。 例如:RBF核的支持向量机或者基于L1和L2正则化的线性模型在数据标准化之后效果会更好。 数据标准化能够改进优化过程中数据收敛的速度,也能防止一些方差过大的变量特征对模型训练 产生过大的影响。 如何对数据标准化呢?公式也非常简单:新的列 = (老的列每一个值 - 老的列平均值) / (老的列标准差) 2 数据准备 在标准化之前,Spark必须知道每一列的平均值,方差,具体怎么知道呢? 想法很简单,首先给 Spark的 StandardScaler 一批数据,这批数据以 org.apache.spark.mllib.feature.Vector 的形式提供给 StandardScaler。StandardScaler 对输入的数据进行 fit 即计算每一列的平均值,方差。 调度代码如下: import org.apache.spark.SparkContext._ import org.apache.spark.mllib.feature.StandardScaler import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib