筆者も実際にデータ分析業務に携わるようになった時にSQLを学習し始めました。初めのうちは慣れないSQLに苦戦しましたが、とにかくたくさんSQLを書いたり、時にはとんでもなく重たい処理のクエリを書いてシステム担当者に怒られたりしながら習得してきました。
このように試行錯誤を繰り返し、適切にフィードバックできるような体制構築が重要となります。勉強会形式で取り組むもよし、ハンズオン形式でやるのもよし、SQLパズルのように問題形式でチャレンジするのもよいでしょう。組織の習熟度にあった方法を取り入れてみてください。
データを抽出できるようになったら、次は集計のイロハを学ぶ必要があります。
単純な集計であればそれほど大きな問題はありませんが、クロス集計より複雑な集計や多変量解析を行う際は注意が必要です。
クロス集計は2変量以上の変数を集計し、問題点を特定するのに大いに役立つ集計方法ですが、適切に表頭・表側を選ぶにはある程度習熟が必要です。過去に、分析に対する目的を伝え、データセットを渡した後に、クロス集計から考察を導き出してほしい仕事を当時の後輩に依頼したのですが、出てきたアウトプットの集計軸がチンプンカンプンで集計の仕方から指導する必要があったことがありました。
その後輩もPythonやC言語を扱う優秀な人間でしたが、どうにもデータの見方というものが少しずれていて、プログラミングをしているからといって適切にデータを扱えるわけではないということを思い知らされた経験でした(その後、後輩は立派に分析を担えるようになりました)。
課題に対して適切にデータを前処理し、多変量解析手法や機械学習アルゴリズムを選択し、選択したアルゴリズムに応じて適切な評価指標を演算し、汎化性の高いアルゴリズムへと改良していくことが最近の機械学習ブームの醍醐味ですが、ここにも属人化の要素がたくさん詰まってきます。
まず、分析者が理解しているアルゴリズムかどうか、自身の扱える言語において適用が可能か否かも重要です。もちろん、自身でフルスクラッチで書き下していくこともあるでしょう。しかし、フルスクラッチで書き直したとしても他の担当者が扱えるようにパッケージングすることが重要です。
多種多様な言語に加えて、分析の環境の設定、言語バージョンなどによって再現性が担保できないケースもあります。Dockerのようなコンテナを用いて、再現可能な分析環境を作り、そこで適切なスクリプトを流したり、必要に応じてバージョンアップを実施したりなどの取り組みが欠かせません。
ここまで取り組むことができれば、近年のデータサイエンスの取り組みとしてはかなり先進的な事例と言ってよいでしょう。可視化方法については以前の連載時に触れたため、ここでは割愛します。
今回、触れてきたようにデータ民主化が進むと、組織の習熟度に応じてそのアウトプットの品質がばらついてくることがお分かりいただけたと思います。こちらの記事においても、データ民主化の取り組みがうまくいっていないケースも指摘されています。
このような新しい取り組みに失敗はつきものですので、こういった事例もあると認識しつつ、組織の分析品質を高めていくたゆまぬ努力が肝要です。筆者もまだまだその境地に至ってはいませんが、みなさんと同じように現場で試行錯誤しながらデータ民主化をもっともっと進めていきたいと思っています。
- 伊藤徹郎
- インターネット金融グループを経て、データ分析企業でデータアナリストとして様々な業種の企業を支援。その後、大手レシピサイトでデータ分析やディレクター業務などを経て、現在はFinTech企業でデータ分析やサービス開発などに従事。RとSQLをよく書いている。