分析ツール比較 ~ Matlab R Python SPSS実機検証

机上調査と実機検証により多角的に比較
ツール選択の参考になる「特徴・推奨ユーザー・提言」

JGS研究2016プロジェクト論文

 

 

企業が蓄積・収集する膨大なデータを、いかに分析し企業活動に役立てるかが大きなテーマになっている。その際、データ分析のためのツールは必須となるが、市場にはすでに多数のツールがあり、どれを選択すべきかは悩ましい問題である。

そこで、「Matlab」「R」「Python」「IBM SPSS Modeler(以下、SPSS)」という4つの著名なデータ分析ツールを取り上げ、さまざまな切り口で比較・検証して、それぞれの特徴や推奨ユーザーを明確にするとともに、その改善点を提言としてまとめたのが、今回紹介する論文である。

研究プロジェクトのメンバーは4名。このなかで研究対象の分析ツールについて知見をもっていたのはサブリーダーの五十嵐夢生氏(みずほ情報総研)だけで、ほかの3名は「初めての経験」というチーム構成であった。リーダーを務めた小林勝巳氏(DTS)は、「最初に1人が1つのツールの専任となる担当決めを行い、分析ツールとは何かという基本の勉強から始めました」と、振り返る。

 

机上調査は4項目
実機検証は5項目で比較

分析ツールの比較は、「机上調査」と「実機検証」の2つの側面から行うこととした。「分析ツールを利用するのは業務ユーザーからシステム管理者まで幅広いユーザーであることを念頭に置いて、多様な目的をもつユーザーが最適な分析ツールを選択できるよう、できるだけ多角的に調査・検証し分析することを心がけました」(小林氏)

机上調査のテーマとしたのは、費用、期間、シェア、導入要件の4項目。実機検証では、処理時間、精度、データクレンジング、処理を記述するコスト、結果出力の5項目を調査対象とした(図表2、図表3)。

「ユーザーは何を基準に分析ツールを選択するか。それについて議論を重ねた結果、実機検証ではデータ分析にかかる実際の作業内容に着目し、データマイニングの標準的な手法であるCRISP-DMを参考に5つの項目を決めました」と、五十嵐氏は話す。

 

ニューラルネットワークなど
3種類のアルゴリズムで検証

その5項目を対比的に見るために、実機検証では機械学習に関する3つの種類のアルゴリズムを採用した。1つは、近年急速に普及が進むニューラルネットワークのアルゴリズムで、画像認識アルゴリズムの性能を測るためのベンチマーク「MNIST」(米国立標準技術研究所が開発)である。MNISTは図表1のような28×28ピクセルの画像集からなり、0から9までの手書き数字の認識率を見るデータセットである。

【図表1】MNISTのサンプル

2つ目は、「教師あり学習」(与えられたデータを、適切なクラスに振り分ける機械学習の手法)の一種で、分析ツールの分類性能アルゴリズムを計測するための「サポートベクターマシン」である。テストデータとしては著名な「IRISデータセット」を利用した。これは、「花びらの長さ」「花びらの幅」「がく片の長さ」「がく片の幅」がそれぞれ異なるアヤメ(花)の3つの品種のデータ集で、分析ツールで解析した結果の品種分布によって、分析ツールの精度を見ることができる。

3つ目は、「教師なし学習」(与えられたデータを、複数の意味あるグループに分ける機械学習の手法)の代表的アルゴリズムk-means法である。テストデータとしては、総務省統計局の「都市階級・地方・都道府県庁所在市別1世帯あたり1カ月間の収入と支出」を使用し、有意のグループ分けがなされるかを検証した。

研究メンバーの大友祐希氏(アイ・ティー・ワン)は、「実機検証をするのなら、教師あり・なし学習といった定番のアルゴリズムだけでなく、ニューラルネットワークのような新しいテーマにもトライしたいと考え、MNISTを採用しました。実際の検証では、テストデータの取り込み方や結果の表示方法が分析ツールごとに異なっていたので苦労しましたが、かえってツールそれぞれの長所・短所が見えたような気がします」と語る。

 

費用・期間・シェア・導入要件は
ツールによって大きく異なる

机上調査の結果は、図表2と図表3である(論文中の調査項目ごとの図表を、本稿では合体した)。「費用」では、有償ツールのMatlabとSPSSがほぼ同額であるものの、SPSSのライセンス期間が1年なので毎年の購入が必要なこと(その代わり、ベンダーのサポートが常時受けられる)、「期間」では、MatlabとPythonは本体のインストール後Toolboxやライブラリを適用しないと「専門的な統計解析や機械学習を用いたデータ分析処理が行えない」ことなどが明らかになった。「シェア」は、求人サイトにおける各分析ツール関連の求人数の比較で、オープンソースのPythonが圧倒的に多く、Rが2位となった。

 

【図表2】机上調査結果の比較(費用・期間・シェア=求人数)

【図表3】机上調査の結果 導入要件(対応OS)

顕著な差が現れた
実機検証の結果

実機検証は、「各分析ツール間での差が顕著に現れた」(論文)結果となった(図表4)。「処理時間」では、とくにニューラルネットワークの場合、学習モデルの形成にベクトル・行列計算が多用されるため、それに最適化されているMatlabが最もよく(36秒)、その反対に、デフォルトで学習モデル以外の計算処理も多数行うSPSSが極端に遅い結果(55分)となった。「ツールによってチューニングが必要なことがよく理解できました」と、五十嵐氏は言う。

 

【図表4】実機検証結果の比較 (時間、精度、データクレンジング、処理ステップ数)

「精度」では、各ツールへの例題データの反復学習の回数(EPOC数)によって結果に違いが生じた。Matlabは94%、Pythonは89%と良好だったが、RとSPSSはともに80%という精度である。

「データクレンジング」は、データ分析作業のなかで最も工数と時間を要する工程だが、ここでも大きな違いが見られた。「データの整形後、MatlabおよびSPSSでは、性別や職業等、カテゴリを示すデータを数値に変換しなくとも分析の処理を実施することができるが、RやPythonでは一度数値に変換する作業が必要となる。また、SPSSにおいてはデータ結合やレコード集計等のさまざまなデータ加工の機能も多く提供されており、GUIで容易にデータクレンジングを実施することができる」と、論文は述べている。

「処理記述にかかるコスト」は、分析処理のためのスクリプトのステップ数を指している。SPSSはスクリプトを記述せずGUIで行うため、実行の処理単位であるノード数を参考として示した。結果は、SPSSが4、Matlabが7、Rが23、Pythonが89である。

「結果出力」については、サポートベクターマシンによるIRISデータセットの散布図で比較した。結果は、いずれの分析ツールともほぼ同様のプロット図になったが、同じような表現にするには、「RとPythonは専用のライブラリおよびパッケージを別途導入する必要があり、作図のコマンドについてもテクニックが必要となった」と、論文は記している。

 

各分析ツールの特徴・
推奨ユーザー・提言

机上調査と実機検証の計9項目の結果をレーダーチャートで示したのが図表5である。これに基づき、論文では各分析ツールの特徴のまとめと推奨ユーザーの指摘、「各分析ツールの利便性を向上させるため」の提言を行っている。

 

【図表5】4種類のデータ分析ツールの調査・検証結果

 

Matlabは、処理時間と精度で最高点となり、費用以外の項目でも高評価を得た。その一方、高価であるので、「専門的なシミュレーションや複雑なモデル作成を目的とした企業の研究職向けの分析ツール」と評している。改善点としては、「機械学習向け関数がデフォルトで実装されていない点」を挙げている。「機械学習によるデータ分析が時好となっている昨今、Toolboxを別途購入しなければならない点は費用面で弱みとなる。デフォルトで利用できるようにすることでユーザーの費用的な負担が軽減され、間口が広がり利用者の拡大につながると考える」と記す。

Rは、費用と期間で最高点を獲得したものの、データクレンジングでは最低点となった。「詳細なパラメータ設定も可能だが、ニューラルネットワークによる画像認識処理などにおいて、他の分析ツールよりもメモリを多く必要とする。また、GUIがなく、コードを記述する必要があるため、学習コストが高いことを考慮する必要がある」(論文)

推奨ユーザーは、「実装時に一定の統計知識が要求されるため、統計知識に造詣が深い、またはこれから学んでいこうとするユーザー」。改善点としては、「メモリリソースの有効活用」と「GUI機能の提供」を挙げている。

Pythonは、費用、期間、シェア、導入要件の4項目で最高点を獲得した。その半面、データクレンジングと処理記述にかかるコストの2項目は最低点である。「学習コストが高く、使用する分析手法次第ではライブラリのインストール等環境構築が煩雑」なのが難点だが、プログラミング言語なので、統計や機械学習をシステムに組み込むのに適しており、「統計や機械学習を組み込んだシステムの開発を目的としたエンジニア向け」が研究チームの評価である。また、「求人数が多いため、これから統計を始めようと考えているエンジニアに推奨したい」とも述べる。今後については「エンジニア以外の幅広い層でも処理記述が容易になるような機能が提供されることを期待する」と言う。

SPSSは、データクレンジング、処理記述にかかるコスト、結果出力の3項目で最高点を獲得したが、費用、シェア、導入要件、処理時間で最低の評価となった。「GUIで操作することもあり、自ら分析を行うことを目的とした、統計やプログラミングが不得手なエンドユーザー向け」と論文は指摘する。改善点としては、「運用費用を下げ、多くの人が利用できるようにすること、Rの連携機能を利用せずにディープラーニング等の最先端の技術に対応されることを期待する」と述べる。

分析ツール選択・活用の
指標となる論文

研究チームでRを専任として担当し、RとPythonを詳しく比較した大山菜津美氏(アイ・ティー・ワン)は、「Pythonは、高度な分析がいろいろできる半面、システマティックなコードを多用するため、文系出身でコーディングの経験をもたない私にとっては難解なツールに映りました。それに対してRは、関連書籍も多く、ネット上にも情報が多数あるので、不明点があるとすぐに参照できる点も非常に便利で、扱いやすく感じられました」と、感想を語る。

また、アドバイザーを務めた日本IBMシステムズ・エンジニアリングの植田佳明氏は、「分析ツールの経験をもたないメンバーが大半だったので、研究プロジェクトを進めるなかでは苦労もたくさんありました。しかしチームの結束が非常によく、議論を活発に進めることができ、妥当な結論に着地したと感じています。当初は手探りの“データ分析入門者”が、プロジェクトの終了段階ではエキスパートのように議論しているのが大きな成果です」と話す。

データ分析ツールに関する情報は、書籍や論文、ネット上で多数流通している。ただし、複数の分析ツールを同一の視点や手法で比較検証した情報は非常に少ない。本論文は、分析ツールを選択・活用する際の基調な指標になるように思われる。

・・・・・・・・

◎チームメンバー

メンバー(50音順) L=、S=サブリーダー 敬称略

リーダー

小林 勝巳 氏

株式会社DTS
法人通信事業本部
法人通信企画部
事業推進企画担当
ITストラテジスト

・・・・・・・・

サブリーダー

五十嵐 夢生 氏

OLYMPUS DIGITAL CAMERA

みずほ情報総研株式会社
グループIT第2部
システムエンジニア
・・・・・・・・

大友 祐希 氏

OLYMPUS DIGITAL CAMERA

株式会社アイ・ティー・ワン
経営企画室
リーダー
・・・・・・・・

大山 菜津美 氏

株式会社アイ・ティー・ワン
SEサービス事業本部
第1システム事業部
第1システム部

・・・・・・・・

◎アドバイザー

植田 佳明 氏

日本アイ・ビー・エム システムズ・エンジニアリング株式会社
アナリティクス・ソリューション
アドバイザリーITスペシャリスト
DevOpsエンジニア

・・・・・・・・