「先輩データサイエンティストからの指南書 ―実務で生き抜くためのエンジニアリングスキル」を読みました

はじめに

表題にある通り「先輩データサイエンティストからの指南書 ―実務で生き抜くためのエンジニアリングスキル」を読んだので、感想を書いていきたいと思います。

gihyo.jp

筆頭著者の浅野さんのご厚意でご恵贈いただきました。この場を借りて感謝申し上げます。

本書の哲学について

一貫して、著者の皆様のデータサイエンティスト(以下 DS とも記載します)としてのプロジェクトでの経験から、円滑に成果を出していくためのエンジニアリング周りのベストプラクティスをもれなく網羅するように意識してあり、タイトルから期待される通り「優しい先輩が後輩のしくじりを防ぐように先回りしてガイドしてくれている」ような気分にさせてくれます。一例として「レビューではポジティブなフィードバックも送るようにしましょう」などの指南が 3 章に登場してきますが、このように随所に著者陣の優しさが溢れ出ているように感じました。

私は DS 経験がすでに 4 年以上あるため既知の内容も多くありましたが、VS Code拡張機能の設定や、ファイルのエンコーディングを推測する chardet など細かい点で新しい学びもあり、DS 経験ありの方にも楽しく読めるようになっていると思います。自分が駆け出しの頃にこの本があればもっと高速に成果を出すことが出来ただろうなと、今の駆け出し世代を羨ましく思います。

ただし、序章「本書について」にもある通り、パブリッククラウドAWS / Azure / Google Cloud など)周りの話題は(クラウドベンダーの選定は各社異なっており各論っぽさが強くなってしまうこともあるでしょうし)除かれているため、別の書籍で勉強が必要だと思いました。特にDS系の職種であれば、BigQuery などの DWH を操作する部分(SQL のグッド・バッドプラクティスの話題も含め)や、機械学習(以下 ML とも表記します)モデルをデプロイするといった操作なども大事になってくると思います。

構成について

1 章は、「なぜ DS にエンジニアリングスキルが求められるか」について、時代や市場の流れなどを踏まえて丁寧に説明してくれる序章的な立ち位置となっています。

2 章にまず環境構築を持ってくるところは 1 人の DS として個人的にお気に入りで、とても共感できる推しポイントだと思いました!その理由は、初学者がもっともつまずきやすく時間を食われがちなのがこの辺りの話題だと思うからです。実現例についても VS Code + Docker(Dev Container) + uv と最近のデファクトを反映できていてとても好印象です。時間が経つにつれてデファクト自体は変わりゆく宿命にあるとは思いますが、概念の説明にも丁寧に誌面が割かれているのでご安心を。それぞれが何をしたい道具なのかを一度理解しておけば、代替のツールなどを取り入れることはそこまで難しくないと思います。

3 章では、コードの品質管理と称して、コーディングやレビューにおけるグッド・バッドプラクティスを具体例を交えながら紹介しています。類書に「リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック」などもありますが、DataFrame の処理など Python x データサイエンスの実装でありがちなコードサンプルに焦点を置かれており、より DS フレンドリー仕様になっています。

4 章はデータの品質確認についてです。データフレームを題材として、具体的な分析作業に取り掛かる前に、値や分布がおかしなことになっていないかをちゃんと調べる等のハード的なスキルの解説がなされています。しかしそれだけでなく、「データの取得元である基盤側のデータエンジニアたちとも日頃からコミュニケーションが取れる体制を作ると良い」といったソフト面にもフォーカスが当たっている点が素晴らしいと思いました。

5 章では ML モデルの実験管理ツールの使い方にフォーカスが当たっています。恥ずかしながら私は WandB くらいしか使ったことがなく、本書で紹介される Hydra や MLflow を使用した実践的なコード例は新鮮でした。とはいえ、各ツールの使い方は似ている部分も多いので、この本で一度習得しておけば他のツールにもすんなりと適応できると思います。

最後の 6 章では、主に Streamlit を取り上げてプロトタイプ開発の重要性について触れられていました。私自身は今までのプロジェクトにおいてあまりこのような見せ方はしてこなかったので、今後デモが重要になる機会があったらぜひ積極的に取り入れてみたいと思います。

おわりに

「先輩データサイエンティストからの指南書 ―実務で生き抜くためのエンジニアリングスキル」を紹介してきました。キャリアを歩み始めたばかりのジュニア DS にはもちろんのこと、シニア寄りの方であっても例えば「メンバーの教育プログラムをどう体系的に組もうか?」といった課題をお持ちの方にも非常に役立つと確信しました。この書評により、少しでも多くの方に本書をお手に取っていただけることを願ってやみません。

もくもく合宿を初めて開催したので振り返る

この記事について

都内でデータサイエンティストとして勤務している増田と申します。

先日、せっかく2月の3連休というまとまった時間が取れたので、AI/ML領域周辺で働いている友達3名と一緒に、2泊3日の「もくもく合宿」に参加してきました。この記事では、その合宿を通じて分かったことを共有したいと思います。

合宿先の部屋から望む立派な富士山

対象読者

・溜まりに溜まった積読を消化したい方

・ピアプレッシャーの中、集中して作業するまとまった時間が欲しい方

・家にこもっているだけでは集中力が必ずしも持続しない、という自分の弱みを知っている方

・旅気分でリフレッシュしつつもしっかりと進捗を生みたいという欲張りな方

対象でない読者

基本的には「対象読者」の裏返しです。

・旅行に行かずとも自宅でいくらでも読書・作業に集中できる方

・外出が好きではない方

個人的な成果

・『岩波データサイエンス Vol.3 特集:因果推論――実世界のデータから因果を読む』120ページ程度

・『アジャイルデータモデリング 組織にデータ分析を広めるためのテーブル設計ガイド』120ページ程度

・『エンジニアのためのマネジメント入門』160ページ程度

・『Polarsとpandasで学ぶ データ処理アイデアレシピ55』60ページ程度

もちろん、読んだ箇所全ての内容が頭で完全に咀嚼できているとは思いませんが、合計で500ページ弱ほど読書を進めることができました。

旅先でもくもくした合計時間は20時間ほどでした。

あくまで自分の中での比較ですが、ずっと家やその近隣で作業した時と比べて圧倒的に多く進捗したため、この合宿は一定の効果があったと結論します。

スケジュール

2泊3日のすべてのスケジュールは以下の図の通りです。あくまで私の例であり、参加メンバーによっては入浴時間が違ったりなど細かい差異があります。

KPTで振り返る

参加メンバーとの最終日の振り返りで挙がった内容も含め、個人的な振り返りとともにKPT形式でまとめたいと思います。個人的な振り返りは👤、チーム全体での振り返りは👥と区別しています。

Keep (やってよかったこと、継続したいこと)

・👥旅の目的・期待値を行きの電車の中ですり合わせた

これがもしかしたら一番重要かもしれないので最初に書きました。メンバーの同士の目的意識が曖昧なまま旅を決行しても、「もっと集中したかった…」「せっかく遠出しているからもっと観光したかった…」など個人レベルでの期待とのズレが生じてしまうことが一番もったいないことだと思います。今回私たちは、

「ご飯の時間以外はずっと宿に籠ってもくもくに全振りする*1

ことに合意していたため、旅が終わった時に参加者全員が満足して帰路に就くことができました。宿にあったカラオケボックス・卓球台・ゲーセンマシーンなど数々の誘惑をシャットアウトできた自律力は我らながら誇らしいと思いました。

・👥誰一人酒に溺れなかったこと

合宿先の宿のバイキングでは、注ぎ放題のビールサーバーや地酒など強烈な誘惑が待ち受けていましたが、あるメンバーの強靭なアルコール耐性、はたまた別のメンバーの「絶対に飲まないという鉄の意志」 etc. により、なんとか酔っ払い状態をもくもくに持ち込んでグダることがなく無事に遂行できました*2

・👥ポモドーロの導入

あまりに有名でありきたりな「25分作業+5分休憩」のフレームワークですが、これが長期戦においてより高い効果を発揮するという実感がありました。短い休憩を挟むからこそ、そこで身体をストレッチしたりトイレに行ったりと、集中を阻害してくる要因を取り除くことができていたように思います。

・👥その日にやることの宣言と振り返り会

1日の始めに「私は今日これをやります」、終わりに「ここまで進みました。こんなことを学びました」と簡単にでも全体に共有することにしました。これがあることによって、「みんなに言った手前そう簡単にはサボれない」という適度なプレッシャーが働き、もくもくへ取り組む気持ちが緩むことを防止する効果があったと思います。また人に向けて説明する機会を設けることで、さらに学んだことを記憶として定着させる効果もあったように思います。

・👤多種類の本を用意していたこと

1つの本をひたすら読み進めるのはいずれ飽きてしまうという個人の特性を十分理解していたため、「飽きたらどんどん次に行く」という作戦で読書を止めることなく進めることができました。特に、かなり眠気が強く出るような時間帯においては、上述の『Polars〜』など手を動かすコーディングパートがある本で頭を活性化させるように努めました。違うタイプの本を複数種類持っていくのが個人的におすすめの作戦です。

・👤普段通り快適に過ごすための準備

コーヒーをどうしても飲まないと眠気に勝てない・気分が上がらないという個人の特性(ry

味にもこだわりたいため、豆を引くためのグラインダーや細口ケトルなどハンドドリップのための道具を全て持っていき、結果的にメンバーからも大好評のコーヒーを提供し続けることができました☕️

ハンドドリップセットを用いてコーヒーを振る舞う様子

コーヒー以外にも、普段と同じ洗口液や保湿パックを持っていくなど、違った環境でもいつも通りのコンディションで臨むための身の回り品に関してはぜひ携行されることをお勧めします。

Problem (解決すべき課題)

・👥もっと早くから宿の予約に動き出すべきだった

3連休のためかリーズナブルな宿がめちゃくちゃ埋まってしまっていました。幸い良い場所を探し当てることができましたが、理想的には1ヶ月以上前から探して選択肢を増やしておくべきでしょう。

・👥(上と関連)宿のWi-Fiが遅かった

通信を伴う作業をするメンバーが少し困っていました。次回以降は回線速度にこだわりたいです。*3

・👥椅子が作業のためのものではないため、長時間座っていると腰が痛かった

幸い、ホテルのロビーにしっかりとしたソファーがあったためそちらに移動しながら作業を続行することができましたが、やはり一般的な和室の部屋でずっともくもくし続けるのは次回以降は避けたいと思いました。

Try (次回取り組みたいこと)

・👥泊数を増やしてみる

今回は連休の縛りもあって2泊3日が限度でしたが、行き帰りの移動時間を含めると、2泊で獲得できるもくもく時間はせいぜい20時間程度と意外に短くなってしまいます。

次はゴールデンウィークなど大きな連休を利用して3泊以上にもトライしてみたいと思います。

おわりに

この記事では、もくもく合宿をやってみて分かったことを振り返り、皆さんに共有してきました。少しでもお役に立てる部分があれば幸いです。

最後に、思いつきのこの合宿にノリ良く参加いただいた友人3名に、この場を借りて心から感謝し本記事を締めたいと思います。本当にありがとうございました。

 

 

*1:ただし、温泉には個人の好きなタイミングで入って良いこととしました。

*2:3人目のメンバーおよび筆者がお酒を全くと言っていいほど飲めないことも功を奏しました

*3:ちなみに筆者は主に読書に注力していたためこの問題を免れました

統計応用という名の沼に飛び込もう; 統計検定1級(統計応用)の対策方法を考察する

はじめに

更新履歴

2023-12-21 10:10:00 アドベントカレンダーに合わせ,まだ完全版ではないですが初版を公開しました.

2023-12-21 18:22:00 「合格のための戦略」を加筆しました.

2023-12-21 18:38:00 「おわりに」を加筆しました.

2023-12-21 18:49:00 「分野選択について」を加筆しました.

 

「統計・機械学習の数理」のAdvent Calendar 21日目の記事です.

この記事では,統計検定1級の合格要件として必須とされる「統計応用」という科目の試験について自分なりに考察した事項を共有したいと思います.多分に私見を含みますので,客観的事実とは峻別してご笑覧いただけると嬉しいです.

ちなみに筆者はこの科目に2年連続で落ちており,3年目でようやく合格しました.すんなり合格した成功者の体験談だけが知りたいという方はお引き取りいただいて構いませんが,失敗が続いた者からの視点もまた一定程度の価値があると信じてアウトプットしてみることにします.「せっかく受験するなら体系的にじっくり勉強したい」という方のみこの先を読んでください.

体験記にしてしまうともう何番煎じかわからないくらいたくさんのブログ・記事が既に見つかりますので,どちらかというと「この対策しにくい試験をどう突破するか」を個人にできる範囲で考察してみようという取り組みになります.具体的すぎる参考図書の話などにはあまり深入りしません.

どういう試験か?

公式の声明によると「レベル的には定量的なデータ解析に深くかかわるような大学での専門分野修了程度」の難易度であると定義されています.

統計検定1級|統計検定:Japan Statistical Society Certificate

どういう業務をしているかにもよると思うので受け取り方は個々人に委ねますが,いわゆる「データサイエンティスト」「データアナリスト」などデータ分析を生業とする職種に就いている以上は少なくとも出題範囲の概念的な理解くらいはしておいた方がいいんじゃないかなと個人的には思います.なくてもそれなりに生きてはいけるくらいの高難易度ではあるとは思いますが,それらが全くない人と一通り知っている人を比較したときにどちらをより信頼できるか?という話かなと思います.繰り返しますが「概念的な理解」が望ましいという私見であって「合格証明書がそれら専門職の免許である」とは言っていません.このテストで合格が取れなくても業務は回せることも多いでしょうし,その裏の命題もまた真になり得ます.

合格率はだいたい毎年20%くらいとなっています.そもそも大学数学レベルの知識を要求する試験であるため,志願の時点でかなりのふるいにかけられていることを加味すると,とても難易度の高い試験であると言えるでしょう.

解答指南・試験対策

具体的な問題や解答方法について紐解いていきましょう.解答用紙は論述用のものとなっており,学部や大学院の個別試験の数学と似たノリです.試験時間は90分間で,どんな過去問とも違うことを問うてくる小問を含む合計4~6つくらいの小問を抱える大問について,制限時間内に5問中3問をその場で取捨選択し解答することになります.問題選択や検算の時間を考えると,大問1つにかけられる時間はせいぜい25-28分くらいでしょう.これを小問の数で除すると,当たり前のように「小問1つあたりに4-7分くらいしかかけられない」という帰結が導かれるはずです.具体的な数値計算を求められることもあるので,電卓での加減乗除平方根の計算にも慣れておく必要があります.やってみると分かりますが,意外と電卓計算でモタつきます.メモリー機能なども使いこなせないと時間を食われますので,サボらず演習しましょう.

恐るべき時間の短さを鑑みると,「今まで見たことがないタイプの問題に対しても,手を止めないくらいの速さでなんとか部分点をかき集められるくらい意味のある論述・途中式を書き殴りなさい」というタイプの試験であることがご理解いただけるかと思います.言い方を変えると,「手を止めてじっくり解き方を考えている暇はない」ということあり,「これくらいの話題であれば大して熟考することなしに解き慣れておいて下さいよ」という運営側からの意図を感じざるを得ません.時間制約に加えて「年1しか受けられない」などのプレッシャーも加味すると平常な精神状態で試験本番で解いていけることは難しいですし,字を読んでもらうことに配慮して書くスピードが普段の殴り書きよりも遅くなる焦りなども考慮すると,リラックスした状態の7割くらいしか実力を発揮できないと思っていいでしょう.合格点も毎回非公開になっていますが,大体6割から7割くらいと言われている(後述の公式本にも載っています)ため,上の「7割くらいしか実力を出せない」論と組み合わせると「なんとかしておおよそ全ての小問について答えを出す」くらいの気合・気概を持っていないと確実な合格圏内に入ることが難しくなり,運ゲーの要素が絡んでくることになるでしょう.逆に,統計を専門としていない方であってもやたらと数学に強いタイプの人材であれば楽々パスしてしまうからくりがここにあります.要は「統計の専門に精通しているが合格できない」という偽陰性と,「専門的な統計学の知識をカバーし切らなかったけど数理ライクな知識のみでその年の問題セットでたまたま合格できたしまった」という偽陽性の両方が生じうるタイプの試験であるとご理解いただくのが適切でしょう.

典型的な例を交えて紹介します.理工学の2017年,2021年,2022年など多数の年において,最も頻出・王道分野の1つである「実験計画法」分野の出題を全て避けて選択することが可能になっていました.それで合格できてしまうことよりも,その勉強過程で何を得たのかを考えることの方がより大切だと個人的には思っています.たまたま一発合格するよりもむしろ,何年かかけてじっくり分野のいろいろな出題範囲に慣れ親しむ方が得られるものは大きいのではないでしょうか?これは一発合格した人を決して貶めたいわけではなく,むしろ一発合格できなくても(自分も含め)プラスに捉えることができるよ,というメッセージであるとお考えいただければと思います.

ちなみに,採点の詳細が開示されないため推測にはなってしまいますが,私の経験則的に部分点はかなり加味されると予想されます.私が合格した年も,最終的な答えの値の計算ミスが複数個生じて落ち込んでいたくらいでした.なので,考え方のプロセスを大事に記述するようにしてください.

対策困難さ

理工学を例にとり,過去10年間くらいでどのような分野の出題があったかを外観してみましょう.※あくまで個人がまとめたものになるので,鵜呑みにしないでください.誤り等について筆者は一切の責任を負いません.

このように,午前中の試験「統計数理」の色が強めに出題されることがやや多いですが,それだけでは勝ち切れないセットが並ぶことも多いです.

教科書・参考書について

したがって,万全の対策をするにはここに挙げたような複数分野に関する基礎的な話題を押さえていく必要があります.そこで役に立たせるのが難しいのが公式本です.例を取って説明します:実験計画法・直交表における「分割法」の1次誤差や2次誤差などの話題は確かに過去問に出題実績があります.これらの設問を公式本の知識だけで解答できるかというと答えはNOですSNSでは「公式本だけやっておけば良い」「統計応用含め久保川本だけやっておけば良い」「積分ゲー」といった論調も時折見受けられますが,これらの言説は自らの体験だけをもとに問題を矮小化しています.初学者にこのような混乱を与えるのは有害なことだと考えており,ここで明確にその説を否定しておきたいと思います.

なので,結局分野ごとに近い話題の参考書を複数漁って地道に勉強していくしかないです.ここがめちゃくちゃ大変で時間を吸われますが,覚悟を決めて向き合ってください.

合格のための戦略

1. 数学力でゴリ押して統計数理の対策重視で勝ち切る(非推奨)

前述の「やたらと数学に強いタイプの人材」を自認する方はこちらの戦略を取ることができると思います.しかし問題セットによっては応用を取り逃がす可能性が出てきますし,何より,応用にも面白い分野があるのにそれらをまともに学ばずして合格証明書だけを取って離脱してしまうのはとんでもない機会損失だと個人的には思います.まあ,合格という名誉だけが欲しい人はそうすればいいんじゃないっすかね,知らんけど.

2. 馴染みのある分野を増やしまくって未知の問題への反射神経を高める(推奨)

学問に王道なし,ということでご自身の受けられる分野の過去問を全て眺め,出されうる分野を満遍なく対策するというやり方がこちらです.

過去問を1つ1つ読んでいき,ざっくりどの分野からの出題であるのか,図のようにスプレッドシートでまとめていきます.理工の例は上で貼った通りで,人文なら多分下図のような感じになると思います.※あくまで個人がまとめたものになるので,鵜呑みにしないでください.誤り等について筆者は一切の責任を負いません.

これらを眺めていると,次に自分がやるべきことが少しずつ見えてくるでしょう.

人文 → 多変量解析がよく狙われるな.小西「多変量解析入門」または永田・棟近「多変量解析法入門」などをチェックしよう.

理工 → 実験計画法が大事だから永田「入門 実験計画法」などをチェックしよう.

といった感じです.参考書はご自身のレベルや好みに馴染む記述かどうかという観点でお好きに選んでください.どのみち試験に完全に適合したテキストはありませんので.

ある程度出題範囲についての理解が固まったら過去問にすぐに挑戦しましょう.1分野分だけでも50問近くあり,訓練を積んでいないと目安の30分で解き切るのはとてもじゃないですが不可能に近いですし,模範解答を読み込むのも時間がかかるので1問1時間以上費やすこともザラです.試験日までに問題を余らせてしまうという勿体無い状況をなるべく避けるようにしましょう.別分野の出題であっても自分野に関連が深い問いも探してみると結構あるので,過去問演習だけでも(良くも悪くも)かなりの時間をかけて鍛錬することができるでしょう.

※ただし,2014年以前はそもそも出題範囲表が現行のものと異なっていた(?)ようなので,場合によっては切り捨てても良いかもしれません.

分野選択について

分野選択は基本的にご自身の仕事・バックグラウンド・興味に近いものを選ぶ形でいいかと思いますが,個人的に機械学習系の人材の皆さんにおすすめなのは人文科学です.名前からすると「えっ?」と思われるかもしれませんが,実は上の図の通りクラスター分析や判別分析といった多変量解析系の出題が多く,機械学習で学ぶ範囲と重なる部分が最も多い分野です.逆に理工学は割と注意が必要で,意外と機械学習に絡んだ設問が少ない(2021の決定木などは例外的)ですし,理工学と謳っておきながら割と「工学」寄り(製造業での品質管理・実験計画法・寿命予測などを意識した設問が多め)です.名前のラベルに惑わされず,全分野の出題をざっと眺めて一番面白そうと思えるものを選べると理想的です.

Tips・前日までにやっておくと良いこと

どういうことを出題者が聞きたがるか一問一問しっかり味わう

統計応用は特に別の書籍や大学院入試等に類似の問題を見つけにくいことが知られています.なので,過去問の1つ1つを丁寧に解いていき,出題の意図に想いを馳せていくと本番でも動揺せずにスムーズに手が動いていくと思います.

完全に途中からやり始めた策なので全てを書ききれてはいませんが,理工学・人文科学を中心に解いた問題を1つずつXのスレッドで振り返る投稿を続けていました.↓

人に説明し読んでもらうコメントを意識することで,出題の意図を少しでも俯瞰できたのでこのやり方は結構おすすめです.どうしても人に見せるのが恥ずかしい場合は自分のノートや日記などに書くのでもいいと思います.

まとめノートの作成

演習を進めていると,「これは頭から抜け落ちそうだな」とか「この検定方法は細かい数式を頭に入れていなくて解けなかったな」と言った自分の弱点が徐々に炙り出されてくると思います.気づいた時になるべく早いタイミングでまとめノートにアウトプットしておきましょう!これを持っていけば,本番当日の会場でどんなお守りよりも強い精神安定剤になること請け合いです.

おわりに

この記事では「統計応用」という試験について紹介し,沼にハマってしまうほど対策が難しいタイプの試験であることを説明しました.

それでも,その沼はハマる価値のあるものだと思っています.勉強して身につけた統計的思考能力は必ず実務や今後の勉強などにおいて役立つことでしょう.

すうがくぶんかの内場先生 ( https://twitter.com/utaka233 )もしばしば「何度も落ちてしまっても決して恥ずかしいことじゃない,そういうものです」とおっしゃっていました.士業の資格試験などとは異なり,落ちても(受験料以外に)何の不利益もない試験ですので,臆せず打席に立ち,果敢に沼に飛び込んでいきましょう!

【Kaggle Advent Calendar 2023】day14: Kaggle非公式・非営利目的コミュニティTシャツを製作するために公式に許諾を得た話

はじめに

Kaggleアドベントカレンダー2023の14日目の記事です.

ゆるい記事で技術の話は一切出てきません.Kaggleの技術的内容に興味のある方は読み飛ばしてください.

Disclaimer: 本記事における活動はKaggle公式コミュニティとは一切関係がありません.あくまで非公式なファン活動の一種であるとご認識ください.当然,本記事の見解はKaggle公式による声明ではありません.

Kagglerフットサルクラブとは?

2023年夏頃、我らが部長であるKaggle Grandmasterのカレーちゃん ( https://twitter.com/currypurin )がおもむろに「Kagglerフットサルクラブ」を設立しました,月1で緩くフットサルをして遊ぼうというだけのシンプルなコミュニティです.彼の人望もあり瞬く間にDiscordコミュニティの参加者は増加していき,2023年12月現在でアカウント数は64名にも上ります.現在は錦糸町のフットサルコートを主な活動場所としています⚽️

ちょうど先日のKaggle Tokyo Meetup 2023においても「Kagglerも体力作りが重要」といった趣旨のご発表があり,Kagglerコミュニティで気軽に運動をしてみる場として本コミュニティがご活用いただけるのではないかなと思います.

コミュニティTシャツとは?

サッカーのユニフォームを模したオリジナルTシャツのことです.オリジナルスポーツTシャツのデザイン・受注販売を行なっている業者さんに依頼して作っていただいています.部員の皆様のXでのPostを見ていただくとどういったデザインなのか雰囲気が掴めると思います.

もちろん自分たちで費用を持ち寄って製作し自分たちで購入しているので完全に非営利目的で作成しており,一切の利益を得ていません.

※コミュニティ内での本Tシャツの購入は完全に任意であり一切強制されません.

本Tシャツ製作にあたり,Kagglerの皆様にはお馴染みのKernelerくん( https://www.kaggle.com/kerneler ) のロゴをぜひ使いたいと考えました.そこで我々は著作権的な問題を解決するため,Kaggle公式に直接許諾をいただけないか問い合わせることにしました.

Kaggle公式への問い合わせについて

※⚠️⚠️⚠️注意⚠️⚠️⚠️

Kaggle公式のお手を煩わせないために,仮に同様のお問い合わせをすることがある場合は必ず下記のFAQやガイドラインに事前に目を通し,これらに当てはまらない例外的なお問い合わせのみ送るようにご注意ください.

https://www.kaggle.com/contact

https://www.kaggle.com/brand-guidelines

我々のケースは問い合わせ時点においてこれらに当てはまらなかったので,ガイドラインページに記載のあったメールアドレスにEメールを送ることにしました(アドレスを直接記載するのは気が引けたので上記のURLから探してください).その際も「あらゆる公共媒体において,この活動はKaggle非公式の活動であり公式とは関係がないことを明記すること」「非営利目的でのTシャツ作成であること」を遵守する旨を記載することで許可をいただけました.

※同様のケースであっても100%許諾が得られるとは限らないため,非公式グッズを作りたい場合は必ず公式の判断を待ってから行うようにご注意ください.

おわりに

本記事では,Kagglerフットサルクラブという非公式コミュニティにおいてTシャツを作成した話についてご紹介しました.

本コミュニティでは随時メンバーを募集しています!Discordサーバーに誰でもJoin可能ですので,ご興味のある方は部長のカレーちゃん

https://twitter.com/currypurin

または副部長の私

https://twitter.com/ml_taro

までお気軽にリプライ・DM等でご連絡ください!

これからの「実利的なデータサイエンス」の話を『評価指標入門』で学ぼう

はじめに

あなたはデータサイエンティストとして,とある会社に勤務しているとします.

「で,この施策で一体いくら儲かるの?」

「F1 scoreがこれだけ上がったらどれくらいの利益に繋がったの?」

と,非データサイエンス部署から質問された(しばしば詰められた)として,あなたはどれくらい胸を張ってこの問いに答えられるでしょうか?

この問いに答えを出すための考え方を学べる最良の手段は,タイトルに掲げた『評価指標入門』を読むことだと思います.

gihyo.jp

幸運にも同僚の伝で,技術評論社様からこちらの本(以下,「本書」と呼びます)をご恵贈いただけました.この場をお借りして感謝を申し上げます.僭越ながら,本記事では本書のご紹介をさせていただきます.

『評価指標入門』書評

本書は,単に機械学習モデルの学習が上手くいったかどうかを測る一般的な評価指標の説明の羅列…だと思ってもらっちゃあ大間違いです.

本書の最大の特徴は,各章の終盤や付録で語られている,簡単なケースを例示しながら「利益=売上 - コストのお金の計算を真面目に分解して数式で指標を導出する」パートです.とても秀逸で一読の価値があります.複雑な要素が絡み合うビジネスシーンにおいては,本書で置いている仮定が単純すぎて当てはまらない場合もあるかもしれませんが,それでも「(おおよそ)XX円儲かると予想されます!」と主張できるロジックを組むことは,企業で働く実務家としてはこの上なく重要なことなのではないでしょうか.たとえアバウトな近似だとしても,「人件費がざっと月これくらいで,モデルやシステムの運用コストがこれくらいだと置くと,利益に最大限直結する評価指標はこういう定式化になる」という式を導く説明が一貫して明快に(しばしばフレンドリーに)語られています.

「数理の知識を生かして社会の役に立ちたい!」と望む私のような読者にとってドストライクな書籍が世に生み出され,ずっとワクワクが止まらないまま本書を一気に読んでしまいました.

昨今では,データサイエンティストが業務を遂行するのに必要となる素養として「ビジネス」「ドメイン知識」などといった単語が口を酸っぱくして語られていますが,その具体的な意味を最も実感できるのも本書なのではないでしょうか.まさにサブタイトルにもある通り,「ビジネス」と「サイエンス」を繋ぐ橋を架ける方法についてヒントを得ることができるでしょう.

我々読者自身の会社において本書と同じような定式化をこなしていくことは,一定以上の数理的なセンスが要求され,必ずしもすんなりと簡単にできることではないとは思います.しかしそれでも,我々のような「企業で雇用されるデータサイエンティスト」が飯を食っていくために何よりも重要な姿勢が本書で語られていると思いました.

私自身も冒頭のような問いに即答できない場合がある現状を反省し,座右の書として常に振り返るようにしたいと思います.

この本を誰が読むべきか?

あなたが実務でデータサイエンスを取り扱う仕事に就いているのであれば,間違いなくご一読の価値があると断言できます.機械学習でよく使われる指標自体に既に慣れ親しんでいる方(RMSEやAUCと聞いてピンとくる方)であれば,もしかしたらスラスラ読めるパートも多いかもしれません.それらも体系的に確認しておさえておきたいという駆け出し寄りのデータサイエンティストの方々であれば,より本書に読み応えが出てくるかもしれません.

逆に,「Kaggleのようなコンテストで勝てる機械学習モデルを作りたい」といった方や,実務でデータサイエンスの部署と間接的にでも関わりがない社会人であったり学生の方は本書のターゲットからは外れているかなと思いました.特に学生の方だと,ビジネスやお金周りの話題が出てきても共感しづらい部分があるかと思います.ただし,そのような属性の方々であってももちろん本書から得られるものはあると思うので,お気軽にめくってみる分には一向に構わない超良書だと思います.

おわりに

この記事では,『評価指標入門』の内容をご紹介させていただきました.少しでも気になった方は是非チェックしてみていただければと思います.

【統計学Advent Calendar day23】 統計学周りで今年読んで良かった本

この記事は何?

この記事は「統計学 Advent Calendar 2022」23日目の記事です.

ここでは,統計学周りの話題に絞って「今年読んで良かった本」を独断と偏見でまとめていきたいと思います.それぞれについて「こんな人におすすめ」という項目を付与しましたので,当てはまる方は是非書籍をお手に取ってご覧いただけると嬉しいです.

今年読んで良かった本

入門 実験計画法

何が良かったか

数式がゴリゴリ出てくるものの,前提となる知識から丁寧に導入してくれているので,「実験計画法」という分野について全くの初学者であっても読み進めることができます.ただし,t検定・F検定などの検定論の入門的知識(統計検定2級レベルくらい?)があった方が読むのは楽です.「なぜ因子の分散と誤差分散との比を取ってF検定することで効果を検定できるのか」や「平方和の分解」など本質的なトピックについて誤魔化しなく丁寧に式を展開してくれるので,読後の納得感がかなり高くなると思います.

私の場合は,統計検定1級の統計応用(理工学)の対策の意味で一通り読むようにしました.試験本番で出題される問題はかなりトリッキーですし,この本自体には演習問題がついていないため,残念ながら試験合格請負書籍として太鼓判を押すのは難しいですが,それでも「乱塊法」「分割法(直交表を絡めたものを含む)」など発展的なトピックを親切に解説している書籍はこれを除いてなかなか存在しないのではないかなと思っています.

東京大学工学教程」の本

 

も理工学対策としては有名ですが,上記のトピックについての解説が不足しているため,包括的に学ぶのであれば「入門 実験計画法」がベターかと個人的には感じました.

こんな人におすすめ

・理学・工学・化学など資源の限られた分野でなるべく少ない回数の実験から効果を測定したい方

・統計検定1級の統計応用(理工学)を目指しているが,体系的に実験計画法を学ぶのは初めてな方.ただし,試験問題が解けるようになるとは限らない.

・永田先生書籍シリーズお馴染みの平易な説明ファンの方.

ウェブ最適化ではじめる機械学習

何が良かったか

「ウェブ最適化,とりわけベイジアンA/Bテストはこうやるんですよ」をPythonコード付きで平易に解説してくれている神書籍です.私個人としては今年のMVPを授与したいと思うレベルです(書籍が出たのは2020年なので2年遅れですが).統計学(とりわけ確率分布)を全く勉強してこなかった人が読むとよく分からないかもしれませんが,その辺りの基礎的な知識さえあれば説明のわかりやすさに目から鱗が出るくらいだと思います.私はまだ6章の頭の方までしか読めていませんが,ここまでは大きく歩みを止めるような難解な箇所が全くなく,順調に読み進めることができました.

余談:表紙のウミウシが若干グロテスクで,人によっては敬遠してしまいそうになっているのが本当に本当に悔やまれます.ここまで見た目で損している書籍も珍しい.

こんな人におすすめ

ベイジアンA/Bテストに興味があるけど,どの本で実践的に入門していいか分からない方

・統計の基本は学んだことあるけど,Webサービスなどの改善周りの実務でどうやって使えばいいか分からない方

Pythonの初歩は分かっている(Numpyなどの基本演算やMatplotlibなどの可視化ライブラリを使ったことがある)方

・コードで実践的に身につけたい.でも数式の説明も多少はあり両面から理解したいという欲張りさん

A/Bテスト実践ガイド

何が良かったか

この本は有名なので今更説明は不要かもしれませんが,なんといっても「A/Bテスト」という分野の第一線で活躍し多数の論文も残した著者陣から直々に,活きたプラクティスを学ぶことができることが最大のポイントでしょう.実に23もの章にわたって細かい注意点を解説してくれます.一方で,各トピックについてはどうしても紙面が限られる影響か,ダイジェスト的な説明にとどまっている箇所も散見されました.特に,統計学が絡む第Ⅴ部は「この数式はどこから来た?」という疑問を持ったまま天下り的展開を認めながら読む必要があります(どうしても数式について深く納得したい方は別の専門書をあたりましょう).

個人的には,データアナリスト・データサイエンティストだけでなく,分析を専門としない人にこそ進んで読んで頂きたい(特に前半の章)と考えています.A/Bテストの重要性の説明はもちろん,指標(メトリクス)や意思決定のルールについて関係者間で合意を取っておく重要性についても言及されており,これらはプロダクトに関わる全ての人が知っておいて損しない話題だと思うからです.

こんな人におすすめ

・A/Bテストに関わる全ての

・A/Bテストを間違いなく遂行するためのベストプラクティスを学びたい方

・A/Bテストの具体的な実装・ツールの話というよりも方法論を勉強したい方

・今まで業務で雰囲気でA/Bテストを回してきたが,本当に正しく効果を測定できていたのかイマイチ自信がない方

終わりに

この記事では,私が統計学周りで今年読んで良かった本についてまとめました.ほんの少しでも参考になる部分があれば幸甚です.最後までご高覧いただきありがとうございました.

Google Cloud Professional Data Engineer試験に合格した話

この記事は何?

先日Google Cloudの認定資格の一つである「Professional Data Engineer」の試験を受験し,無事に合格を勝ち取ることができました.この記事では,試験対策方法や受験日当日の注意点などについて紹介していきます.

ちなみに合格者にはパーカーなどの記念品をプレゼントしてくれるようです.今はアメリカからの発送待ちで,着るのを楽しみにしています.

試験対策前の前提知識・経験

・業務でBigQueryにクエリを投げたりしているデータサイエンティスト.SELECT * したらスキャン量が大変なことになる,など常識的なことは(多分)知っている程度.

・その他のGoogle Cloudプロダクト(データエンジニアリング関連)はほとんど使ったことなし.Kaggle用途でVMインスタンスを立てたことがあるくらい.

機械学習は2013年から勉強しており,業務でも3年以上は扱っている.そのため,機械学習関連の対策はあまり必要なかった.

クラウドの試験対策をするのは初めてでしたが,何とかなりました.目安として,CLIの黒画面に怯えない程度のエンジニアリング歴と,応用情報を取得する程度の基本的なデータベースやSQL関連の知識があれば(データエンジニアの3年程度の経験が目安の試験なので大変なのはもちろんですが)何とか勉強は進めていけるかなと思います.

勉強期間(実績ベース)

下記の対策トータルでかかったのは2ヶ月.仕事をしながらなのでもっと短縮することは可能と思われます.

試験対策として勉強したこと

公式Coursera(約1ヶ月)

おすすめ度:★★★★★ (5/5)

「認定準備」と銘打ったコースは6つありますが,ご自身の事前知識に応じて飛ばし飛ばし受講すると良いでしょう.全てをゆっくり聞いているとかなりの時間がかかりそうです.その中でも,

こちらの試験対策講座がイチオシです.まずやらない手は無いでしょう.試験の対策のためのポイントをふんだんに盛り込んでくれます.あえて序盤に受講して,自分の知識の足りないところを逆算してその他のコースをパラシュート的につまみ食いしていくのも良さそうです.

一つ注意したいのは,この講座の練習問題の難易度は本番よりもやや簡単であるということです.Courseraだけで対策を終えて本番を迎えると痛い目を見ると思います.

公式模試(30分×解き直し回数)

おすすめ度:★★★★★ (5/5)

こちらも自明に大事なので,満点近く取れるまで時間を空けて何度か受けましょう.不正解選択肢の理由も含めて解説を読み込むと良いでしょう.

cloud.google.com

公式本(演習問題を2-3週間くらいかけて埋める)

おすすめ度:★★★★ (4/5)

英語に抵抗がない方は買うといいと思います.しかしながら,この本は本文はそこまで読んでいません(パラパラとめくってみましたが,英語を頑張って読み解く割には載っている情報が公式ドキュメントよりもやや薄めかなと思いました).この本を購入する旨味は,なんと言っても購入者特典で豊富な演習問題がWebサービスとして提供される点です.難易度や問題の癖は正直,本番のそれと異なるものもありますが,278問もの演習+不正解選択肢を含めた解説があるのは貴重です.個人的には大きな助けになりました.下図のように,演習問題の進捗を円グラフで示してくれるので「全部緑で埋めたい」というモチベーションが湧きやすいのも嬉しい設計になっています.

公式本の演習問題の進捗円グラフ

Udemy(6時間×解き直し回数)

おすすめ度:★★★★★ (5/5)

上記「公式本」の著者,Dan Sullivan氏のオリジナル模擬試験がコースの終盤に入っていて,本編をすっ飛ばして模試だけ受けることができます.私は動画講義は一切聞いていませんが,理解度に不安のある方は活用してもいいかもしれません(字幕も英語なので得意じゃない方は厳しいかも).

 

同氏の模擬試験2回分「だけ」のコースです.いい問題が揃っていると思うので頑張って英語を読むかDeepLにかけるかして解くと良いでしょう.

 

非公式ですが,紹介している模擬試験の類で一番歯応えがあり難しい問題が揃っていました.このレベルで合格点を出せるなら合格が近づいてきていそうな気がします.ただし,不正解選択肢の解説が不足しているので,自分でドキュメントを睨みながら納得していく必要がありそうです.

Whizlabs 無料模擬試験(20分×解き直し回数)

おすすめ度:★★★ (3/5)

LMS | Whizlabs

上記リンクから,Whizlabsという独自のトレーニングプログラムを販売しているサービスの模試を20問だけ無料で受けることができます.あくまで非公式ですし出題の傾向も本番のそれと異なるのでここまではやらなくてもいいかなと個人的には思います.課金するとより多くの問題演習や実践プログラムが提供されるみたいです.

上記の問題演習中に「知らなかったこと」をメモにまとめる

おすすめ度:★★★★★ (5/5)

例えば「Dataprocのベストプラクティス」→「GCSをストレージにする,プリエンプティブルVMは最大セカンダリワーカー数の30%以下にする,エフェメラクラスタを使う」など典型パターンは丸ごと暗記しておくと正解率が上がってきます.そういったパターンをメモにまとめ,暗記カードのノリで一問一答集を作り暇な時間に解いておくと記憶に定着すると思います.私の場合は,Notionのトグル機能を使って答えの表示・非表示を切り替えるスタイルで暗記作業を続けていました.

試験当日ギリギリもこれを眺めておけば,精神安定剤代わりになること請け合いです.(ちなみに私はデータエンジニア素人なので実にこのメモがA4用紙19ページに及びました…)

トグル機能を使って自作の一問一答集を作った様子

受験体験記

受験にあたってはお近くのテストセンターを探し,自分で好きな時間に予約をする形になります.私は東京に住んでいるので複数の選択肢から好きな会場を選ぶことができたのですが,Googleマップのレートが高く評判が良さそうなのと,Googleさんのオフィスが近くて縁起がいいことから渋谷会場を選びました.なお,土日を中心に意外と早く予約枠が埋まりやすいのでご注意ください.

 

テストセンターに関する情報

・身分証の提示が2種類+リマインダーメールの印刷が必要になるのでご注意ください.クレジットカードは「裏面に署名がされたものが必須である」などと言われ相当細かく確認されるので,念のため身分証は多めに持っていった方が良いかもです.(私の場合免許証+会社の保険証でイケました)マスクを脱いで顔写真との照合も行われます.


・試験場ではイヤーマフが置いてあるほか,事前の案内中に耳栓を希望して借りることができました.個人的に頭を圧迫されるのが苦手なので耳栓サービスはとても有難かったです.


解答中の情報

・問題文のフォントが日本語の漢字に対応していない?っぽく,中国語(?)の字体で表示されていて少々読みにくいです.


・模試でもそうだと思いますが「この問題文だけからだと一意に解を絞れなくない?」というパターンが時折あります.ので,局所最適というよりは全体最適を意識した選択肢を選ぶと良さそうです.ベストプラクティスをよく意識しておくことが大切そうです.


・時計は要りません(画面に残り時間が出ます)


・「次の問題へ」ボタンと「提出」ボタンの配置が結構近くにあるので,誤クリックして途中投了しないようにお気をつけください.

終わりに

この記事では,Google Cloud Professional Data Engineerの試験対策と受験体験記をまとめました.少しでも興味のある方にお役に立てていれば幸いです.