码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [机器学习、Spark]Spark MLlib实现数据基本统计


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

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

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

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

     

    目录

    Spark MLlib基本统计

    一.摘要统计

    二.相关统计

    三.分层抽样


     

    Spark MLlib基本统计

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

    MLlib三个核心功能:

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

    4e90faccccfc6fbee05942c06ac7487e.jpeg

    一.摘要统计

    683e0c9eb2ea498e947c45ae24776375.png

     

    导包

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

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

    8f74331d2f634abeb23ef138bdd46f5b.png

    4b7a10b2bb614bdfa1ec24e666137db5.png

     

    创建密集矩阵

    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)))

    ec6cf353c1af45edb38d9598ea610988.png 

     

    计算列摘要统计信息

    val sum:MultivariateStatisticalSummary=Statistics.colStats(observations)

    e7a271ba3ac9460692baca3767e2a220.png

     

    打印平均值

    60847f34b0714d39a33ff0bd09dd74d0.png

     

    打印方差

    b03caa77482e4e16886fbaf58135aaf2.png

     

    打印每列非零元素的个数

    729508676c434166a25e3c9fb4d57184.png

     

    二.相关统计

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

     

    导包

    d75f944e28b74b969cfb62c48591fb17.png

     

    创建序列

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

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

    01a89d0c970e48f2bd528cfb764eb42c.png

     

    计算seX和seY的相关系数

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

    ee98d14e3bbc475389d0d87859980489.png

     

    打印数据

    println(s"Correlation is : $correlation")

    ee746c0471bf46458f59fda4ee467d01.png

     

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

    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)))

    218aab3106804ddebf1d98df5a5dae34.png 

     

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

    e8800dd8c061472c8278ae8987804110.png

     

    打印数据

    println(corMx.toString)

    8a54f2ae884d49a2820374913840d0f6.png

     

    三.分层抽样

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

     

    创建键值对RDD

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

    efe8e36f3d1646ffb2b8c56067d70cb2.png

     

    设定抽样格式

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

    ebe9cddb4e7d4f7fba6d343835bdb119.png

     

    从每层获取抽样样本

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

    08b5ceb5a35a4676837d3329588ac00d.png

     

    从每层获取精确样本

    0eeb2be2dfee4b1ba17b0c6bb32cdcea.png 

     

    打印抽样样本

    c6b75aa86afb4389908d41e2bcd4641c.png

     

    打印精确样本

     

    49cdef29457147078e3ef718b02237c7.png

     

     

  • 相关阅读:
    【C#实战】控制台游戏 勇士斗恶龙(3)——营救公主以及结束界面
    java计算机毕业设计医疗器械销售电子商城源码+系统+mysql数据库+lw文档
    余弦相似度算法进行客户流失分类预测
    啦啦外卖v60.5系统独立版+平台用户端+骑手端+商家端小程序 安装配置使用教程
    面试题:深拷贝方法、for in 和for of区别 、this指向、改变this指向
    VE3+elementplus搭建通用管理系统实例:项目规划
    JavaScript关于对象的小挑战
    刚参加工作的表弟问我枚举跟常量的使用场景
    12.数组的初始化和引用
    vue中三种for循环与高阶函数(filter、map、reduce)的使用
  • 原文地址:https://blog.csdn.net/m0_57781407/article/details/127457260
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号