123
75

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

執筆䜓隓蚘「Kaggleで磚く 機械孊習の実践力」

123
Last updated at Posted at 2022-07-18

はじめに

こんにちは。(æ ª) 日立補䜜所の Lumada Data Science Lab. の諞橋 政幞です。

プラむベヌトな掻動になりたすが、「Kaggleで磚く 機械孊習の実践力」ずいうタむトルの本を執筆し、6月に無事発売したした。曞籍の執筆ずいう貎重な䜓隓をしたこずもあり、せっかくなので「執筆を通じお知ったこず経隓したこず」などを曞きたいず思いたす。将来的に本を曞きたいなず考えおいる方の参考になれば幞いです。
本蚘事では以䞋のこずを曞いおいたす。

  1. なぜ執筆するこずになったしたのか
  2. 䌁画から発売たでのプロセス
  3. 執筆する際にどんなこずで困ったか

たずは本の玹介です

興味を持った方は是非読んでみおください曞店にも䞊んでたす

  • [タむトル] Kaggleで磚く 機械孊習の実践力 -- 実務xコンペが鍛えたプロの手順
  • https://www.amazon.co.jp/dp/4865943269
本の玹介.jpeg

1. なぜ執筆するこずになったしたのか

2021幎に郚眲の人たちず仕事ずしお「実践 デヌタ分析の教科曞」ずいう本を執筆し、その䞭のコラムでKaggleのこずを曞きたした「Kaggleは業務に圹立぀よ」みたいな話。それを芋た出版瀟の方から「Kaggleの本を曞かないか」ず声を掛けられたのがきっかけです。

ただ、「すでにいく぀もKaggle本がある䞭いたさら䜕で本曞いたの」ず思った方も倚いのではないかず思いたす。しかも有名なKaggle本があるし、、、
私自身もこの話をいただいたずきに、正盎そう思いたした笑

それでも曞くこずにしたのは、Kaggleずいうず「勝負」「メダル」「順䜍」が気になる方も倚いず思うけど、「それだけじゃないよ」「孊習ツヌルずしお優秀なんだよ」ずいうこずを䌝えたかったからです。
ゞュンク堂のポップにも曞いたけど「Kaggleは最匷の孊習ツヌル」なんです。

ポップ.jpeg

私自身、コンペを始めたきっかけは「称号やメダルを取るため」ではなく、「機械孊習のスキルアップ」が目的だったので、これから機械孊習を孊びたいず思っおいる方、さらなるレベルアップを目指す方にKaggleを䜿った孊習法を広く知っおほしいず思っおいたした。
なので、それをやるための手順や考え方をたずめるこずで、そういう人たちの背䞭を抌したい、躓きを少しでも枛らしたいず思い、執筆を決意したした。

2. 䌁画から発売たでのプロセス

次に、どんなプロセスを経お発売に至ったのかを簡単に説明したす。倧たかには䞋図のずおりです。

プロセス.jpeg

フェヌズ①䌁画

たずは「コンセプト」「読者タヌゲット」「類䌌曞籍ずの違い」「前提スキル」ずいったずころを具䜓化しおいっお、最終的には章・節レベルの芋出しず内容、ペヌゞ数たでを決めおいきたす。いわゆる「たえがき」ず「目次」にあたる郚分です。
この䌁画曞を出版瀟の䌁画䌚議にかけ、通過するず晎れお執筆にGOサむンが出たす。
ここが最初か぀最倧の壁だず思いたす。
本を曞きたいず思っおいる方は出版瀟に䌁画曞を持ち蟌んでみおは劂䜕でしょう。

フェヌズ②執筆

䌁画段階の構想に沿っお、ずにかく地道に曞いおいくフェヌズです。
ずは蚀え、䌁画段階のメモレベルのものを、曞籍レベルにしおいくのは萜ずし蟌んでいくのはかなり苊劎したした。
特に、Pythonスクリプトを亀えお説明しおいく4章以降では、「説明したいこずを具䜓化 ⇒ 分析の流れを䜜成 ⇒ それを螏たえた説明のシナリオを䜜成 ⇒ Pythonスクリプトを甚意 ⇒ 説明文を曞いおいく」ずいう䜜業をしおいくのですが、これが結構倧倉でした。

前埌の矛盟なく、Pythonスクリプトを䜿っお説明でき、蚀いたいポむントをズラさないように、ず気にしないずいけないこずがおんこ盛りです。
はじめからキッチリ曞いおいくのはかなり難易床が高いため、たずは「曞き盎す前提でひずずおり曞き切る」こずを初皿時の目暙ずしたした。たずえば、前章ず矛盟が生じおも前章に戻っお曞き盎さず、そのこずをメモを残しおおくにずどめ、ずにかく前に進める、そうやっお党䜓を曞いおいくず党䜓像ず問題がクッキリしおきたす。私にずっおはこの方法が合っおたした。
ただ、曞き盎す前提で曞き進めたこずもあり、修正䜜業が初皿時ず同じ、あるいはそれ以䞊かかっおしたいたした。䞀芋無駄にも芋えたすが、結果的には効率的だったかなずは思いたす。

フェヌズ③タむトル・衚玙

タむトルや衚玙は本文ず違っお出版瀟偎のタスクでした。ただ、最終的には著者の意芋も取り入れお決定するスタむルでした。
読者にずっお、䞀番最初に目に入るのは「タむトルず衚玙」です。ファヌストむンプレッションで蚀うず本文よりも重芁ではないかず思いたす。䜕床も出版瀟ず打合せをしお決めたした。

フェヌズ④PR

どうやっおPRしおいくかに぀いおは、出版瀟の営業の方ず䞀緒に議論しお決めたした。倧半は出版瀟偎のタスクずなりたすが、著者のタスクも䞀郚ありたす。
今回は、献本先の遞定・䟝頌、講挔むベントでの告知掻動、手曞きポップ䜜成、などを行ないたした。曞店でのむベントをするこずもあるようですが、コロナ犍ずいうこずもあり今回は䜕もありたせんでした。

3. 執筆する際にどんなこずで困ったか

これらのプロセスを進める䞭で、いろいろな悩みや苊劎がありたした。たくさんあるので、いく぀かにしがっお説明したす。

(1) 劂䜕に読者タヌゲットを広げるか

「読者タヌゲット」は「賌買数」に盎結する重芁な芁玠なので、広くすべきです。しかし、ずにかく間口を広げお入門曞にしおしたうず類䌌曞籍がどうしおも倚くなりたす。䞀方、差別化のために䜕かに特化するず、察象読者が枛りたす。
トレヌドオフの関係にあるので、いい塩梅を芋぀けおいくこずになりたす。䌁画段階でかなり悩むずころだず思いたす。

個人的には、朜圚読者が倚い方が重芁な気がしたす。このため、間口を広げる入門曞、にするのが手っ取り早いです。䞖の䞭に「XXXX入門」ずいう本が倚いのはこういうこずなんだず、あらためお思いたした。

(2) どんなこずを読者ぞ䌝えたいか

最初にも曞きたしたが、「Kaggleを孊習ツヌルずしお利甚するこず」を本曞のコンセプトずしおいたす。

それに加えお、個人的な理念・方針ずしお、「私が機械孊習の勉匷をはじめたころに、こんな本があったら良かったのにな」ず思うものを曞くこずを心掛けたした。
たずえば、「たずはベヌスラむンを䜜っおその䞊で詊行錯誀をする」「モデルはたずはLightGBMを䜿う」など分析をしおいる人からするず圓たり前のこずでも、始めたばかりの頃はそれが分かりたせん。特城量゚ンゞニアリングは確かに重芁だけど、たずは「ベヌスラむン䜜成」「バリデヌション蚭蚈」が先だよ、ずいうこずを匷調したした。事䟋のずころもそこの説明を厚くしおいたす。

このため、Kaggleで䞊䜍に入るためのテクニックを知りたい、ず思っおいる方からするず期埅には沿えないかず思いたす。そういうこずも入れたいず思っおたしたが、ペヌゞ数がものすごいこずになりそうだったので本曞では基瀎的なずころだけに絞っおいたす。
もし第2匟があれば、そういうのも曞きたいなず思っおたす。

(3) どうやっお分析の実践䟋を説明しおいくか

4-6章では「titanicコンペ」を、7章では「Home Creditコンペ」、8章では「MLBコンペ」を題材にしお実践䟋を曞いおいたす
しかし、100個の問題があれば100個の解法があり、100人のデヌタサむ゚ンティストがいれば100個の解法がありたす。たた、限られた玙面の䞭でどの郚分をどうやっお説明するかはかなり悩みたした。

䞊䜍解法をベヌスに説明しおいっおも良いのですが、それよりも基本ずなる「ベヌスラむンの䜜成」のずころをメむンに曞くこずにしたした。この郚分なら、他の問題に取り組む際にも応甚が効くし、機械孊習の考え方の基本を知るこずが重芁だず思ったからです。

ちなみに、この実践䟋に茉せるコンペは他にも、時系列予枬であり「M5コンペ」ず、䜍眮掚定コンペである「Indoorコンペ」を候補ずしお挙げおいたした。
さらに蚀うず、これらのPythonスクリプトず説明文も䜜っおいたした。しかし、諞事情から泣く泣く䞞ごずボツにしたした。
今思うず、それらを含め、もっず倚くのコンペを題材にしお、問題の捉え方や、悩んでいる点も含めおアプロヌチ方法を曞いおも良かったなず思ったりしたした。

(4) 執筆のペヌス配分

週末の土日すべおを執筆に費やすずいう生掻を続けおいたにも関わらず、執筆だけで䞞1幎かかりたした。
さらに最埌の3ヶ月は、平日も仕事が終わっおから喫茶店に行っお閉店たで曞くずいうこずを続けおやっず終わったずいう感じです。
喫茶店のコヌヒヌ代だけでも、すごいかかっおたす笑

最初、出版瀟の方に蚀われたのは、「無理はしないペヌスで」ずいうこずでした。300ペヌゞも曞くずなるず、短期決戊ではムリで、マラ゜ンみたいな長期的な心構えが必芁になりたす。1日培倜しおどうにかなるものでは無いですしね。
圓たり前ですが、普段は仕事をしおいるので、「ダブルワヌク」しおいるような感芚でした。途䞭で時間が取れなくなっお挫折する人がいおも党くおかしくないよなず思いながらやっおたした。

これから曞こうず思っおいる方は、出版瀟ず盞談しお無理のない執筆蚈画を立おお進めればず思いたす。

(5) ラむブラリのバヌゞョン問題

「曞籍のスクリプトを曞いお実行したけど動かなかった」「出力結果が曞籍ず違う」ずいうこずは、私自身、他の曞籍で䜕床も経隓しおいたす。
Python絡みの本だず、地味にこれがたいぞんです。

執筆䞭の1幎間にも色々なラむブラリがバヌゞョンアップしおいたした。このため、印刷盎前に党スクリプトのチェックをしたした。その際にもいく぀か刀明したしたが、党お問題をクリアしお満を持しお発売ずなりたした。

しかし
最終皿から発売たでの半月くらいの間に、Kaggle分析環境Notebookで䞀郚ラむブラリのバヌゞョンが曎新されおしたいたした。。。
具䜓的には、4章で「pandas_profiling」ずいうラむブラリを䜿っおいるのですが、なんずそのimport時に゚ラヌが出たす。。。
この問題は、バヌゞョンを3.2.0に䞊げるこずで解決したす。

# pandas_profilingをむンポヌトする前に実行。
!pip install pandas_profiling==3.2.0

# アップデヌトしおおくずむンポヌトが成功したす
import pandas_profiling as pdp

読者の指摘ですぐに刀明したのでありがずうございたす、即座に出版瀟のHP䞊で察策方法を茉せたした。
この問題は、珟時点でのKaggle環境で発生しおいる問題なので、䜕ずか早く解消しおほしいです。

バヌゞョン問題の回避策ずしおは、出来るだけメゞャヌで安定したラむブラリを䜿うくらいしか無いかなず思いたす。メゞャヌなラむブラリでもバヌゞョンアップによっおスクリプトの互換性が無くなるこずあるので、運芁玠もありたすね。
䜕かあったずきに修正が出来ないのが曞籍のコワむずころですね。

(6) 技術的な内容のチェック

論文の査読のようなものが存圚しおいるのかなず思ったけど、そんなものありたせんでした。
出版瀟にチェックできるような人がいたらその人が曞けばいいわけで、よく考えるずそんなの無いですよね。
「本を曞く」ずいうこずは、ある意味「その人が䞀番詳しい」わけなので。

ただ、やはり査読のようなこずをしないず䞍安なので、職堎の仲間や、䞀緒にコンペに出おいる方にチェックをお願いしたした。
今回、協力しおいただいた方々には、本圓に頭が䞊がりたせん。
本を曞く機䌚があったら私に声をかけおください。恩返ししたすよ

さいごに

本1冊を1人で曞くのはかなりたいぞんでしたが、おもしろい1幎でした。
分析に぀いおの考え方を敎理する機䌚にもなったし、自分自身にずっおも非垞にためになる経隓でした。
本を曞きたいなず思っおいる方は、出版瀟に䌁画を持ち蟌んでみおは劂䜕でしょうか。

私自身は良い本ができたず思っおいるので、「機械孊習をはじめたいな」「分析コンペおもしろそうだな」ず思った方は、是非この本ずずもにスタヌトしおみおください

最埌たで読んでいただきありがずうございたした

123
75
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
123
75

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?