
3時間のデータサイエンス入門を開催してみました!
色々と学びと反省がありましたので、内容とともに紹介します。
こんにちは、Kanot(狩野)です。先日、ICT4D Lab内で、メンバー主催の「3時間データサイエンス入門」をお試し開催してみました。参加者はLabメンバー約30名。内容はこんな感じです。
- Python体験セミナー 1時間
- 国際開発と機械学習に関するセミナー 40分
- 機械学習体験ワークショップ(タイタニックの生存者を予測してみよう)40分
- デモと振り返り 40分
講師はLabメンバーでデータサイエンスに関連する仕事をしている方数名でした。(講師のみなさん、大変勉強になりました。ありがとうございました!!)
このイベントの中で、今後私がやりたいと思っていることの一つである「国際開発の実務者とデータサイエンティストの垣根を下げていくこと」を考えるにあたって見えてきた学びが多くあったので、記録しておきたいと思います。
そもそものきっかけ
ICT4D Labのメンバーは、その特性からざっくり分けるとIT系・国際開発系・その他に分類されます。今回の企画は「たまにはIT系に寄ったイベントしてみよう」と、タイタニック生存者予測モデルをもくもくと作る会(もくもく会)企画が立ち上がりました。当初は対象はプログラミング経験者だったのですが、「せっかくならプログラミング初心者も巻き込んでみようか」とプログラミング体験から始めるみることにしました。
参加者(Labメンバー)30名くらいのうち、おそらく半数くらいはプログラミング自体が初めてだったのではと思います。
Python体験セミナー
まず最初のコーナーだったPython基礎セミナーでは、Pythonをブラウザ上で実行する環境の紹介と、コードの基礎をペア・プログラミング形式で学びました。参加者の半分くらいはPythonに初めて触るという方だったこともあり、初心者の方でも参加しやすく、コードを動かすというのはどういうことかのイメージを楽しく掴むことが出来たのではと思います。
内容はPythonのまさに基礎である四則演算や「Hello World」を表示させたりといったものでした。ペア・プログラミングという形式も面白く、人と話しながらコードを書いてみるというのも効果的と感じました。
国際開発と機械学習に関するセミナー
続いて行われた国際開発と機械学習についてのセミナーでは、国際開発の世界でデータがどのように扱われているかといった話や、機械学習の基礎について勉強しました。これもみなさんデータサイエンスや機械学習を触ったことない方でも「ふむふむ」と興味深く学べていたと思います。
機械学習体験ワークショップ
最後の実習コーナーでは、データ分析入門でよく使われる、Kaggleのタイタニックの乗客データをもとに、生存者を予測するモデルを作ってみようという内容で、各人が40分程度データを分析し、最後に現役のデータサイエンティスト(Labメンバー)による実演と質疑応答を行いました。
Python入門と機械学習入門の大きな差
ここまで時系列にイベント内容を書いてきましたが、実は、参加者数はPythonとセミナーまではだいたい30人フル参加だったのですが、機械学習体験ワークショップになると、任意参加だったこともあり、10人程度に減ってしまいました。
つまり、Python体験、国際開発と機械学習セミナーといった理論っぽい話までは多くの方が参加していたものが、実習になると、夜遅かったこともありますが、興味を持つ方が減ってしまう(もしくは技術的に諦めた方が多かった)という結果になりました。
今回題材にしたタイタニック号のデータの分析は、機械学習ではよく入門用として使われており、複数のWebページでも入門編として解説がなされています(例1、例2)。いまでは高校の情報の授業でもカバーしている学校もあるそうです。
つまり、まさに機械学習入門にうってつけの題材なのですが、それでも以下のような内容を多少なりとも理解していないと(もしくは自力で調べられないと)、データを読み込んで動かしてみることすらままないんだなぁと感じ、ちょっと初心者にはハードル高いという印象を持ちました。
分析に必要となる知識・スキル
・Pythonでデータを処理すること
・Pandasなどのデータ処理モジュール
・グラフなどのビジュアル化モジュール
・Jupyterなどのオンライン環境かPythonを動かすローカル環境
・教師データ、学習などの機械学習理論への理解
・統計
今回のイベントでは、Python入門と機械学習入門をしたわけですが、私も実際手を動かしてみて、Python「入門」と機械学習「入門」では難易度が全く違うな、と感じました。例えていうなら、物理入門と相対性理論入門の違いみたいなものでしょうか(笑)。
国際開発を仕事にする人が、データサイエンティストと仕事をしていくために必要な知識・スキルってなんなんだろう
では、本題の「国際開発とデータサイエンスの壁」というお題に戻りますが、国際開発の実務者が、データサイエンティストと仕事をするために、どこまで知る必要があるのでしょうか?PandasやJupyterを知らないと話にならないのでしょうか?
きっとそうではないはずです。何かしらの感覚・勘などが共有できれば、ある程度の仕事は一緒にできるはずです。一方、例えば、教師データなどへの理解がないままでは、機械学習の仕事をしてもらうための仕様書は書けないと思います。
どんなトレーニングや勉強をすれば、このギャップを埋めて、国際開発屋とデータサイエンティストが有機的に一緒にタッグを組んで働いていけるのか。そこのギャップを埋めることに、自分(たち)がどのように貢献できるのか、と妄想を膨らましているところです。
本当に色々と考えさせられる、とてもいい機会になりました。改めまして、イベント企画してくれたLabメンバーに感謝します!
コメント
面白い取組の紹介ありがとうございます、鍵は機械学習でいう学習が、何を学習しているか、何となくでいいのでイメージできることではないでしょうか。要は、統計でもっともらしい事象を組合せて判定や予測や最善を導くわけですが、その学習モデルのイメージがないと、集めるデータも出てきた結果も、ちんぷんかんぷんになってしまうのでは
yukkeさん、コメントありがとうございます。そうなんです。やはり勉強は必要ですよね。そして、我々元エンジニアは学習のイメージも「あー、あんな感じでデータ食わせて、こんな感じで計算して・・」みたいなイメージがわくと思うのですが、そうでない人にどうやってイメージが沸くところまで持っていけるかということに興味があります。