ビープラウド社長のブログ

株式会社ビープラウドの社長が、日々の思いなどを綴っていきます。

今データサイエンスが必要とされる理由とPythonの役割〜BPStudy#121 その2

2017年9月26日にBPStudy#121が開催されました。

第2部は、辻慎吾さんにお話いただきました(※第1部はこちら)。

資料はこちら(PDFファイル)です。

f:id:haru860:20170926201302j:plain

以下は私のまとめです。

データサイエンスについて

データサイエンスとは

WikiPadiaによると、"data-driven science"(データ駆動型サイエンス)である。

サイエンスとは
  • (1)仮説を立てる
  • (2)仮説を証明するために実験や観測によってデータを収集
  • (3)データを解析して仮説を検証

(1)〜(3)を繰り返し、普遍的な原理を導き出す

  • 例1:フックの法則(F=-kx)
  • 例2:DNA配列
データサイエンスでは、とにかくビッグデータを集めることが重要
  • ヒッグス粒子の発見(Pythonを使用)
  • Webのユーザーの行動履歴
  • IoT(地理情報を含む行動履歴、エネルギー消費量など)
データサイエンスの必要性

データから普遍的な何かを導き出すこと

Pythonとデータサイエンス

  • データサイエンスの実際(プロセス)は、さまざまなこと実施する

    • データの収集と前処理
    • 統計解析
    • 後処理と次の計画 
  • さまざまなことを実施する必要があるので、各プロセス共通で汎用言語Pythonでデータサイエンスを実践できる価値は大きい

Pythonの急成長
データサイエンスで使うツール、言語の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なのか?」を説明する場面がありますが、上記の理由を使わせてもらえればと思います。

辻さん、ありがとうございました!