Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DSB2019 10th Solutionの一部とShakeについて
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
pao
February 29, 2020
Technology
810
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DSB2019 10th Solutionの一部とShakeについて
pao
February 29, 2020
More Decks by pao
See All by pao
JOAI2026 講評
go5paopao
0
380
いろんなものと両立する Kaggleの向き合い方
go5paopao
3
2.6k
データサイエンティストとは何か論争にAI(gpt-2)で終止符を打とうとした話
go5paopao
0
260
短期間コンペの戦い方
go5paopao
13
14k
atmaCup#9 1st place solution
go5paopao
6
3.8k
Kaggle Malware competition 2th→1485th solution
go5paopao
2
9.7k
Other Decks in Technology
See All in Technology
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
24
7.6k
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
7.6k
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
200
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
200
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
1
1.1k
週末にループ・エンジニアリングの理解を深めるためのスライド
nagatsu
0
360
IaC コードを資産へ:AWS CDK 社内ライブラリと横断展開 / aws-summit-japan-2026
gotok365
10
1.6k
AIのReact習熟度を測る
uhyo
2
690
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
140
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
160
本当の”仕事”を手放せる未来が見えた
mu7889yoon
0
140
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
210k
Evolving SEO for Evolving Search Engines
ryanjones
0
220
KATA
mclloyd
PRO
35
15k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
A designer walks into a library…
pauljervisheath
211
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
190
How STYLIGHT went responsive
nonsquared
100
6.2k
Optimizing for Happiness
mojombo
378
71k
Transcript
Shake と 10th Place Solutionの一部 pao DataScienceBowl2019 振り返り
• 名前 ◦ Pao • 所属 ◦ JTC(もうすぐ卒業予定) • 悩み
◦ 子供がかわいすぎる • 特技 ◦ Shake 自己紹介
Solutionの一部とShakeについて話します ↓に概要書いてます https://www.kaggle.com/c/data-science-bowl-2019/discussion/127332 183 => 10位でSolo Gold!! ShakeUpするとは思っていたが、どれくらい上がるかは分かってなかった 結果
• 10th Place Solutionの一部 • Shakeについて
• 10th Place Solutionの一部 • Shakeについて
• Model: LightGBM x 6 average • Validation ◦ StratifiedGroupKFold
◦ 50個のTruncatedしたSubSet作成し、その平均をCVスコアとした ◦ EarlyStoppingは別の1つのSubSetに対して実施 • QWK Threshold ◦ 固定値 (Optimizationして出た値を丸めたもの) ▪ TrainへのOverfitをさけた • Feature ◦ よかったもの:標準化した過去の成績(センター試験のニュース見て思いついた) ◦ 累積系は基本入れず、比率系の特徴だけを入れた(過去の Play回数に出来るだけ依存しない) ◦ Feature Selection(次ページ) • Other ◦ FeatureFraction 1.0 (Titleの列が必須だった?) ◦ Testデータを入れる Solution概要
• Feature Importance上位300件くらいを利用 ◦ CVだけあげないようにするために、 Validation使う系のSelectionは避けた • 懸念:普通に学習すると、TruncatedされてないTrainデータでのImportanceになって しまう ◦
Trainのほうが過去Play回数が多いデータが多い ◦ Play回数が多いデータに効く特徴が上位に来やすくなる • 対策:TruncatedされたTrainデータで学習したときのImportanceを利用する ◦ Submit時とは別の特徴選択用の学習 ◦ 5iteration毎に新しくTruncatedしたデータセットに変更して学習 ▪ LightGBMのinit_modelパラメータを使用 →比較していないので効果は分からなかったが意味があったと信じてる Feature Selection
• 本当にランダムにユーザで分割されているのか? ◦ Train/Publicであまりに分布が違いすぎる。。 →シミュレーションしまくった。 Trainからランダムに1000個のinstallation_idをPickupしたとき、 • PublicTestに近い分布にどれくらいの確率でなるのか? • PublicLBに近いQWKのスコアがどれくらい出るのか?
• Testは本当にランダムなAssessmentでTruncatedしたものなのか? ◦ ランダムにsession_idをとってきて、その次の Assessmentにしたのではないか? ◦ 結果のないAssessmentも含めてランダムでとってきて、結果がない場合は次の Assessmentを使ったの ではないか? PublicLBはどこまで信用できるのか?
• 10th Place Solutionの一部 • Shakeについて
ここ1年のコンペShake歴 コンペ Public Private Shake Result Malware 2 1475 ↓
1473 Instant Gratification 42 64 ↓ 22 Predicting Molecular Properties 29 29 - atmaCup #2 4 1 ↑ 3 kaggleDaysTokyo 7 5 ↑ 2 DataScienceBowl2019 183 10 ↑ 173 atmaCup #3 9 3 ↑ 6
調子乗って書いていますが、 Shakeは運ゲーなところも、かなりあると思います。 (これを書いた翌週にはatmaCupでShakeDownしてるかも)
ShakeUp/ Downにはいろんな要因がある • コンペ自体の性質によるもの ◦ 評価指標が不安定 ◦ Publicのデータ量が少ない ◦ PublicとPrivateでデータの質が違う
▪ 相関がある時系列的なもの ▪ 相関がないもの • 参加者要因 ◦ ハイスコアカーネル&コピー勢 • 個人要因 ◦ PublicにOverfitした特徴量・モデルを作る
ShakeUp/ Downにはいろんな要因がある • コンペ自体の性質によるもの ◦ 評価指標が不安定 ←努力できるが仕方ない部分も多い ◦ Publicのデータ量が少ない ←多少努力できるが仕方ない部分も多い ◦ PublicとPrivateでデータの質が違う
▪ 相関がある時系列的なもの ←頑張れる ▪ 相関がないもの ←仕方ない(クソコンペ) • 参加者要因 ◦ ハイスコアカーネル&コピー勢 ←気をつけれる • 個人要因 ◦ PublicにOverfitした特徴量・モデルを作る ←気をつけれる
ShakeUp/ Downにはいろんな要因がある • コンペ自体の性質によるもの ◦ 評価指標が不安定 ←努力できるが仕方ない部分も多い ◦ Publicのデータ量が少ない ←多少努力できるが仕方ない部分も多い ◦ PublicとPrivateでデータの質が違う
▪ 相関がある時系列的なもの ←頑張れる ▪ 相関がないもの ←仕方ない(クソコンペ) • 参加者要因 ◦ ハイスコアカーネル&コピー勢 ←気をつけれる • 個人要因 ◦ PublicにOverfitした特徴量・モデルを作る ←気をつけれる DSB2019での主な要因
ハイスコアカーネル&コピー勢 • 相関の高い類似SubmissionがLBを占める ◦ Privateでその集団に勝てるかどうかで一気に順位が変わる • ハイスコアカーネルはPublicLBにOverfitting気味である ◦ 毒入りのときもある ◦
謎の特徴量、ハイパーパラメータ、後処理など注意 参考にするのは解釈ができる部分だけにしたほうがいい DSBはまさにこれ
PublicにOverfitした特徴量・モデルを作る • CV気にせずサブミットしまくり、LBをあげる • 何か分からないけど、スコアが上がった ◦ 解釈できない場合、危険(特にテーブルデータ) よくある要因 個人的に気をつけていること •
出来るだけ仮説ベースで実験する ◦ 「何かわからんがやってみた!」は危険 ▪ 頭回っていないときにやりがちなので注意 • 自分の信じる指標・方針を最初に決めておく ◦ 終盤にTrustLBからTrustCVに切り替えても手遅れだったりする ◦ TrustLBかTrustCVの二択だけでなく、両方使うことも含めて決める • 最終サブ選択 ◦ 状況次第だが、Shakeしそうなときは出来るだけ相関の低い2つのものを選ぶ
その他 • ShakeDownして自ら辛い経験をすることで次から気を つけられるようになる ◦ Malware以降、異常に考えるようになった ShakeDownの数だけ強くなれる
End