最終回 ビッグデータ処理による機械学習・データマイニング (その3)

更新日

投稿日

 

【ビッグデータ処理による機械学習・データマイニング 連載目次】

1. 機械学習とビッグデータの関係性

2. 機械学習法と数理モデリング

3. ビッグデータ処理に対応した機械学習ツール

 

 前回のその2に続いて解説します。
 

4. ビ ッグデータ処理に対応した機械学習ツール

 

4.1 機械学習用データ分析ツールの概要

 
 データ分析用のツールは、いろいろなものがあります。初心者にとって馴染み深いのは、Excelでしょうか、扱えるデータ量もデータ分析手法も限定されています。商用ソフトとしてはSAS、SPSS などの統計ソフトが考えられますが高価です。オープンソースのソフトウェアでは統計解析ツール:R言語やPython、機械学習用ツールであるWekaなどがよく使用されます。ビッグデータ処理における機械学習システムとしては並列分散処理を用いたHadoop/MapReduceや、その上で動作するMahout、あるいはさらに高速計算が可能なSpark-MLlib があります。
 

4.2 ビッグデータ処理用プラットフォーム

 
 Hadoop/MapReduceおよび機械学習ソフトMahoutデータ分析をする場合、処理するデータのサイズが大きくなって数億行のサイズのデータやテラバイトレベルのファイルを検索するという例も増えてきています。このレベルのサイズを超えるデータをハードディスクに保存する場合は、一個のハードディスクに乗り切らないので、ファイルをバラバラに区切り別々のハードディスクやコンピュータに保存することが行われます。これが「分散ファイルシステム」です。また、コンピュータクラスタ上の複数のコンピュータに並列的に仕事をさせ、これを集計することにより大規模計算を可能にします。これが「並列分散処理」です。このような大規模ビッグデータ処理を可能にした総合フリーソフトがHadoopで、分散ファイルシステムであるHDFSと並列分散処理MapReduceから構成されます(図1参照)このHadoop 上で動作する機械学習システムがMahoutです。これによりビッグデータのレコメンデーションやクラスタリングなどの機械学習が可能になります。
 
AI
図1. MapReduceおよびMahoutが動作するシステムの構成例
 

4.3 Spark/MLlib

 
 MapReduceは、ハードディスクレベルで分散処理を行います。それをメモリレベルで分散して計算処理を行うと計算の高速化を図れます。これを実装したものがSpark(Apache Spark)です(図2参照)
 
AI
図2. Sparkの構成例
 
 すなわち、Sparkはメモリレベルで並列演算処理を実現するインメモリー並列分散化処理を行うためのプラットフォームです。Sparkはメモリレベルでデータを処理するため、ハードディスクレベルでデータを処理するMapReduceより100倍速いといわれています。このSparkで実装された機械学習用ライブラリがMLlibです。MLlibでは、サポートベクトルマシン、ロジスティック回帰分析、線形回帰、k-meansクラスタリングなどができます。Sparkは、2015 年の注目技術として日経BP 社のITインフラテクノロジーAWARD 2015に「準グランプリ」に取り上げられており、現在、急速に普及しています。5)
 

5. ビッグデータ処理用の機械学習ツール

 
 ビッグデータ処理による機械学習、データマイニングについて、その応用事例に始まり、内容を解説して最新のツールについて述べました。今まさに現在進化中の技術であり最新情報をできる限り掲載することに努めました。問題点としては、Spark-M...

 

【ビッグデータ処理による機械学習・データマイニング 連載目次】

1. 機械学習とビッグデータの関係性

2. 機械学習法と数理モデリング

3. ビッグデータ処理に対応した機械学習ツール

 

 前回のその2に続いて解説します。
 

4. ビ ッグデータ処理に対応した機械学習ツール

 

4.1 機械学習用データ分析ツールの概要

 
 データ分析用のツールは、いろいろなものがあります。初心者にとって馴染み深いのは、Excelでしょうか、扱えるデータ量もデータ分析手法も限定されています。商用ソフトとしてはSAS、SPSS などの統計ソフトが考えられますが高価です。オープンソースのソフトウェアでは統計解析ツール:R言語やPython、機械学習用ツールであるWekaなどがよく使用されます。ビッグデータ処理における機械学習システムとしては並列分散処理を用いたHadoop/MapReduceや、その上で動作するMahout、あるいはさらに高速計算が可能なSpark-MLlib があります。
 

4.2 ビッグデータ処理用プラットフォーム

 
 Hadoop/MapReduceおよび機械学習ソフトMahoutデータ分析をする場合、処理するデータのサイズが大きくなって数億行のサイズのデータやテラバイトレベルのファイルを検索するという例も増えてきています。このレベルのサイズを超えるデータをハードディスクに保存する場合は、一個のハードディスクに乗り切らないので、ファイルをバラバラに区切り別々のハードディスクやコンピュータに保存することが行われます。これが「分散ファイルシステム」です。また、コンピュータクラスタ上の複数のコンピュータに並列的に仕事をさせ、これを集計することにより大規模計算を可能にします。これが「並列分散処理」です。このような大規模ビッグデータ処理を可能にした総合フリーソフトがHadoopで、分散ファイルシステムであるHDFSと並列分散処理MapReduceから構成されます(図1参照)このHadoop 上で動作する機械学習システムがMahoutです。これによりビッグデータのレコメンデーションやクラスタリングなどの機械学習が可能になります。
 
AI
図1. MapReduceおよびMahoutが動作するシステムの構成例
 

4.3 Spark/MLlib

 
 MapReduceは、ハードディスクレベルで分散処理を行います。それをメモリレベルで分散して計算処理を行うと計算の高速化を図れます。これを実装したものがSpark(Apache Spark)です(図2参照)
 
AI
図2. Sparkの構成例
 
 すなわち、Sparkはメモリレベルで並列演算処理を実現するインメモリー並列分散化処理を行うためのプラットフォームです。Sparkはメモリレベルでデータを処理するため、ハードディスクレベルでデータを処理するMapReduceより100倍速いといわれています。このSparkで実装された機械学習用ライブラリがMLlibです。MLlibでは、サポートベクトルマシン、ロジスティック回帰分析、線形回帰、k-meansクラスタリングなどができます。Sparkは、2015 年の注目技術として日経BP 社のITインフラテクノロジーAWARD 2015に「準グランプリ」に取り上げられており、現在、急速に普及しています。5)
 

5. ビッグデータ処理用の機械学習ツール

 
 ビッグデータ処理による機械学習、データマイニングについて、その応用事例に始まり、内容を解説して最新のツールについて述べました。今まさに現在進化中の技術であり最新情報をできる限り掲載することに努めました。問題点としては、Spark-MLlibやMahoutなどの最近のビッグデータ用機械学習システムは、比較的機能の簡便なレコメンデーションやクラスクラスタリングなどの教師なし学習に偏っているという点です。予測分析や数理モデリングで重要となる教師付き学習の実装例は、教師なし学習と比べると少ないのです。ビッグデータ処理用の機械学習ツールはまだ進化途中であり、今後の発展に期待したいと思います。
 
【参考文献】
5) IT インフラテクノロジーAWARD 2015[準グランプリ]Apache Spark http://itpro.nikkeibp.co.jp/atcl/column/15/010800005/010800003/?ST=itarchi
 
 

   続きを読むには・・・


この記事の著者

石井 一夫

ゲノム科学、ビッグデータとクラウドコンピューティングが専門です

ゲノム科学、ビッグデータとクラウドコンピューティングが専門です


「データマイニング/ビッグデータ」の他のキーワード解説記事

もっと見る
データサイエンスとは?データサイエンティストの役割は?必要なツールも紹介

  データサイエンスは、統計学、機械学習、コンピュータサイエンスを駆使して、大量のデータから価値ある洞察を抽出する科学技術です。現代のビジ...

  データサイエンスは、統計学、機械学習、コンピュータサイエンスを駆使して、大量のデータから価値ある洞察を抽出する科学技術です。現代のビジ...


ビッグデータとデータマイニング

 データマイニングは、大量のデータから有用な知識・情報を取り出す技術のことです。マイニングとは、鉱山から鉱物を掘り出す作業のことで、あたかもデータの山から...

 データマイニングは、大量のデータから有用な知識・情報を取り出す技術のことです。マイニングとは、鉱山から鉱物を掘り出す作業のことで、あたかもデータの山から...


ビッグデータ処理による機械学習・データマイニング (その1)

  【ビッグデータ処理による機械学習・データマイニング 連載目次】 1. 機械学習とビッグデータの関係性 2. 機械学習法と数理モデリング...

  【ビッグデータ処理による機械学習・データマイニング 連載目次】 1. 機械学習とビッグデータの関係性 2. 機械学習法と数理モデリング...