Spark ml数据归一化

Spark ML包中的几种归一化方法总结 org.apache.spark.ml.feature包中包含了4种不同的归一化方法: Normalizer StandardScaler MinMaxScaler MaxAbsScaler 有时感觉会容易混淆,借助官方文档和实际数据的变换,在这里做一次总结。原文地址:http://www.neilron.xyz/spark-ml-feature-scaler/0 数据准备import org.ap 阅读详情
import org.apache.log4j.{Level, Logger}
import org.apache.spark.ml.linalg.Vectors
import org.apache.spark.sql.SparkSession
import org.apache.spark.ml.feature.Normalizer
import org.apache.spark.ml.feature.StandardScaler
import org.apache.spark.ml.feature.MinMaxScaler
import org.apache.spark.ml.feature.MaxAbsScaler
/**
  * @author XiaoTangBao
  * @date 2019/3/4 16:21
  * @version 1.0
  */
object Normalized {
  def main(args: Array[String]): Unit = {
    Logger.getLogger("org.apache.spark").setLevel(Level.ERROR)
    val sparkSession = SparkSession.builder().master("local[4]").appName("NOrmalize").getOrCreate()
    val df =  sparkSession.createDataFrame(Seq((1, Vectors.dense(1.0, 12.5, -108.0)),
      (2, Vectors.dense(2.5, 36.0, 198.0)),(3, Vectors.dense(6.8, 24.0, 459.0))))
      .toDF("id","features")
    //Normalizer的作用范围是每一行,使每一个行向量的范数变换为一个单位范数
    val normalizer1 = new Normalizer()
      .setInputCol("features")
      .setOutputCol("normalfeatures")
      .setP(1.0)
    val L1 = normalizer1.transform(df)
    L1.show(false)

	+---+-----------------+------------------------------------------------------------+
	|id |features         |normalfeatures                                              |
	+---+-----------------+------------------------------------------------------------+
	|1  |[1.0,12.5,-108.0]|[0.00823045267489712,0.102880658436214,-0.8888888888888888] |
	|2  |[2.5,36.0,198.0] |[0.010570824524312896,0.1522198731501057,0.8372093023255814]|
	|3  |[6.8,24.0,459.0] |[0.013883217639853,0.04899959167006941,0.9371171906900776]  |
	+---+-----------------+------------------------------------------------------------+

    //StandardScaler处理的对象是每一列,也就是每一维特征,将特征标准化为单位标准差或是0均值,或是0均值单位标准差。
    val scaler_1 = new StandardScaler()
      .setInputCol("features")
      .setOutputCol("scaledFeatures")
      .setWithStd(true)
      .setWithMean(false)
    val scalerMode_l = scaler_1.fit(df)
    val scalaerdData_1 = scalerMode_l.transform(df)
    scalaerdData_1.show(false)

	+---+-----------------+------------------------------------------------------------+
	|id |features         |scaledFeatures                                              |
	+---+-----------------+------------------------------------------------------------+
	|1  |[1.0,12.5,-108.0]|[0.3321666477362439,1.0637495315070804,-0.38055308480157485]|
	|2  |[2.5,36.0,198.0] |[0.8304166193406097,3.063598650740391,0.6976806554695538]   |
	|3  |[6.8,24.0,459.0] |[2.2587332046064583,2.0423991004935944,1.617350610406693]   |
	+---+-----------------+------------------------------------------------------------+

    //MinMaxScaler作用同样是每一列,即每一维特征。将每一维特征线性地映射到指定的区间,通常是[0, 1]
    val scaler_2 = new MinMaxScaler()
      .setInputCol("features")
      .setOutputCol("scaledFeatures")
    val scalerModel_2 = scaler_2.fit(df)
    val scalaerdData_2 = scalerModel_2.transform(df)
    scalaerdData_2.show(false)

	+---+-----------------+--------------------------------------------+
	|id |features         |scaledFeatures                              |
	+---+-----------------+--------------------------------------------+
	|1  |[1.0,12.5,-108.0]|[0.0,0.0,0.0]                               |
	|2  |[2.5,36.0,198.0] |[0.25862068965517243,1.0,0.5396825396825397]|
	|3  |[6.8,24.0,459.0] |[1.0,0.48936170212765956,1.0]               |
	+---+-----------------+--------------------------------------------+

    //MaxAbsScaler将每一维的特征变换到[-1, 1]闭区间上,通过除以每一维特征上的最大的绝对值,它不会平移整个分布,也不会破坏原来每一个特征向量的稀疏性。
    val scaler_3 = new MaxAbsScaler()
      .setInputCol("features")
      .setOutputCol("scaledFeatures")
    val scalerModel_3 = scaler_3.fit(df)
    val scalaerdData_3 = scalerModel_3.transform(df)
    scalaerdData_3.show(false)
	+---+-----------------+-------------------------------------------------------------+
	|id |features         |scaledFeatures                                               |
	+---+-----------------+-------------------------------------------------------------+
	|1  |[1.0,12.5,-108.0]|[0.14705882352941177,0.3472222222222222,-0.23529411764705882]|
	|2  |[2.5,36.0,198.0] |[0.36764705882352944,1.0,0.43137254901960786]                |
	|3  |[6.8,24.0,459.0] |[1.0,0.6666666666666666,1.0]                                 |
	+---+-----------------+-------------------------------------------------------------+

  }
}
Spark ML基本算法【Correlation相关性】 一.简介 计算两个系列数据之间的相关性是“统计”中的常见操作。spark.ml 提供了很多系列中的灵活性,计算两两相关性。目前支持的相关方法是Pearson和Spearman的相关。 Correlation 使用指定的方法为向量的输入数据集计算相关矩阵。输出将是一个DataFrame,其中包含向量列的相关矩阵。 二.代码实战 package big.data.analyse.ml import org.apache.log4j.{Level, Logger} import org.apache.spark 阅读详情

相关推荐

Sparkml实战

精确讲述SparkML里面算法调用以及算法之间串行以及并行

Spark 归一化方法总结Normalizer、StandardScaler、MinMaxScaler

org.apache.spark.ml.feature包中包含了4种不同的归一化方法: Normalizer StandardScaler MinMaxScaler MaxAbsScaler 数据准备 注意函数对于要处理的数据格式要求是 val dataFrame = data.na.fill(0).rdd.map(a=>(a.getString(0),Vectors.dense(a.getLong(1),a.getLong(2),a.getLong(3),a.getLong(4)))).toDF("

weixin_42155006的博客 2840

【机械臂算法】基于最小惯性参数集的动力学辨识仿真实践

本文深入探讨了机械臂动力学参数辨识的核心挑战与解决方案,重点阐述了基于最小惯性参数集的理论与方法。通过分析PUMA560实例,详细介绍了利用QR分解法或符号推导法获取可辨识参数集,并系统讲解了从激励轨迹设计、仿真数据采集、线性系统求解到模型验证的完整实践流程,为高精度动力学建模与控制奠定了坚实基础。

weixin_29054399的博客 377

Spark特征工程-归一化 和 分桶

归一化 分桶

Code_LT的博客 1506

Cass三角网法土方计算优化技巧:如何根据地形特点调整边界采样间距

本文深入探讨了Cass软件中三角网法(DTM法)土方计算的优化技巧,核心在于如何根据地形的复杂程度动态调整边界采样间距。针对平坦、复杂及人工构造物等不同地形特征,提供了具体的间距调整策略与精度验证方法,旨在帮助工程师在计算精度与效率间找到最佳平衡,实现精细化土方计算。

weixin_29294975的博客 525

分类模型AUC低于0.5?5个常见坑点排查指南(附代码示例)

本文针对分类模型AUC低于0.5的常见问题,提供了5个关键排查点及代码示例。从样本分布失衡、特征与标签脱节到量纲差异、模型初始化和数据泄露,详细解析了可能导致AUC异常的原因,并给出实用的诊断方法和解决方案,帮助开发者快速提升模型性能。

weixin_29190169的博客 240

Spark机器学习--四种归一化方法总结及图文解释

目录: 一、描述 二、数据准备 三、 Normalizer 四、 StandardScaler 五、 MinMaxScaler 六、MaxAbsScaler 七、总结 一、描述 org.apache.spark.ml.feature包中包含了4种不同的归一化方法: Normalizer StandardScaler MinMaxScaler MaxAbsScaler   &nbs...

辉哥大数据 2356

Scratch 3.0角色控制避坑指南:为什么你的键盘移动总卡顿?

本文深入剖析了Scratch 3.0中角色移动卡顿的根本原因,指出依赖`当按下`事件积木的局限性。通过对比分析,推荐采用`重复执行`结合`如果<键被按下?>`的循环控制方案,并引入速度变量模拟惯性,从而实现流畅、实时的键盘控制优化,显著提升游戏操作体验。

dd012的博客 1015

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

归一化是一种简化计算的方式,即通过某种算法将原始数据集限制在你需要的一定范围内,一方面是数据处理的方便,另一方面是为了后面放入模型计算的方便,使得运行时的收敛性更快。 Spark ML机器学习库中包含了4种归一化的方法: Normalizer StandardScaler MinMaxScaler MaxAbsScaler 在我的项目中只用到了MinMaxScaler方法,在这里我就着重分享该方法的用法。 MinMaxScaler作用是将每一维度的特征向量映射到指定的区间内,通常是[0,1]。他一般有两

Clozzz的博客 1548

AI办公Agent技术:文档与表格智能处理实践

办公自动化技术正从规则驱动转向语义理解,大语言模型(LLM)为办公Agent赋予了智能决策能力。这类系统通过五层架构整合自然语言处理、工具API调用和任务规划引擎,能自动完成文档分类、表格分析等高重复性工作。关键技术包括基于TF-IDF和BERT的特征提取、Excel公式自动生成等,在财务报告、法律审查等场景可实现90%以上的效率提升。随着多模态能力和领域专业化发展,办公Agent正在重塑企业文档处理流程,成为数字化转型的核心基础设施。

weixin_30263277的博客 521

保姆级教程:用Wokwi玩转ESP32 MicroPython仿真(含库文件配置指南)

本教程详细介绍了如何使用Wokwi平台进行ESP32 MicroPython仿真开发,包括库文件配置、传感器数据模拟和REPL调试技巧。通过Wokwi的仿真调试系统,开发者可以在浏览器中快速验证代码逻辑,提高开发效率,特别适合物联网项目的快速迭代。

weixin_29195615的博客 448

Spark2 数据处理和实时分析(三)

原文:zh.annas-archive.org/md5/16D84784AD68D8BF20A18AC23C62DD82。

龙哥盟 1461

从码农到生态建造者:我的一人公司运作方案

华哥·OPC 运营方案 v1.0 - 第一次迭代 🚀,搭建闭环生态系统,赋能 AI 时代的超级个体,更好的做自己,同时照亮别人。

AaronZZH 的博客 998

Spark 2.x 机器学习秘籍(三)

在从运行小型企业到创建和管理关键任务应用的各行业中,都有一些常见的任务需要作为几乎每个工作流程的一部分包含在内。即使是构建强大的机器学习系统也是如此。在 Spark 机器学习中,这些任务包括从拆分数据进行模型开发(训练、测试、验证)到归一化输入特征向量数据以通过 Spark API 创建 ML 管道。本章提供了一组配方,以使读者思考实际上需要实施端到端机器学习系统的内容。本章试图演示任何强大的 Spark 机器学习系统实现中存在的一些常见任务。

龙哥盟 932

详解AXI4-Lite接口(3)--AXI4-Lite接口IP源码仿真及分析(Master接口)

通过本文您会学到:1、了解AXI4-Lite_Master接口的逻辑实现;2、加深Xilinx IP、仿真工具的使用;3、提高阅读时序图的能力。

孤独的单刀 6447

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java 数据归一化,sparkMLlib数据归一化方法

0 数据准备import org.apache.spark.ml.linalg.Vectorsval 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(...

weixin_31834087的博客 611

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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

weixin_34117522的博客 654

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

spark数据清洗教程

在未来,我们可以期待Spark在数据清洗和预处理方面的进一步发展,例如支持更多的算法和特征工程,提供更高效的性能和更好的用户体验。在这个例子中,我们首先创建了一个数据集,然后使用fillna方法处理缺失值,接着使用StandardScaler和MinMaxScaler方法进行数据归一化和数据标准化,然后使用StandardScaler方法进行数据缩放,最后使用OneHotEncoder方法进行数据转换。在实际应用场景中,我们可以使用Spark进行数据清洗和预处理,以便于后续的数据分析和机器学习任务。

2401_87250241的博客 995

优快云社群十问十答(大数据第一期)

过去的一周,我们从优快云 大数据社群中,整理了小伙伴们提问较多的问题,并请技术达人对这些问题进行了回答,现整理如下。欢迎大家在社群中积极提问哦,积极提问的小伙伴还将获得优快云提供的神秘纪念礼品哦! 问题1、Spark可以完全替代hadoop吗? 不可以,spark 只是分布式计算平台,而hadoop已经是分布式计算、存储、管理的生态系统。 与Spark相对应的是Hadoop Mapre...

优快云学习 1737

Spark-MLlib 学习入门到掌握-StandardScaler归一化[24]

归一化后加快了梯度下降求最优解的速度; 归一化有可能提高精度; def StandardScalerTest(): Unit ={ import org.apache.spark.ml.feature.StandardScaler val spark: SparkSession = SparkSession.builder().appName("implicits").master("local[2]").getOrCreate() val dataFrame = ..

qq_41610493的博客 529

Spark MLlib分布式机器学习源码分析:特征提取与转换

Spark是一个极为优秀的大数据框架,在大数据批处理上基本无人能敌,流处理上也有一席之地,机器学习则是当前正火热AI人工智能的驱动引擎,在大数据场景下如何发挥AI技术成为优秀的大数据挖掘工程师必备技能。本文结合机器学习思想与Spark框架代码结构来实现分布式机器学习过程,希望与大家一起学习进步~ 本文采用的组件版本为:Ubuntu 19.10、Jdk 1.8.0_241、Scala...

大数据之眸 872

Photon-ML 特征工程指南:标准化、归一化与特征摘要

Photon-ML 是一个基于 Apache Spark 的可扩展机器学习库,提供了强大的特征工程功能,包括标准化、归一化和特征摘要统计。本文将详细介绍如何在 Photon-ML 中应用这些关键技术,帮助新手用户快速掌握特征预处理的核心方法。 ## 为什么特征工程对机器学习至关重要? 在机器学习流程中,特征工程是提升模型性能的关键步骤。原始数据往往存在量纲不一致、分布差异大等问题,直接用于训练

gitblog_00564的博客 1129

SparkMllib关于数值型特征的基本处理实践

黑马程序员视频库播妞微信号:boniu236传智播客旗下互联网资讯、学习资源免费分享平台在SparkMllib中主要分为特征抽取、特征转化、特征选择,特别是在特征转化方面...

传智播客的专栏 181

数据读取与归一化:机器学习数据预处理核心技巧

数据预处理是机器学习项目中的关键环节,其中数据读取与归一化直接影响模型效果。数据读取涉及从CSV、数据库等不同源获取数据,需注意内存管理、异常处理和性能优化。归一化则通过Min-Max、Z-Score等方法将数据转换到统一尺度,提升模型收敛速度与精度。在工程实践中,pandas和scikit-learn是常用工具,而分块读取、自动化流水线等技巧能显著提升效率。这些技术在金融风控、推荐系统等场景广泛应用,是每位数据科学家必须掌握的基本功。

388

特征的转换_03-标准化,归一化,正则化

1.标准化StandardScaler1.1 概述我们知道,在训练模型的时候,要输入features,即因子,也叫特征。对于同一个特征,不同的样本中的取值可能会相差非常大,一些异常小或异常大的数据会误导模型的正确训练;另外,如果数据的分布很分散也会影响训练结果。以上两种方式都体现在方差会非常大。此时,我们可以将特征中的值进行标准差标准化,即转换为均值为0,方差为1的正态分布。所以在训练模型之前,一定

【人工智能】王小草的博客 1万+
上一篇: 算法小白的第一次尝试--LinearRegression
下一篇: 最小二乘法---最详细的解释
小糖宝
博客等级 码龄9年 47粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值