10月2日,株式会社ブレインパッドのセミナールームにて,「データサイエンティスト協会 木曜勉強会 #1」が開催されました。今回はPythonを使った初心者向けのデータ分析について発表がありました。本稿ではこのイベントの模様をレポートします。
木曜勉強会について
今回の勉強会は,データサイエンティスト協会初の勉強会です。告知から30分で満席となり,非常に注目度の高いものでした。まず始めに,データサイエンティスト協会の企画委員長の上野勉氏(株式会社ジーリサーチ 代表取締役)がこの木曜勉強会の趣旨を説明しました。
「『分析・データサイエンスの実務に携わる方を対象にスキルアップとコミュニケーションの場を提供します』という趣旨のもと,今後勉強会を開催します。10月に2回目,以降11月,12月にも勉強会を計画しており, データクレンジングからデータビジュアライゼーション,データ活用事例までと幅広いテーマを扱うことを予定しています」(上野氏)
勉強会への申し込みは,イベント情報検索サービス「dots.」から行われるそうです。
また,今秋にも協会主催でシンポジウムが開催されることも案内しました。
「Pythonによるデータ分析および最適化」
次に,株式会社構造計画研究所の斉藤努氏が,Pythonでデータ分析を行ったことがない初心者向けに発表しました。
データ分析言語といえば「R言語」が有名ですが,近年,Pythonによるデータ分析が注目されています。Pythonにはデータ分析,機械学習などのパッケージが豊富に用意されており,また,R言語に比べコードも読み書きしやすく,R言語で度々問題とされるメモリ管理もPythonのほうが効率が良いとされています。
斉藤氏は,公開資料の中から「データ分析」「機械学習」「数理最適化」について,コマンドやサンプルを交えて説明しました。
公開資料「Pythonによるデータ分析および最適化」
データ分析(pandas)
pandasはPython上で稼働するデータ分析のパッケージです。
現在,Pythonのデータ分析基盤としては,pandasがもっとも有名です。pandasは,Pythonにて科学計算を行うためのパッケージ「NumPy」をベースに開発されており,実行速度はC言語に近いと言われています。
pandasはリッチなデータ構造と関数を提供します。このデータ構造は,データを素早く簡単に取り扱うために設計されており,Pythonをデータ分析環境としている重要な要因になっています。
pandasのデータ構造
pandasには,シリーズ(Series)とデータフレーム(DataFrame)の2つのデータ構造があります。
シリーズ(Series)
シリーズは1次元配列のようなオブジェクトです。シリーズにはデータ配列とそれを関連付けるインデックスのデータラベルの配列が含まれます。
データフレーム(DataFrame)
データフレームは表形式のデータ構造をもちます。各列には別々の型を持つことができ,行と列それぞれにインデックスを持ちます。
シリーズ,データフレームともにデータを扱うための多数のメソッドが用意されています。 メソッドの一覧については,公開資料を参照してください。
ファイル操作
pandasには,ファイルの入出力,データ操作を行う機能が提供されています。ExcelやCSVのファイルを読み込むことが可能ですが,読み込みが遅いので一度ロードしたら,Pickle化すべきです。
欠損値の処理
データ分析において,データが欠損している項目について,何かしらの数値を入力しておく必要があります。pandasには,データ欠損している項目の抽出,入力が可能です。
機械学習(scikit-learn)
Pythonでは,機械学習用ライブラリscikit-learnを用いて機械学習を行います。scikit-learnでは,分類やクラスタリング,SVM,ランダムフォレスト,ナイーブベイズなど機械学習でよく使われる手法や,線形回帰,主成分分析,因子分析など統計処理も実行可能です。
今回は,サポート・ベクター・マシン(SVM)を使用した回帰分析を例で紹介しました。
最適化(pulp)
数理最適化とは,特定の集合に対する最大もしくは最小となる状態を解析することです。 数理最適化では問題を数理モデルで表し,その問題を解くソフトウェアを「ソルバ」と呼びます。
特定のモデルを解くためのソルバを「専用ソルバ」,汎用的なモデルに適用可能なソルバを「汎用ソルバ」と呼びます。今回の勉強会では,ソルバに汎用ソルバの「CBC」,モデラーに「pulp」を使いました。
今後,数理最適化やる人は,汎用ソルバを覚えるべきで,ソルバは「Gurobi」が良いそうです。最適化は数理モデルが必要となりますが,Pythonは最適化のライブラリが豊富にあるそうです。
質疑応答
発表の後に,質疑応答が行われました。
Q. R言語に比べてメモリの使用量はどうか?
: A. Rに比べてメモリの使用量は少なくみえる。メモリが4Gのマシンで,5Gのファイルが読めた。NumPyが強力だと思う。 Q. Pythonは,2系,3系のどちらを覚えるべきか。 : A. オススメは3系。ただし,3系では動かないライブラリもある。最近では急速に3系でも動くようになっている。
まとめ
データサイエンティスト協会として初めてのイベントであったため,注目度,期待値ともに高いイベントとなりました。今回は初心者向けでしたので,比較的軽い内容となっていました。
勉強会の内容も,初心者向けから上級者向けとレベル分けされているので,自分のレベルにあった勉強会に参加してみてはいかがでしょうか。
次回の勉強会について
10月16日に,「データサイエンティスト協会 木曜勉強会#02」が開催される予定です。
- 講演1「クレンジングからビジュアライズまで!実践!データ解析超入門!」
- 講演2「ビッグデータの0次分析手法と適用例のご紹介 ~俯瞰から始まる企業内ビッグデータの活用~」