[机器学习、Spark]Spark MLlib实现数据基本统计

news2025/1/13 14:21:52

👨‍🎓👨‍🎓博主:发量不足

📑📑本期更新内容:Spark MLlib基本统计

📑📑下篇文章预告:Spark MLlib的分类🔥🔥

简介:耐心,自信来源于你强大的思想和知识基础!!

目录

Spark MLlib基本统计

一.摘要统计

二.相关统计

三.分层抽样


Spark MLlib基本统计

MLlib提供了很多统计方法,包含摘要统计、相关统计、分层抽样、假设检验、随机数生成等统计方法,利用这些统计方法可帮助用户更好地对结果数据进行处理和分析

MLlib三个核心功能:

1.实用程序:统计方法,如描述性统计、卡方检验、线性代数、模型评估方法等
2.数据准备:特征提取、变换、分类特征的散列和一些自然语言处理方法
3.机器学习方法:实现了一些流行和高级的回归,分类和聚类算法

一.摘要统计

导包

import org.apache.spark.mllib.linalg.Vectors

import org.apache.spark.mllib.stat.{MultivariateStatisticalSummary,Statistics}

创建密集矩阵

val observations=sc.parallelize(Seq(Vectors.dense(1.0,10.0,100.0),Vectors.dense(2.0,20.0,200.0),Vectors.dense(3.0,30.0,300.0)))

 

计算列摘要统计信息

val sum:MultivariateStatisticalSummary=Statistics.colStats(observations)

打印平均值

打印方差

打印每列非零元素的个数

 

二.相关统计

相关系数是反应两个变量之间相关关系密切程度的统计指标,这也是统计学中常用的统计方式,MLlib提供了计算多个序列之间相关统计的方法,目前MLlib默认采用皮尔森相关系数计算方法。皮尔森相关系数也称皮尔森积矩相关系数,它是一种线性相关系数。

导包

 

创建序列

val seriesX:RDD[Double]=sc.parallelize(Array(1,2,3,3,5))

val seriesY:RDD[Double]=sc.parallelize(Array(11,22,33,33,555))

计算seX和seY的相关系数

val correlation:Double = Statistics.corr(seriesX,seriesY,"pearson")

打印数据

println(s"Correlation is : $correlation")

利用皮尔森方法计算密集矩阵相关系数

val data:RDD[Vector]=sc.parallelize(Seq(Vectors.dense(1.0,10.0,100.0),Vectors.dense(2.0,20.0,200.0),Vectors.dense(5.0,33.0,366.0)))

 

val corMx:Matrix = Statistics.corr(data,"pearson")

打印数据

println(corMx.toString)

 

三.分层抽样

分层抽样法也叫类型抽样法,它是先将总体样本按照某种特征分为若干次级(层),如何再从每一层内进行独立取样,组成一个样本的统计学计算方法。

创建键值对RDD

val data=sc.parallelize(Seq((1,'a'),(1,'b'),(2,'c'),(2,'d'),(2,'e'),(3,'f')))

设定抽样格式

val fra = Map(1->0.1,2->0.6,3->0.3)

 

从每层获取抽样样本

val app=data.sampleByKey(withReplacement=false,fractions=fra)

从每层获取精确样本

 

打印抽样样本

打印精确样本

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/7.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java多线程【锁优化与死锁】

Java多线程【锁优化与死锁】🍒一.synchronized的优化🍎1.1基本特点🍎1.2加锁工作过程🍎1.3优化操作🍒二.死锁🍎2.1什么是死锁🍎2.2 一对一死锁🍎2.3 二对二死锁🍎2.4 N对…

Web 1.0、Web 2.0 和 Web 3.0 之间的比较

💂 个人网站:【海拥】【摸鱼小游戏】【神级源码资源网站】🤟 风趣幽默的前端学习课程:👉28个案例趣学前端💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬 免费且实用的 P…

目前最先进的神经网络算法,神经网络算法发展

1、神经网络的发展趋势如何? 神经网络的云集成模式还不是很成熟,应该有发展潜力,但神经网络有自己的硬伤,不知道能够达到怎样的效果,所以决策支持系统中并不是很热门,但是神经网络无视过程的优点也是无可替…

HTML5新特性

H5新增 1) 新增选择器 document.querySelector、document.querySelectorAll doucment.querySelector(#sampel) // 选择id doucment.querySelector(.sampel) // 选择出现的第一个类 doucment.querySelectorAll(.sampel)[0] // 选择出现的第一个类2)拖拽释放(Drag and drop) AP…

2022年江西省赣育杯网络安全大赛学生组WebMisc Writeup

文章目录WEB签到easyzphpezpyMISCbyteMuisc有趣的PDFWEB 签到 ?id-1union select 1,(select group_concat(schema_name) from information_schema.schemata),3,4,5--?id-1union select 1,(select group_concat(table_name) from information_schema.tables where table_sch…