Pyspark特征工程--StandardScaler

本文介绍了如何使用 PySpark 的 StandardScaler 对特征进行标准化处理,以实现数据的归一化。通过创建一个 SparkSession 和 DataFrame,展示了如何应用 StandardScaler 对向量数据进行标准化操作,并展示标准化后的结果。StandardScaler 可以移除数据的均值并将其缩放至单位标准差,这对于许多机器学习算法来说是非常重要的预处理步骤。
摘要由CSDN通过智能技术生成

StandardScaler

class pyspark.ml.feature.StandardScaler(withMean=False, withStd=True, inputCol=None, outputCol=None)

通过使用训练集中样本的列汇总统计数据去除均值并缩放到单位方差来标准化特征(归一化)

“单位标准差”是使用校正后的样本标准差计算的,该标准差计算为无偏样本方差的平方根

withMean = Param(parent=‘undefined’, name=‘withMean’, doc=‘以平均值为中心的数据’)*

withStd= Param(parent=‘undefined’, name=‘withStd’, doc=‘缩放到单位标准差’)*

01.创建数据

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("SQLTransformer").master("local[*]").getOrCreate()
from pyspark.ml.linalg import Vectors
df = spark.createDataFrame([(Vectors.dense([0.0]),), (Vectors.dense([2.0]),)], ["a"])
df.show()
df.printSchema()

​ 输出结果:

+-----+
|    a|
+-----+
|[0.0]|
|[2.0]|
+-----+

root
 |-- a: vector (nullable = true)

02.使用StandardScaler标准化

from pyspark.ml.feature import StandardScaler
standardScaler = StandardScaler(inputCol="a", outputCol="scaled")
model = standardScaler.fit(df)
model.transform(df).show()
model.mean

​ 输出结果:

+-----+-------------------+
|    a|             scaled|
+-----+-------------------+
|[0.0]|              [0.0]|
|[2.0]|[1.414213562373095]|
+-----+-------------------+

DenseVector([1.0])
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值