検索
連載

「データサイエンス100本ノック」の生みの親はなぜ「3言語のサポート」と「Docker」にこだわったのか目指したのは初学者向けの「Kaggle」(2/2 ページ)

データサイエンスに興味がある技術者の間で話題になった「データサイエンス100本ノック(構造化データ加工編)」。生みの親である森谷和弘氏によると、この取り組みが生まれた背景には「データ分析の最も大きいニーズに応える環境がない」という課題があったという。

Share
Tweet
LINE
Hatena
前のページへ |       

こだわった「SQL」「Python」「R」のサポート

 実際のコンテンツの中身は「100本ノック」という名の通り、データ集計・加工に関する100の設問と、それぞれの解答例によって構成される。これら設問と解答例の作成は基本的に森谷氏が1人で実施し、サンプルデータの作成や解答例のレビューは他のスキル定義委員のメンバーが行った。

 設問と解答例は、データ分析、可視化のためのプログラミング言語として広く使われているPythonに加え、アカデミック分野を中心に多くのユーザーを獲得しているR言語、さらにはリレーショナルデータベースの操作言語として古い歴史を持つSQLの3言語を網羅している。森谷氏がデータサイエンス100本ノックのコンテンツを作成するに当たり最もこだわったことの一つが、この「3言語のカバー」だったという。

 「『データサイエンスの経験はないけど、ソフトウェア開発の経験ならある』という技術者の方は、大抵の場合SQLのスキルは持っています。そういう方々に、データサイエンスをより身近に感じてもらうために、SQLをカバーしました。それと同時に、同じ設問に対してSQLとPython、Rの解答例を提示することで、SQLしか知らない技術者がPythonやRのスキルを身に付けやすくする狙いもありました」

 自身で導き出したSQLの解答と、PythonやRで書かれた模範解答とを見比べることによって、SQLしか知らないエンジニアが自然とPythonやRにも親しめるよう工夫を凝らしたという。これによって、SQLエンジニアが将来さらに一歩踏み込んで、PythonやRのライブラリを駆使した高度な分析や可視化に進みやすくなることを狙っている。逆に、例えば大学でR言語を使った多変量解析を学んだ若手技術者が、SQLを自然と習得できる効果も期待できる。

データ分析・可視化に欠かせないDocker環境構築のスキルも併せて習得

 もう1つ森谷氏がこだわったのが、演習の実行環境として「Docker」を採用した点だ。

 「本格的なデータ分析を行うためにはPythonやRのライブラリを使いこなす必要がありますが、複数のライブラリが同じ環境の中に同居していると、特定のバージョン同士が不整合を起こしてうまく動作しないことがあります。そのため、ライブラリ同士を異なる仮想環境に分けて動作させる必要があります。この仮想環境を構築する技術としては、現時点ではDockerが最も適していると考えています」

画像
演習用データはCSV形式のファイルで提供されている

 こうした理由から、これからデータサイエンティストを目指す初学者には、データ集計・加工のプログラミング技術だけでなく、Docker環境の構築、運用のスキルも身に付けてもらいたいと考えたという。ただし中には、環境依存の問題によってDocker環境をなかなかうまく構築できないケースもある。そういう場合でも、データサイエンス100本ノックを利用する方法はあると森谷氏は言う。

 「Docker環境を簡単に構築できるスクリプトを提供していますし、環境構築時のトラブルシュートに関する情報をネット上に公開してくださっている方もいます。事情によりどうしてもDocker環境を入れられない場合は、データだけ利用する方法があります。演習用データはCSV形式のファイルでも提供していますから、自身でPythonの環境を構築さえできれば演習を実施できます」

草の根的に活用が広がっていくようなムーブメントを期待

 なお、本稿執筆時点(2020年8月末)ではGitHubに公開して2カ月ほどだが、既に多くの「Fork」(リポジトリのコピー)や「Star」(SNSでいう「いいね!」)が付いている。実際にデータサイエンス100本ノックを使ってみた多くのユーザーが、「クラウドで実行してみた」「Mac環境で実行してみた」「勉強会の教材として使ってみた」などさまざまな情報をネット上に公開しており、データサイエンスかいわいにおいて高い注目を集めているといえる。

 さらには演習内容の細かな誤りや、「こういう解答例の方がいいのではないか」といった提案が、GitHubの「Issue」(課題などをコメントする機能)として数多く寄せられているという。

画像
ユーザーから寄せられたIssueの一部。ほとんどに森谷氏の回答が付いている

 「正直、これだけ大きな反響があるとは思っていませんでした。公開後しばらくの間は、Issueとして寄せられたミスの指摘や提案などをコンテンツに反映させてきましたが、今後はGitHubのwikiを使って、設問や解答例には含められなかったさまざまなTips情報をコラムのような形で公開していければと考えています。対応言語の追加なども要望があれば検討の余地がありますが、むしろ有志の方々の間で自然発生的にコンテンツの拡充が進み、草の根的に活用が広がっていくようなムーブメントが起こることを期待しています」(森谷氏)

森谷 和弘(もりや かずひろ)

データ解析設計事務所 代表(フリーランス)

データアナリティクスラボ株式会社 取締役CTO Co-Founder


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る