関連サイト
本書の関連ページが用意されています。
内容紹介
データ分析競技のヒント、テクニック、ベストプラクティスを解説!
Grandmaster/Master 31人のインタビューも掲載。Kagglerの視点を学ぶ
◎ノートブック、データセット、ディスカッションフォーラムの活用を解説
◎モデルの評価指標、検証戦略、ハイパーパラメータ最適化について詳述
◎コンピュータビジョン、自然言語処理、シミュレーションなどもカバー
◎自身のポートフォリオを作成し、キャリアにつなげる方法を紹介
世界中の何百万人もの人々がKaggleに参加しています。
データ分析スキルを向上させ、素晴らしいコミュニティとネットワークを作り、
キャリアアップに役立つ貴重な経験を得ようとしています。
本書では、Grandmasterの著者2人がさまざまなモデリング戦略のほか、
これまでに蓄積されたテクニック、スキルを解説。
Kaggle特有のヒントだけでなく、より一般的なテクニックも学べます。
Kaggleのランクを上げたい、データサイエンスのスキルアップを図りたい、
既存のモデルの精度を上げたい、といった方への格好の一冊です。
「本書を最後まで読めば、自信を持ってKaggleに参加できるようになるはずです。
そして、Kaggleに自信を持って参加することには、多くの見返りがあります。
1つ目は、Kaggleが機械学習の最も実践的な開発を把握するための非常に効果的な方法であること、
2つ目は、Kaggleがユーザーに『試行錯誤で学ぶ』方法を提供することです」
―Kaggle創設者兼CEO アンソニー・ゴールドブルーム(序文より一部抜粋)
◎本書は『The Kaggle Book: Data analysis and machine learning
for competitive data science』の翻訳書です。
書誌情報
- 著者: Konrad Banachewicz, Luca Massaron(著), 株式会社クイープ(訳)
- 発行日: 2023-02-21 (紙書籍版発行日: 2023-02-21)
- 最終更新日: 2023-02-21
- バージョン: 1.0.0
- ページ数: 456ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
・Kaggleに参加しそこで学びたいと考えている方 ・すでにKaggleのユーザーである方々
著者について
Konrad Banachewicz
アムステルダム自由大学にて統計学の博士号を取得。その後、さまざまな金融機関でデータ分析の問題に取り組む。電子商取引会社eBayのリードデータサイエンティストを経て、現在はデータサイエンスのコンサルタント会社TNG Quant Consultancyに勤務。
Luca Massaron
10年以上の経験を有するデータサイエンティスト。現在、オンライン銀行illimity Bankのデータサイエンス&モデリング・シニア・エキスパート。機械学習のGoogleデベロッパーエキスパートであり、AIやアルゴリズムなどに関する多数の書籍の共著者でもある。
株式会社クイープ
1995年、米国サンフランシスコに設立。コンピュータシステムの開発、ローカライズ、コンサルティングを手がけている。2001年に日本法人を設立。主な訳書に、『Python 機械学習プログラミング PyTorch&scikit-learn編』『プログラマーなら知っておきたい40のアルゴリズム 定番・最新系をPythonで実践!』などがある(いずれもインプレス発行)。
目次
序文
- 著者紹介/レビュー担当者
- インタビューに協力してくれた方々
- 謝辞
はじめに
目次
Part1 コンペティション入門
第1章 Kaggleと他のコンペティション―経緯、仕組み、意義
- 1.1 データサイエンスコンペティションプラットフォームの台頭
- 1.1.1 Kaggleコンペティションプラットフォーム
- 1.1.2 他のコンペティションプラットフォーム
- 1.2 Kaggleの紹介/1.2.1 コンペティションのステージ
- 1.2.2 コンペティションの種類
- インタビュー:Parul Pandey
- 1.2.3 提出とリーダーボードの競争力学
- 1.2.4 計算リソース
- 1.2.5 チーム編成と人脈作り
- インタビュー:Paweł Jankiewicz
- 1.2.6 称号とランキング
- 1.2.7 批判とチャンス
- 1.3 まとめ
第2章 Kaggle Datasetsでデータを整理する/2.1 データセットをセットアップする
- 2.2 データを収集する
- インタビュー:Andrew Maranhão
- 2.3 データセットを解析する準備
- 2.4 KaggleのデータセットをGoogle Colabで使う
- 2.5 法的な注意事項
- 2.6 まとめ
第3章 Kaggle Notebooks
- 3.1 ノートブックをセットアップする
- 3.2 ノートブックを実行する
- 3.3 ノートブックをGitHubに保存する
- 3.4 ノートブックをできるだけうまく活用する
- 3.4.1 Google Cloud Platformへのアップグレード
- 3.4.2 次の一手
- インタビュー:Martin Henze
- 3.5 Kaggleのラーニングコース
- インタビュー:Andrada Olteanu
- 3.6 まとめ
第4章 ディスカッションフォーラムを活用する/4.1 フォーラムの仕組み
- 4.2 コンペティションでのディスカッションアプローチ
- インタビュー:Yifan Xie
- 4.3 ネチケット
- 4.4 まとめ
Part2 コンペティションのためのスキルを磨く
第5章 コンペティションのタスクと指標
- 5.1 評価指標と目的関数
- 5.2 基本的な種類のタスク
- 5.2.1 回帰/5.2.2 分類
- 5.2.3 序数/5.3 Meta Kaggleデータセット
- 5.4 まだ見たことがない指標に対処する
- インタビュー:Rohan Rao
- 5.5 回帰の指標
- 5.5.1 MSEと決定係数
- 5.5.2 RMSE
- 5.5.3 RMSLE/5.5.4 MAE
- 5.6 分類の指標(ラベル予測と確率)/5.6.1 正解率
- 5.6.2 適合率と再現率
- 5.6.3 F1スコア/5.6.4 LogLossとROC-AUC
- 5.6.5 マシューズ相関係数
- 5.7 多クラス分類の指標
- インタビュー:Andrew Lukyanenko
- 5.8 物体検出問題の指標
- 5.8.1 IoU
- 5.8.2 ダイス係数
- 5.9 マルチラベル分類とレコメンデーション問題の指標
- 5.9.1 MAP@K/5.10 評価指標を最適化する
- 5.10.1 カスタム指標とカスタム目的関数
- 5.10.2 予測値の後処理
- インタビュー:Sudalai Rajkumar
- 5.11 まとめ
第6章 よい検証を設計する
- 6.1 リーダーボードの捉え方と戦略
- 6.2 コンペティションでの検証の重要性
- インタビュー:Dmitry Larko
- 6.2.1 バイアスとバリアンス
- 6.3 さまざまな分割戦略を試す
- 6.3.1 基本的な訓練データとテストデータの分割/6.3.2 確率的評価手法
- インタビュー:Ryan Chesler
- 6.4 モデル検証システムのチューニング
- 6.5 敵対的検証を使う
- 6.5.1 実装例
- 6.5.2 訓練データとテストデータの分布の違いに対処する
- インタビュー:Giuliano Janson
- 6.6 漏れに対処する
- 6.7 まとめ
第7章 テーブルコンペティションでのモデリング
- 7.1 Tabular Playground Series
- 7.2 再現性を確保するためにランダム状態を設定する
- 7.3 EDAの重要性
- 7.3.1 t-SNEとUMAPによる次元削減
- 7.4 データのサイズを減らす
- 7.5 特徴量エンジニアリングを適用する
- 7.5.1 簡単に導出できる特徴量
- 7.5.2 行と列に基づくメタ特徴量
- 7.5.3 ターゲットエンコーディング
- 7.5.4 特徴量の重要度に基づいてソリューションを評価する
- インタビュー:Bojan Tunguz
- 7.6 擬似ラベリング
- 7.7 オートエンコーダによるノイズ除去
- 7.8 テーブルコンペティションのためのニューラルネットワーク
- インタビュー:Jean-François Puget
- 7.9 まとめ
第8章 ハイパーパラメータ最適化
- 8.1 基本的な最適化手法/8.1.1 グリッドサーチ
- 8.1.2 ランダムサーチ
- 8.1.3 半減探索
- インタビュー:Kazuki Onodera
- 8.2 重要なパラメータとそれらの使い方/8.2.1 線形モデル/8.2.2 サポートベクトルマシン(SVM)
- 8.2.3 ランダムフォレストとExtra Trees
- 8.2.4 勾配ブースティング決定木(GBDT)
- インタビュー:Alberto Danese
- 8.3 ベイズ最適化
- 8.3.1 Scikit-Optimize を使う
- 8.3.2 ベイズ最適化探索のカスタマイズ
- 8.3.3 ベイズ最適化をニューラルアーキテクチャ探索に拡張する
- 8.3.4 KerasTunerを使って軽量で高速なモデルを作成する
- 8.3.5 OptunaでのTPEアプローチ
- インタビュー:Ruchi Bhatia
- 8.4 まとめ
第9章 ブレンディングとスタッキングによるアンサンブル
- 9.1 アンサンブル法の簡単な紹介
- インタビュー:Rob Mulla
- 9.2 モデルの平均化によるアンサンブル
- 9.2.1 多数決
- 9.2.2 モデルの予測値の平均を求める
- 9.2.3 加重平均/9.2.4 交差検証戦略で平均を求める
- 9.2.5 ROC-AUCによる評価で平均化を修正する
- 9.3 メタモデルを使ったモデルのブレンディング
- 9.3.1 ブレンディングのベストプラクティス
- 9.4 モデルのスタッキング
- 9.4.1 さまざまなスタッキング
- 9.5 複雑なスタッキング・ブレンディングソリューションの作成
- インタビュー:Xavier Conort
- 9.6 まとめ
第10章 コンピュータビジョンのモデリング/10.1 拡張戦略
- 10.1.1 Kerasの組み込み実装
- 10.1.2 Albumentationsライブラリ
- インタビュー:Chris Deotte
- 10.2 分類
- 10.3 物体検出
- 10.4 セマンティックセグメンテーション
- インタビュー:Laura Fink
- 10.5 まとめ
第11章 自然言語処理のモデリング/11.1 感情分析
- インタビュー:Abhishek Thakur
- 11.2 オープンドメイン質問応答
- インタビュー:Shotaro Ishihara
- 11.3 テキスト拡張戦略/11.3.1 基本的な手法
- 11.3.2 nlpaug
- 11.4 まとめ
第12章 シミュレーションと最適化のコンペティション
- 12.1 Connect Xコンペティション
- 12.2 Rock, Paper, Scissorsコンペティション
- 12.3 Santa 2020コンペティション
- 12.4 より複雑なゲーム
- インタビュー:Firat Gonen
- 12.5 まとめ
- Part3 コンペティションをキャリアに活かす
第13章 自分のプロジェクトとアイデアのポートフォリオを作成する/13.1 Kaggleを使ってポートフォリオを構築する
- インタビュー:Gilberto Titericz
- 13.1.1 ノートブックとディスカッションを活用する
- 13.1.2 データセットを活用する
- インタビュー:Gabriel Preda
- 13.2 Kaggleの外でオンラインプレゼンスを確立する
- 13.2.1 ブログとパブリケーション
- 13.2.2 GitHub
- 13.3 コンペティションのアップデートとニュースレターを監視する
- 13.4 まとめ
第14章 キャリアアップの機会を見つける
- 14.1 コンペティションに参加している他のデータサイエンティストとつながる
- インタビュー:Yirun Zhang
- インタビュー:Osamu Akiyama
- インタビュー:Mikel Bober-Irizar
- インタビュー:Dan Becker
- インタビュー:Jeong-Yoon Lee
- 14.2 Kaggle Daysや他のKaggleミートアップに参加する
- 14.3 注目を集めて他の仕事の機会を得る
- 14.3.1 STARアプローチ
- 14.4 まとめ(と別れの言葉)