목차
关于本系列
了解更多 MapReduce
安装 Hadoop
데이터 베이스 MySQL 튜토리얼 用Hadoop MapReduce进行大数据分析

用Hadoop MapReduce进行大数据分析

Jun 07, 2016 pm 04:28 PM
hadoop ht mapreduce 데이터 분석 원천 지휘하다

来源:http://www.ibm.com/developerworks/cn/java/j-javadev2-15/index.html Google 在 2001 年发布图像搜索功能时,只有 2.5 亿索引图像,不到 10 年,这个巨大的搜索功能已经可以检索超过 100 亿个图像了,每分钟有 35 小时的内容上传到 YouTube。据称,T

来源:http://www.ibm.com/developerworks/cn/java/j-javadev2-15/index.html

Google 在 2001 年发布图像搜索功能时,只有 2.5 亿索引图像,不到 10 年,这个巨大的搜索功能已经可以检索超过 100 亿个图像了,每分钟有 35 小时的内容上传到 YouTube。据称,Twitter 每天平均处理 5500 万 tweet。今年早些时候,搜索功能每天记录 6 亿条查询记录。 就是我们讨论大数据的意义所在。

关于本系列

从 Java 技术首次亮相以来,Java 开发的格局已经发生了巨大的变化。得益于成熟的开源框架和可靠的租用式部署基础设施,现在已经可以迅速经济地汇编、测试、运行和维护 Java 应用程序了。在 本系列 中,Andrew Glover 将探索使这种全新开发范例成为可能的各种技术和工具。

如此大规模的数据一度仅限于大企业、学校和政府机构 — 这些机构有能力购买昂贵的超级计算机、能够雇用员
工保障其运行。今天,由于存储成本的降低和处理能力的商品化,一些小公司,甚至个人都可以存储和挖掘同样的数据,推动新一轮的应用程序创新。

大数据革命技术之一是 MapReduce,一个编程模式,是 Google 针对大规模、分布式数据而开发的。在本文中,我将介绍 Apache 的开源 MapReduce 实现,Hadoop,也有人将其称之为云计算的杀手应用程序。

关于 Hadoop

Apache 的 Hadoop 框架本质上是一个用于分析大数据集的机制,不一定位于数据存储中。Hadoop 提取出了 MapReduce 的大规模数据分析引擎,更易于开发人员理解。Hadoop 可以扩展到无数个节点,可以处理所有活动和相关数据存储的协调。

Hadoop 的众多特性和配置使其成为一个十分有用且功能强大的框架,其用途和功能令人惊讶。Yahoo! 以及其他许多组织已经找到了一个高效机制来分析成堆的字节数。在单个节点上运行 Hadoop 也很容易;您所需要的只是一些需要分析的数据,以及熟悉一般的 Java 代码。Hadoop 也可和 Ruby、Python 以及 C++ 一起使用。

了解更多 MapReduce

如果您是本系列的读者,您可能已经见过 MapReduce 一两次了。在 “通过 CouchDB 和 Groovy 的 RESTClient 实现 REST” 中,我介绍了 CouchDB 如何利用 MapReduce 进行查看,接着在 “MongoDB:拥有 RDBMS 特性的 NoSQL 数据存储” 中我再次提到 MapReduce,处理 MongoDB 文档的机制。

作为处理大数据集的概念框架,MapReduce 对于使用许多计算机来解决分布式问题而言是高度优化的。顾名思义,这个框架由两个函数构成。map 函数专用于获取大数据输入,并将其分成小片段,然后交由其他进程进行操作。reduce 函数整理 map 收集的各个回应,然后显示最后的输出。

在 Hadoop 中,您可以通过扩展 Hadoop 自身的基类来定义 mapreduce 实现。实现和输入输出格式被一个指定它们的配置联系在一起。Hadoop 非常适合处理包含结构数据的大型文件。Hadoop 可以对输入文件进行原始解析,这一点特别有用,这样您就可以每次处理一行。定义一个 map 函数实际上只是一个关于确定您从即将输入的文本行中捕获什么内容的问题。


数据,无处不在的数据!

美国政府产生大量数据,只有一部分是普通民众所感兴趣的。各种政府机构免费发布关于 US 经济健康状况和更改社会人口统计资料的数据。U.S. Geological Survey (USGS) 发布国内外地震数据。

世界各地每天都有很多个小型地震发生。其中大多数发生在地壳深处,没有人能感觉到,尽管如此,但是监听站仍然会进行记录。USGS 以 CSV(或逗号分隔值)文件的格式发布每周地震数据。

每周文件平均不是很大 — 只有大约 100 KB 左右。但是,它可以作为学习 Hadoop 的基础。记住,Hadoop 有能力处理 大的数据集。

跟踪震动

我近期从 USGS 网站下载的 CSV 文件有大约 920 多行。如 清单 1 所示:

清单 1. 清单 1. 一个 USGS 地震数据文件的行数统计

$> wc -l eqs7day-M1.txt
  920 eqs7day-M1.txt
로그인 후 복사

CVS 文件内容如 清单 2 所示(这是前两行):

清单 2. 清单 2. CVS 文件的前两行

$> head -n 2 eqs7day-M1.txt
Src,Eqid,Version,Datetime,Lat,Lon,Magnitude,Depth,NST,Region
ci,14896484,2,"Sunday, December 12, 2010 23:23:20 UTC",33.3040,-116.4130,1.0,11.70,22,
  "Southern California"
로그인 후 복사

这就是我称之为信息丰富 的文件,尤其是当您想到它总共有 920 行记录时。然而我只想知道在该文件报告的这一周内每一天有多少次地震发生。我想知道在这 7 天内哪个区域是地震频发区。

我第一个想到的就是使用简单的 grep 命令来搜索每天的地震数。
看看这个文件,我发现数据记录是从 12 月 12
开始的。因此我对该字符串执行了一次 grep -c,其结果如清单 3 所示:

清单 3. 清单 3. 12 月 12 有多少次地震发生?

$> grep -c 'December 12' eqs7day-M1.txt
98
로그인 후 복사

安装 Hadoop

如果您之前没有安装 Hadoop,那么现在就装。第一步,下载最新版二进制文件,解压,然后在您的路径上设置 Hadoop 的 bin 目录。完成这些您就可以直接执行 hadoop 命令了。使用 Hadoop 要求您执行它的 hadoop 命令,而不是像您所见到的那样调用 java 命令。您可以向 hadoop 命令传选项,诸如在哪里可以找到您的 Java 二进制文件(例如,表示您的 mapreduce 实现)。在我的示例中,我创建了一个 jar 文件,告诉 Hadoop 我想在我的 jar 文件内运行哪个任务。我也向 Hadoop 类路径添加了一些运行我的应用程序所需的附加二进制文件。

现在,我知道在 12 月 12 日有 98 条记录,也就是说有 98 次地震。我只能沿着这条记录向下,对 12 月 10 日的记录执行一次 grep,接着是 11 号,等等。这听起来有点乏味。更糟糕的是,我还需要知道在该文件中的是哪几天。我确实不关心这些,甚至有时候我可能无法获取该信息。事实上,我只想知道在七天这样一个时间段内任何一天的地震次数,使用 Hadoop 我就可以很容易的获取这一信息。

Hadoop 只需要几条信息就可以回答我的第一个和第二个问题:即,要处理哪条输入以及如何处理 mapreduce。我也必须提供了一个可以将每件事都联系起来的作业。在我开始处理这些代码之前,我需要花点时间确定我的 CSV 数据整齐有序。


使用 opencsv 进行数据解析

除了地震 CSV 文件的第一行之外,第一行是文件头,每一行都是一系列逗号分隔数据值。我只对数据的 3 个部分感兴趣:日期、地点和震级。为了获取这些资料,我将使用一个很棒的开源库 opencsv,它将会帮助我分析 CSV 文件。

作为一个测试优先的工具,我首先编写一个快捷 JUnit 测试,确认我可以从 CSV 文件的一个样例行获取的我所需要的信息,如清单 4 所示:

清单 4. 清单 4. 解析一个 CSV 行

public class CSVProcessingTest {
 private final String LINE = "ci,14897012,2,\"Monday, December 13, 2010 " +
            "14:10:32 UTC\",33.0290,-115." +
            "5388,1.9,15.70,41,\"Southern California\"";
 @Test
 public void testReadingOneLine() throws Exception {
  String[] lines = new CSVParser().parseLine(LINE);
  assertEquals("should be Monday, December 13, 2010 14:10:32 UTC",
    "Monday, December 13, 2010 14:10:32 UTC", lines[3]);
  assertEquals("should be Southern California",
    "Southern California", lines[9]);
  assertEquals("should be 1.9", "1.9", lines[6]);
 }
}
로그인 후 복사

正如您在 清单 4 中所看到的,opencsv 处理逗号分隔值非常容易。该解析器仅返回一组 String,所以有可能获取位置信息(别忘了,在 Java 语言中数组和集合的访问是从零开始的)。

转换日期格式

当使用 MapReduce 进行处理时,map 函数的任务是选择一些要处理的值,以及一些键。这就是说,map 主要处理和返回两个元素:一个键和一个值。回到我之前的需求,我首先想知道每天会发生多少次地震。因此,当我在分析地震文件时,我将发布两个值:键是日期,值是一个计数器。reduce 函数将对计数器(只是一些值为 1 的整数)进行总计。因此,提供给我的是在目标地震文件中某一个日期出现的次数。

由于我只对 24 小时时段内的信息感兴趣,我得剔除每个文件中的日期的时间部分。在 清单 5 中,我编写了一个快速测试,验证如何将一个传入文件中的特定日期信息转换成一个更一般的 24 小时日期:

清单 5. 清单 5. 日期格式转换

@Test
public void testParsingDate() throws Exception {
 String datest = "Monday, December 13, 2010 14:10:32 UTC";
 SimpleDateFormat formatter = new SimpleDateFormat("EEEEE, MMMMM dd, yyyy HH:mm:ss Z");
 Date dt = formatter.parse(datest);
 formatter.applyPattern("dd-MM-yyyy");
 String dtstr = formatter.format(dt);
 assertEquals("should be 13-12-2010", "13-12-2010", dtstr);
}
로그인 후 복사

在 清单 5 中,我使用了 SimpleDateFormat Java 对象,将 CSV 文件中格式为 Monday, December 13, 2010 14:10:32 UTC 的日期 String 转换成了更一般的 13-12-2010。


Hadoop 的 map 和 reduce

现在我已经找到了处理 CSV 文件以及其日期格式的解决方法。我要开始在 Hadoop 中实施我的 mapreduce 函数了。这个过程需要理解 Java 泛型,因为 Hadoop 选择使用显式类型,为了安全起见。

当我使用 Hadoop 定义一个映射实现时,我只扩展 Hadoop 的 Mapper 类。然后我可以使用泛型来为传出键和值指定显式类。类型子句也指定了传入键和值,这对于读取文件分别是字节数和文本行数。

EarthQuakesPerDateMapper 类扩展了 Hadoop 的 Mapper 对象。它显式地将其输出键指定为一个 Text 对象,将其值指定为一个 IntWritable,这是一个 Hadoop 特定类,实质上是一个整数。还要注意,class 子句的前两个类型是 LongWritableText,分别是字节数和文本行数。

由于类定义中的类型子句,我将传入 map 方法的参数类型设置为在 context.write 子句内带有该方法的输出。如果我想指定其他内容,将会出现一个编译器问题,或 Hadoop 将输出一个错误消息,描述类型不匹配的消息。

清单 6. 清单 6. 一个映射实现

public class EarthQuakesPerDateMapper extends Mapper<longwritable text intwritable> {
 @Override
 protected void map(LongWritable key, Text value, Context context) throws IOException,
   InterruptedException {
  if (key.get() > 0) {
   try {
     CSVParser parser = new CSVParser();
     String[] lines = parser.parseLine(value.toString());
     SimpleDateFormat formatter =
       new SimpleDateFormat("EEEEE, MMMMM dd, yyyy HH:mm:ss Z");
     Date dt = formatter.parse(lines[3]);
     formatter.applyPattern("dd-MM-yyyy");
     String dtstr = formatter.format(dt);
     context.write(new Text(dtstr), new IntWritable(1));
   } catch (ParseException e) {}
  }
 }
}</longwritable>
로그인 후 복사

清单 6 中的 map 实现比较简单:本质上是,Hadoop 为在输入文件中找到的每一行文本调用这个类。为了避免除了 CSV 头部,首先检查是否字节数(key 对象)为零。然后执行清单 4 和 5 中的步骤:捕获传入日期,进行转换,然后设置为传出键。我也提供了一个数:1。就是说,我为每个日期编写一个计数器,当 reduce 实现被调用时,获取一个键和一系列值。在本例中,键是日期及其值,如 清单 7 所示:

清单 7. 清单 7. 一个 map 输出和 reduce 输入的逻辑视图

"13-12-2010":[1,1,1,1,1,1,1,1]
"14-12-2010":[1,1,1,1,1,1]
"15-12-2010":[1,1,1,1,1,1,1,1,1]
로그인 후 복사

注意,context.write(new Text(dtstr), new<br> IntWritable(1))(在 清单 6 中)构建了如 清单 7 所示的逻辑集合。正如您所了解的,context 是一个保存各种信息的 Hadoop 数据结构。context 被传递到 reduce 实现,reduce 获取这些值为 1 的值然后总和起来。因此,一个 reduce 实现逻辑上创建如 清单 8 所示的数据结构:

清单 8. 清单 8. 一个 reduce 输出视图

"13-12-2010":8
"14-12-2010":6
"15-12-2010":9
로그인 후 복사

我的 reduce 实现如 清单 9 所示。与 Hadoop 的 Mapper 一样,Reducer 被参数化了:前两个参数是传入的键类型(Text)和值类型(IntWritable),后两个参数是输出类型:键和值,这在本例中是相同的。

清单 9. 清单 9. reduce 实现

public class EarthQuakesPerDateReducer extends Reducer<text intwritable text> {
 @Override
 protected void reduce(Text key, Iterable<intwritable> values, Context context)
  throws IOException, InterruptedException {
  int count = 0;
  for (IntWritable value : values) {
   count++;
  }
  context.write(key, new IntWritable(count));
 }
}</intwritable></text>
로그인 후 복사

我的 reduce 实现非常简单。正如我在 清单 7 中所指出的,传入的是实际上是一个值的集合,在本例中是 1 的集合,我所做的就是将它们加起来,然后写出一个新键值对表示日期和次数。我的 reduce 代码可以挑出您在 清单 8 中所见到的这几行。逻辑流程看起来像这样:

"13-12-2010":[1,1,1,1,1,1,1,1] -> "13-12-2010":8
로그인 후 복사

当然,这个清单的抽象形式是 map -> reduce


定义一个 Hadoop Job

现在我已经对我的 mapreduce 实现进行了编码,接下来所要做的是将所有这一切链接到一个 Hadoop Job。定义一个 Job 比较简单:您需要提供输入和输出、mapreduce 实现(如 清单 6 和 清单 9 所示)以及输出类型。在本例中我的输出类型和 reduce 实现所用的是同一个类型。

清单 10. 清单 10. 一个将 map 和 redece 绑在一起的 Job

public class EarthQuakesPerDayJob {
 public static void main(String[] args) throws Throwable {
  Job job = new Job();
  job.setJarByClass(EarthQuakesPerDayJob.class);
  FileInputFormat.addInputPath(job, new Path(args[0]));
  FileOutputFormat.setOutputPath(job, new Path(args[1]));
  job.setMapperClass(EarthQuakesPerDateMapper.class);
  job.setReducerClass(EarthQuakesPerDateReducer.class);
  job.setOutputKeyClass(Text.class);
  job.setOutputValueClass(IntWritable.class);
  System.exit(job.waitForCompletion(true) ? 0 : 1);
 }
}
로그인 후 복사

在 清单 10 中,我使用一个 main 方法将所有这一切绑在一起,该方法有两个参数:地震 CSV 文件的目录,以及生成报告的输出目录(Hadoop 更喜欢创建该目录)。

为了执行这个小框架,我需要将这些类打包。我还需要告知 Hadoop 在哪里可以找到 opencsv 二进制文件。然后可以通过命令行执行 Hadoop ,如 清单 11 所示:

清单 11. 清单 11. 执行 Hadoop

$> export HADOOP_CLASSPATH=lib/opencsv-2.2.jar
$> hadoop jar target/quake.jar com.b50.hadoop.quake.EarthQuakesPerDayJob
   ~/temp/mreduce/in/ ~/temp/mreduce/out
로그인 후 복사

运行这些代码,Hadoop 开始运行时您将可以看到一堆文本在屏幕上一闪而过。我所用的 CSV 文件相比专门用于处理这种情况的 Hadoop,那真是小巫见大巫
!hadoop 应该可以在几秒钟内完成,具体取决于您的处理功能。

完成这些后,您可以使用任何编辑器查看输出文件内容。还可以选择直接使用 hadoop 命令。正如 清单 12 所示:

清单 12. 清单 12. 读取 Hadoop 输出

$> hadoop dfs -cat part-r-00000
05-12-2010      43
06-12-2010      143
07-12-2010      112
08-12-2010      136
09-12-2010      178
10-12-2010      114
11-12-2010      114
12-12-2010      79
로그인 후 복사

如果您像我一样,在 清单 12 中首先会注意到的就是每天地震数 — 12 月 9 日就有 178 次地震。希望您也会注意到 Hadoop 实现了我所想要的:整齐地列出我的研究范围内每天的地震次数。


编写另一个 Mapper

接下来,我想找到地震发生在哪里,以及如何快速计算出在我的研究范围内记录地震次数最多的是哪个区域。当然,您已经猜到了,Hadoop 可以轻松地做到。在这个案例中,键不再是日期而是区域。因此,我编写了一个新的 Mapper 类。

清单 13. 清单 13. 一个新的 map 实现

public class EarthQuakeLocationMapper extends Mapper<longwritable text intwritable> {
 @Override
 protected void map(LongWritable key, Text value, Context context) throws IOException,
  InterruptedException {
  if (key.get() > 0) {
   String[] lines = new CSVParser().parseLine(value.toString());
   context.write(new Text(lines[9]), new IntWritable(1));
  }
 }
}</longwritable>
로그인 후 복사

和之前获取日期然后进行转换相比,在 清单 13 中我所作的是获取位置,这是 CSV 阵列中的最后一个条目。

相比一个庞大的位置和数字列表,我将结果限制在那些 7 天内出现 10 次的区域。

清单 14. 清单
14. 哪里的地震较多?

 public class EarthQuakeLocationReducer extends
Reducer<text intwritable text> { @Override protected void
reduce(Text key, Iterable<intwritable> values, Context context) throws
IOException, InterruptedException { int count = 0; for (IntWritable value :
values) { count++; } if (count >= 10) { context.write(key, new
IntWritable(count)); } } }</intwritable></text>
로그인 후 복사

清单 14 中的代码和 清单 9 中的代码非常类似;然而,在本例中,我限制了输出大于或等于 10。接下来,我将 mapreduce,以及其他 Job 实现绑在一起,进行打包,然后和平常一样执行 Hadoop 获取我的新答案。

使用 hadoop dfs 目录显示我所请求的新值:

清单 15. 清单 15. 地震区域分布

$> hadoop dfs -cat part-r-00000
Andreanof Islands, Aleutian Islands, Alaska     24
Arkansas        40
Baja California, Mexico 101
Central Alaska  74
Central California      68
Greater Los Angeles area, California    16
Island of Hawaii, Hawaii        16
Kenai Peninsula, Alaska 11
Nevada  15
Northern California     114
San Francisco Bay area, California      21
Southern Alaska 97
Southern California     115
Utah    19
western Montana 11
로그인 후 복사

从 清单 15 还可以得到什么?首先,北美洲西海岸,从墨西哥到阿拉斯加是地震高发区。其次,阿肯色州明显位于断带层上,这是我没有意识到的。最后,如果您居住在北部或者是南加州(很多软件开发人员都居住于此),您周围的地方每隔 13 分钟会震动一次。


结束语

使用 Hadoop 分析数据轻松且高效,对于它对数据分析所提供的支持,我只是了解皮毛而已。Hadoop 的设计旨在以一种分布式方式运行,处理运行 mapreduce 的各个节点之间的协调性。作为示例,本文中我只在一个 JVM 上运行 Hadoop,该 JVM 仅有一个无足轻重的文件。

Hadoop 本身是一个功能强大的工具,围绕它还有一个完整的、不断扩展的生态系统,可以提供子项目至基于云计算的 Hadoop 服务。Hadoop 生态系统演示了项目背后丰富的社区活动。来自社区的许多工具证实了大数据分析作为一个全球业务活动的可行性。有了 Hadoop,分布式数据挖掘和分析对所有软件创新者和企业家都是可用的,包括但不限于 Google 和 Yahoo! 这类大企业。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Pandas를 사용하여 CSV 파일을 읽고 데이터 분석을 수행합니다. Pandas를 사용하여 CSV 파일을 읽고 데이터 분석을 수행합니다. Jan 09, 2024 am 09:26 AM

Pandas는 다양한 유형의 데이터 파일을 쉽게 읽고 처리할 수 있는 강력한 데이터 분석 도구입니다. 그중 CSV 파일은 가장 일반적이고 일반적으로 사용되는 데이터 파일 형식 중 하나입니다. 이 기사에서는 Pandas를 사용하여 CSV 파일을 읽고 데이터 분석을 수행하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 필요한 라이브러리 가져오기 먼저 아래와 같이 필요할 수 있는 Pandas 라이브러리 및 기타 관련 라이브러리를 가져와야 합니다. importpandasasspd 2. Pan을 사용하여 CSV 파일 읽기

데이터 분석 방법 소개 데이터 분석 방법 소개 Jan 08, 2024 am 10:22 AM

일반적인 데이터 분석 방법: 1. 비교 분석 방법 3. 교차 분석 방법 5. 원인 및 영향 분석 방법 8. , 주성분 분석 방법 9. 분산 분석 방법 10. 매트릭스 분석 방법. 세부 소개: 1. 비교 분석 방법: 둘 이상의 데이터를 비교 분석하여 차이점과 패턴을 찾습니다. 2. 구조 분석 방법: 전체의 각 부분을 비교 분석하는 방법 3. 교차 분석 방법. , 등.

데이터 과학자가 95%의 시간을 사용하는 11가지 기본 분포 데이터 과학자가 95%의 시간을 사용하는 11가지 기본 분포 Dec 15, 2023 am 08:21 AM

"데이터 과학자가 95%의 시간을 사용하는 11가지 기본 차트"의 마지막 목록에 이어 오늘은 데이터 과학자가 95%의 시간을 사용하는 11가지 기본 분포를 소개하겠습니다. 이러한 분포를 마스터하면 데이터의 특성을 더 깊이 이해하고 데이터 분석 및 의사 결정 중에 더 정확한 추론과 예측을 할 수 있습니다. 1. 정규 분포 정규 분포는 가우스 분포라고도 알려져 있으며 연속 확률 분포입니다. 평균(μ)을 중심으로 하고 표준 편차(σ)를 너비로 하는 대칭 종 모양 곡선을 갖습니다. 정규분포는 통계, 확률론, 공학 등 여러 분야에서 중요한 응용 가치를 갖고 있습니다.

Go 언어를 활용한 머신러닝 및 데이터 분석 Go 언어를 활용한 머신러닝 및 데이터 분석 Nov 30, 2023 am 08:44 AM

오늘날의 지능사회에서 머신러닝과 데이터 분석은 사람들이 대량의 데이터를 더 잘 이해하고 활용할 수 있도록 돕는 필수적인 도구입니다. 이러한 분야에서 Go 언어는 속도와 효율성으로 인해 많은 프로그래머들이 선택하는 프로그래밍 언어이기도 합니다. 이 글에서는 머신러닝과 데이터 분석에 Go 언어를 사용하는 방법을 소개합니다. 1. 기계 학습 생태계 Go 언어는 Python 및 R만큼 풍부하지 않습니다. 그러나 점점 더 많은 사람들이 Go 언어를 사용하기 시작하면서 일부 기계 학습 라이브러리 및 프레임워크는

데이터 분석 및 기계 학습을 위한 11가지 고급 시각화 데이터 분석 및 기계 학습을 위한 11가지 고급 시각화 Oct 25, 2023 am 08:13 AM

시각화는 복잡한 데이터 패턴과 관계를 직관적이고 이해하기 쉬운 방식으로 전달하는 강력한 도구입니다. 이는 데이터 분석에서 중요한 역할을 하며 원시 데이터나 전통적인 수치 표현에서는 식별하기 어려운 통찰력을 제공합니다. 시각화는 복잡한 데이터 패턴과 관계를 이해하는 데 매우 중요합니다. 데이터의 정보를 공개하고 복잡한 데이터를 더욱 이해하기 쉽고 의미 있게 만드는 데 도움이 되는 가장 중요하고 꼭 알아야 할 11가지 차트를 소개합니다. 1. KSPlotKSPlot은 분포 차이를 평가하는 데 사용됩니다. 핵심 아이디어는 두 분포의 누적 분포 함수(CDF) 사이의 최대 거리를 측정하는 것입니다. 최대 거리가 작을수록 동일한 분포에 속할 가능성이 높아집니다. 따라서 주로 분포차이를 판단하기 위한 '시스템'으로 해석된다.

ECharts 및 PHP 인터페이스를 사용하여 데이터 분석 및 통계 차트 예측을 구현하는 방법 ECharts 및 PHP 인터페이스를 사용하여 데이터 분석 및 통계 차트 예측을 구현하는 방법 Dec 17, 2023 am 10:26 AM

ECharts 및 PHP 인터페이스를 사용하여 통계 차트의 데이터 분석 및 예측을 구현하는 방법 데이터 분석 및 예측은 데이터의 추세와 패턴을 이해하고 향후 결정을 위한 참고 자료를 제공하는 데 도움이 됩니다. ECharts는 PHP 인터페이스를 사용하여 데이터를 동적으로 로드하고 처리할 수 있는 풍부하고 유연한 차트 구성 요소를 제공하는 오픈 소스 데이터 시각화 라이브러리입니다. 본 글에서는 ECharts와 PHP 인터페이스를 기반으로 통계차트 데이터 분석 및 예측을 구현하는 방법을 소개하고, 제공합니다.

통합 엑셀 데이터 분석 통합 엑셀 데이터 분석 Mar 21, 2024 am 08:21 AM

1. 이번 강의에서는 엑셀 통합 데이터 분석에 대해 설명하겠습니다. 강의 자료를 열고 E2 셀을 클릭하여 수식을 입력해 보겠습니다. 2. 그런 다음 E53 셀을 선택하여 다음 데이터를 모두 계산합니다. 3. 그런 다음 F2 셀을 클릭하고 수식을 입력하여 계산합니다. 마찬가지로 아래로 드래그하면 원하는 값을 계산할 수 있습니다. 4. G2 셀을 선택하고 데이터 탭을 클릭한 다음 데이터 유효성 검사를 클릭하고 선택하고 확인합니다. 5. 같은 방법으로 계산이 필요한 아래 셀도 자동으로 채워보겠습니다. 6. 다음으로 실제 임금을 계산하고 H2 셀을 선택하여 수식을 입력합니다. 7. 그런 다음 값 드롭다운 메뉴를 클릭하여 다른 숫자를 클릭합니다.

추천하는 데이터 분석 사이트는 무엇인가요? 추천하는 데이터 분석 사이트는 무엇인가요? Mar 13, 2024 pm 05:44 PM

권장사항: 1. 비즈니스 데이터 분석 포럼, 2. 전국 인민대표대회 경제 포럼 - 계량경제학 및 통계 분야, 4. 데이터 마이닝 학습 및 교환 포럼, 6. 웹사이트 데이터 분석, 8. 데이터 마이닝 연구소 9. S-PLUS, R 통계 포럼.

See all articles