2017年9月26日にBPStudy#121が開催されました。
第2部は、辻慎吾さんにお話いただきました(※第1部はこちら)。
資料はこちら(PDFファイル)です。
以下は私のまとめです。
データサイエンスについて
データサイエンスとは
WikiPadiaによると、"data-driven science"(データ駆動型サイエンス)である。
サイエンスとは
- (1)仮説を立てる
- (2)仮説を証明するために実験や観測によってデータを収集
- (3)データを解析して仮説を検証
(1)〜(3)を繰り返し、普遍的な原理を導き出す
- 例1:フックの法則(F=-kx)
- 例2:DNA配列
データサイエンスでは、とにかくビッグデータを集めることが重要
- ヒッグス粒子の発見(Pythonを使用)
- Webのユーザーの行動履歴
- IoT(地理情報を含む行動履歴、エネルギー消費量など)
データサイエンスの必要性
データから普遍的な何かを導き出すこと
Pythonとデータサイエンス
データサイエンスの実際(プロセス)は、さまざまなこと実施する
- データの収集と前処理
- 統計解析
- 後処理と次の計画
さまざまなことを実施する必要があるので、各プロセス共通で汎用言語Pythonでデータサイエンスを実践できる価値は大きい
Pythonの急成長
- IEEE Spectrum Rankingの2017年プログラミングランクで1位
- StackOverflowで、質問数1位
データサイエンスで使うツール、言語のPython以外の選択肢
- SAS
- Mathematica
- Matlab
- R
※Pythonが唯一、オープンかつ汎用
Pythonはglue(のり)言語
scikit-learn、matplotlib、NumPy、seaborn、jupyternotebook、SciPy.org、pandasなど、Pythonを中心にして、オープンなエコシステムがある。
良いものをどんどん取り入れ進化が加速している。
Anacondaがおすすめ
Continuum Analytics社が配布するPythonパッケージ
RとPythonの比較
- Google Trends でも、「Python data science」と「R data science」では、Pythonの方が上。(Rもdata scienceで中心的な存在)
- それぞれの特技はある。Rは統計に強い。マニアックな統計関数が用意されている(Hosmer-Lemeshow検定など)
サイエンスと再現性
2006年、Nature Medicine誌に掲載された論文
- 辻さんは、教授に論文の再現を命じられた
複雑な計算方法の詳細がかかれていない、業界の常識的な方法論で試す→再現しない
- そのうち、世界中の研究者が疑い始めた
- 完全なデタラメだった
サイエンスには再現性が重要
解析を完全に再現するには、オープンな基盤が必要→Pythonはオープンな基盤→再現しやすい
- 「オープンサイエンス」という動きもある
データサイエンスで、なにがどこまでできるのか?
データだけで、普遍的な原理や知識を導き出せないことも多い。
自然言語処理
- 恋愛の相談→意味を漠然と捉えることはできた。が、しかし、漠然と捉えられただけであり有用かは分からない
多様体仮説(学習)
- 計算してデータを加工するのは計算機、推測するのは人間
まとめ(私の感想)
辻さんには、データサイエンティストの立場から「なぜデータサイエンスでPythonなのか?」を説明いただき、その理由を知ることができました。
- データサイエンスでは、データの収集と前処理、統計解析、後処理など、さまざまな作業を実施する必要がある。これらを共通の言語でできる価値は高い
- サイエンスでは再現性が重要。Pythonはオープンなので再現環境をつくりやすい
- データサイエンスのジャンルで、Pythonを中心として、オープンなエコシステムができている。良いものを次々と取り入れ進化が加速している
私も「なぜ、Pythonなのか?」を説明する場面がありますが、上記の理由を使わせてもらえればと思います。
辻さん、ありがとうございました!