欧洲核子研究组织如何预测新的流行数据集

2024-01-10 13:10

本文主要是介绍欧洲核子研究组织如何预测新的流行数据集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

去年夏天,我曾在日内瓦的欧洲核子研究组织(CERN)暑期开放实验室实习。我工作的重点是为CERN的大数据分析来探索Apache Spark的MLlib框架。

在CERN,一个主要的实验项目是CMS(世界上最大的粒子物理探测器之一),通过它可以帮助我们对亚原子有更好的理解。实验是在CERN的大型强子对撞击(LHC)上进行的。LHC是一个粒子加速器,可以把亚原子粒子推送到极高的速度并通过CMS探测器可视化。CMS探测器是一个巨大的多层数码相机,记录了每秒LHC的粒子碰撞产生的碎片的图像。CMS实验每一年要收集O(10)拍字节的数据。随着时间的推移,每一次碰撞都会带来巨大的数据量。最大数据的生产速率可以达到约600兆/秒,由此带来了一个相当大的数据处理的挑战。这些数据在全球LHC计算网格的多层计算基础设施保存并处理。

由于数据安排是CERN实验中必要的一个组件,我们正在寻找不一样的方法来改进这个任务,并开发了一个原型试验项目-评估Apache Spark作为CERN的大数据分析基础设施。这一项目的目的是从CMS的数据中得出合适的预测,改进资源利用,并对框架和指标有深层的理解。

理解流行的CMD数据集

此原型项目的第一个阶段是预测新的和流行的CMS数据集。流行度被定义为数据集被用作研究的频繁性。这些被认为是流行的数据集是因为它们日常被物理学家访问,因而需要在全世界各个数据中心复制备份。识别流行的数据集改进了分析的效率并帮助识别可能成为高能物理学的热点话题的数据集,比如Higgs粒子和超对称粒子。

图一展示了随机数据集在2014年每周的流行度,Y轴使用的是对数刻度。每一条线代表了不同的数据集。由黑线代表的数据集在第1到20周比其他多20%-30%的访问,表明该数据集的流行和普及。相较而言,黄线代表的数据集根本没有被访问,表明该数据集是不流行的。

图一 星期为单位的随机CMS数据集的流行度。本图由瓦伦丁·库兹涅佐夫提供,经许可使用

相对流行的数据集也可以通过制作基于单一流行度指标的云图,比如基于Naccess(单一用户访问数据集的总量)、totcpu(cpu分析数据集总花费的小时数,见图二)、nusers(数据集的总访问用户数,见图三)等。这些用户可以是物理学家、学生或者是研究人员。你在图中看到的数字代表了数据集的名字。数据集的命名法包括日期、软件版本和格式,由三个不同的部分定义:进程、软件和层。这三个部分非常重要,因为它们可以帮助复制过程。

图二 使用totcpu指标的CMS数据集的流行度在云图中的表示。本图由瓦伦丁·库兹涅佐夫提供,经许可使用

图三 使用Nusers指标的CMS数据集的流行度在云图中的表示。本图由瓦伦丁·库兹涅佐夫提供,经许可使用

2014年中最频繁被访问的CMS数据集在图四中展示。

图四 2014年100个最频繁访问的CMS数据集在云图中的表示。本图由瓦伦丁·库兹涅佐夫提供,经许可使用
使用Apache Spark来预测新的和流行的CMS数据集

机器学习算法能够运行预测模型并推测随着时间改变的流行的数据集。我将Apache Spark评估为一个将不同的从CMS数据服务收集信息的预测模型流式组合起来的工具。当与更早的通过动态数据安排方法获得的结果比较时,Spark提供的准确度是相近的。一个较大的不同是,其结果是实时获取的。因为Spark可以实时的分析流式数据,在数据产生时滚动预测流行度结果。预测流行的数据集是通过用Spark源生的机器学习库(MLlib)和Python的机器学习算法来完成的。这些算法主要包括朴素贝叶斯、统计随机梯度下降和随机森林。

每一周的数据都会被添加到已有的数据之中,并建立一个新的模型,从而得到更好的数据分析结果。这些模型稍后会被整合进来,并通过真阳性,真阴性,假阳性或假阴性的值进行评估。我也使用了Python的机器学习库(scikit-learn)并比较了从不同框架得到的值。在这一过程中,我能够判断每一个模型的质量。MLlib有几乎所有的机器学习算法的的实现,在CPU开销和内存使用上与Python框架相比有更好的结果。

结论

Spark和scikit-learn的模型原型的准确度几乎相同。通过运用主成分分析法,我可以交互式地为新的数据集选择最佳的预测模型。其他一些对CMS数据分析重要的因素是并行度和快速的分布式数据处理。Spark框架提供了一个简单的编程抽象,提供了强有力的缓存和持久化能力,同时还有很快的速度。结论就是,我们发现Spark的组件(Spark Steaming和MLlib)极大地简化了CMS数据的分析,并可以成功地应用到CMS数据集上。

Siddha Ganju

Siddha Ganju是卡内基梅隆大学计算机数据科学专业的硕士生,2015年夏天在CERN的开放实验室实习。她的研究主要在于机器学习、自然语言处理、信息检索和深度学习的结合之处。Siddha从印度米尔布尔国家科技学院获得学士学位。可以从http://sidgan.me访问Siddha的网站。


这篇关于欧洲核子研究组织如何预测新的流行数据集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/590913

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很