統計モデル構築のためにPython+Anaconda+Eclipseを選択
これまで何度かご紹介してきたとおり、ギックスではR言語を利用して統計モデルを作成するケースが多いです。Rはオープンソースなのでフリーで活用できますし、カバーしている統計モデルも豊富で非常に利便性が高いです。ただ、データがあまりにも大きい場合に時間がかかりすぎる、もしくはメモリーが足りなくなってプログラムが停止してしまうということを幾度か経験しました。
そこで非常に大きいデータに対しても統計モデルするために、MahoutなどHadoopを利用しての統計モデル作りも試しています。一方で、Pythonの統計モジュールを利用して統計モデルを作成してもなかなかに早いという情報を耳にしましたので、Pythonでの統計モデル構築にトライしました。今回の連載ではPythonの概要や今回選んだモジュール群、Pythonで統計モデルを作成し、Rを利用したものと比較した結果を報告したいと思います。
第一回目の本日は、統計モデル構築のために選択したPythonモジュール群の概要説明です。
Pythonとは
まずPythonについてですが、Pythonはプログラミング言語のひとつで、Javaなどと同様、多くのシステムにおいて、プログラムを記述する言語として用いられます。プログラム言語の中では、実行時にコンパイルを必要としない「スクリプト言語」に分類されます。(スクリプト言語には、Pythonの他にRubyやPHPなどが挙げられます。)
近年、統計分析処理や画像処理など、さまざまな分野の最新技術が、その機能を汎用的に提供するためにPythonに実装されています。その機能搭載速度はJavaを上回るほどです。
ちなみにですが、これらの状況もあって「Javaはもう古い」という意見を最近よく耳にします。しかしこれは、Javaの陳腐化ではなく、Javaの社会的な役割がより重要になった事によって、Javaへの新機能搭載に対する姿勢が慎重にならざるをえなくなった、それ故の鈍重さであると私は考えています。
実際、Pythonは新しい機能や技術を積極的に取り込んでいます。その反面、バージョン間の互換性やモジュールの相性による不具合など、ある意味移り気な性格を持っています。言い換えれば近い未来、もしPythonがJavaにとってかわるような日が来たら、その時Pythonに求められるであろう社会的責任がPython自身を縛る可能性もあるのではないかとも思います。
今回はAnaconda+EclipseでPython環境を構築
さて、本題に戻りますと、今回のPython導入には統計モデルを構築したいという目的があったため、Anacondaというモジュールを選択し、開発環境としてEclipseを準備しました。
Anacondaとは
Anacondaは、大規模データ処理・予測分析・科学技術計算のためのPython用の無料モジュール群です。Python開発において一般的に用いられる数値計算モジュールであるNumPyはもちろん、科学技術計算モジュールであるSciPy、統計モデルライブラリstatsmodelsや機械学習ライブラリscikit-learn等さまざまなモジュールがAnacondaには同梱されています。
Anacondaは、ただインストールするだけで上記モジュール群を一括でセットアップできるのでpipのようなパッケージ管理システムに不慣れな方でも簡単に利用できます。
Eclipse(Pleiades)との連携
次にPythonでプログラムを記述するためにIDE(総合開発環境)を準備します。今回は最もメジャーなIDEであるEclipseを選択しました。
プログラムを作成するにあたっての最も基本的な手法は、テキストエディタ等でプログラムソースを記述し、実行コマンドを入力してプログラムを実行させることですが、この方法は必要モジュールの追加や文法エラーの発見などを全て手作業で行わなければならない為、効率がよいとはいえません。
IDEはこれらの煩雑な作業に関する自動化・補完・支援を行います。Eclipseの導入によって、プログラム開発の生産性は劇的に向上します。EclipseはJava開発用IDEとして誕生しましたが、今ではPython、Rubyなどの開発環境がプラグインとして追加され、多くの言語での開発プラットフォームとして利用されています。
今回は開発環境として、このEclipseにさらに便利な機能を追加したモジュール群であるPleiades All in Oneを使用しました。Pleiades All in One はWindows環境におけるEclipseの開発生産性向上を目的としたモジュール群です。
主な構成として以下のもジュルが同梱されています。
- Eclipse本体:開発対象プログラミング言語別(java・Python・Rubyなど)でパッケージングされています。
- Pleiades:Eclipseの日本語化プラグイン
- その他プラグイン群
今回は、統計モデル作成用のPythonの開発環境として、必要なモジュールであるAnaconda、Eclipse、Pleiadesの説明をしました。次回は実際のインストールの具体的な手順を紹介します。
第1回 Python+Anaconda+Eclipseを導入 (今回)
第2回 Python+Anaconda+Eclipseをインストール
第3回 PythonとRでロジスティック回帰の実装
第4回 PythonとRでロジスティック回帰の実行速度比較