spark 数据处理中的,正则化标准化和归一化

A.正则化
1.正则化的目的是什么?
正则化是为了防止过拟合,加入正则项和的参数估计是符合我们之前的预定目标的,即用尽量少的变量去拟合数据。正则化符合奥卡姆剃刀原理,在所有可能选择的模型中,能够很好的解释已知数据,并且十分简单的才是最好的模型,也就是要选择的模型。
2.机器学习中的范数
L0范数是指向量中非零元素的个数,如果用L0规则化一个参数矩阵W,就是希望W中大部分元素为0,实现稀疏
L1范数是指向量中各个元素的绝对值之和
L2范数是指向量各元素的平方和然后开方

3.L1 L2 Regularization图片描述
图片描述
图片描述
4.结论:
为了防止过拟合,不仅仅要求损失函数小,还要求 min(损失函数+正则化项 )

B.标准化
在spark.ml中标准化的实现列是StandardScaler
StandardScaler处理的对象是每一列,也就是每一维特征,将特征标准化为单位标准差或是0均值,或是0均值单位标准差。
主要有两个参数可以设置:

withStd: 默认为真。将数据标准化到单位标准差。
withMean: 默认为假。是否变换为0均值。
StandardScaler需要fit数据,获取每一维的均值和标准差,来缩放每一维特征。
eg:

    //数据标准化
    val scaler = new StandardScaler()
      .setInputCol("features")
      .setOutputCol("scaledFeatures")
      .setWithStd(true)
      .setWithMean(false)
      
    val scalerModel = scaler.fit(output)
    val scaledData = scalerModel.transform(output)

C.归一化
数据归一化由MinMaxScaler实现
MinMaxScaler作用同样是每一列,即每一维特征。将每一维特征线性地映射到指定的区间,通常是[0, 1]。
eg:

    //数据归一化
    val scaler = new MinMaxScaler()
      .setInputCol("featuresAssembler")
      .setOutputCol(features)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值