大数据基础之算法——Spark ML归一化方法 MinMaxScaler

归一化是一种简化计算的方式,即通过某种算法将原始数据集限制在你需要的一定范围内,一方面是提升模型的精度,另一方面是为了后面放入模型计算的方便,使得运行时的收敛性更快。
Spark ML机器学习库中包含了4种归一化的方法:

  • Normalizer
  • StandardScaler
  • MinMaxScaler
  • MaxAbsScaler
    在这里插入图片描述

如图所示,左边的图代表没有经过归一化处理的数据集,右边的图代表经过归一化处理的数据集。我们很清楚的可以看出,左边的椭圆要想遍历完整,必须从短轴开始,已短轴为半径画圆,只能遍历到圆与椭圆重叠的部分,圆外面的部分还需要不断的增加轴的长度,继续画圆,慢慢的遍历。而经过归一化,他的数据集就是一个很正规的一个圆,如果需要遍历只需要以半径为圆就可以遍历整个数据集,大大减少了迭代的次数,节省运行时间和复杂度。

在我的项目中只用到了MinMaxScaler方法,在这里我就着重分享该方法的用法。

MinMaxScaler作用是将每一维度的特征向量映射到指定的区间内,通常是[0,1]。他一般有两个参数可以设置:

  • min:默认为0。指定区间的下限
  • max:默认为1。指定区间的上限

原始数据集:
在这里插入图片描述
从图中可以看出数据之间的差距很大,这不利于后期的数据处理和运行时的收敛速度。

val mmScaler = new MinMaxScaler().setInputCol("orign_feature").setOutputCol("feature")
//    fit产生模型 transform将数据带到模型里计算  ofdf为处理前的数据集
val resdf = mmScaler.fit(ofdf).transform(ofdf).select("cust_id","feature").show(false)

最终结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值