一般的なよくある質問
-
現在進行中のコンペの話をしていいの?
- 一般的には、public sharingはOK、(チーム外での)private sharingはNG。
- public sharingは、KaggleのForum(NotebookやDiscussion)上で議論したり情報を公開したりすること。
- private sharingは、参加者全員の目に入らない場所で情報交換すること、twitterやslack、メールや対面とか。
- コードやデータはもちろん、アイデアや考察も良くない。
- とはいえ、twitterで少しつぶやいたくらいで気づかれるわけではないので、良識に任されている
-
public leaderboardとprivate leaderboardってなに?
- 評価用データは2つに分けられている。
- 片方のデータへのスコアで順位が表示される。(public leaderboard)
- 残りのデータへのスコアで最終的な順位が決定される。(private leaderboard)
- public leaderboardに過学習していると、privateで真っ逆さまということも
- 各コンペのLeaderboardのところに、"This leaderboard is calculated with approximately 20% of the test data."のように割合が書かれている
-
btb(beat the benchmark)ってなに?
- Kaggle Notebookに強くて優しい人が序盤においてくれる、基本的なことをやってそこそこのスコアが出るスクリプト
- 勉強になるので参考にすると良いです。これを自力で超えられれば初心者ではなさそう 。
-
何から始めれば良い?
- 次の順序でやってみましょう。簡単であれば飛ばして次の項目に行くのも一つの手です。
- kaggle公式のチュートリアル(https://www.kaggle.com/learn/overview )
- Titanic コンペ(https://www.kaggle.com/c/titanic/kernels?sortBy=voteCount&group=everyone&pageSize=20&competitionId=3136 )
- 得票数順などでNotebookを表示してみてトップの方のNotebookをCopy&Editして学んでみましょう
- 後はご自由に(ここまで来れば次に何をやるべきか分かるはず)。
-
コードを書き終わったらどうやって提出する?
- kaggleのNotebook上でコードを使っている場合、画面の右上に”Commit”というボタンがあります。このボタンを押し、コミットが完了するのを待ちます。
- 終わったことが確認できたら、次は左上にある”<<”という矢印ボタンを押します。すると、画面遷移し、そこには”Notebook”,”Code”,”Data”という小タブが見られると思います。その中の”Output”を選択すると、作成したファイルが表示されますので、”submit to competition”ボタンを押しましょう。これで提出完了です。
-
Commitのボタンを押しても動作が完了しない。どうすれば良い?
- これは時折起こる現象です。次のようにして対処してみましょう。
-
- 画面右下に丸型の矢印の更新ボタンを押してみる。
-
- ブラウザの更新ボタンを押す。
-
- 数時間おいてもう一度コミットする。
-
- これは時折起こる現象です。次のようにして対処してみましょう。
-
メダル対象のコンペってどれ?
- コンペのページ下部で、This competition counts towards tiers となっているコンペのみメダルを受け取ることができます。does not count となっているものでは受け取れません。 (Featuredコンペの他、Researchコンペなどがあり、コンペの種類で判断できないこともあります。)
- Kaggle Progression System
-
Note that InClass, playground, and getting started competitions do not award medals. (翻訳)InClass, playground, and getting startedコンペはメダルを受け取ることができません。
-
-
Featuredコンペなど、コンペの種類ってどこでわかるの?
- Quora-insincere-questions-classification を例に使います。
- Topページを見てください、タイトル左上、下画像の赤色で囲った部分に書いてあります。
- 参考
- Quora-insincere-questions-classification を例に使います。
-
Kaggleで勝つにはお金掛かるの?
- ある程度マシンパワーがあった方が勝ちやすいのは事実
- でもノートPCだけでMasterになった人もいる
- 画像系コンペ以外なら、GCPの無料クーポン$300+preemptive instanceで十分
-
ローカルPCとクラウド、どちらを使うとよい?
- どちらも長短あるが、特に初心者はローカルPCが1台あると良いと思う。
- ローカルPC
- お金を気にせずに計算・試行錯誤できる
- 発熱・騒音・電気代の問題がある
- PCの購入という初期費用が必要
- 外出時にジョブ管理をしずらい
- クラウド
- スケールでき、お金を投入して計算を速くできるので、コンペ上位の時など助かる
- 発熱・騒音・電気代を気にしなくてよい
- 場所をとらない
- 初期投資は必要ないものの従量課金。クーポンが使えたりして安くすむ場合もある。
-
クラウドを使う場合、どこを使えば良いの?
- kaggleのNotebook
- 無料、GPU・TPUを使用可能、週30時間程度の使用制限がある
- PythonとRを使用可能
- 公式の環境であり初めはここを使う人が多い。処理が遅いとか自由度が低いとかを感じると、他を使うことに。
- 公式のドキュメンテーションはこちら
- Google Colabratory
- 無料で使えるGoogleが用意したJupyterノートブック環境、GPU・TPUを使用可能
- Pythonのみ使用可能
- 作った特徴やモデルなどを保存して置く場合に、kaggleのnotebookよりも柔軟に使えたりする
- 月数百円課金してディスクスペースを増やすと便利になる
- 処理速度はkaggleのNotebookとかわらないかも
- Colab ProやColab Pro+という月額課金のサービスもある。GPUを使う場合は、無料版だとすぐに使用が制限されてしまう印象
- Google Cloud Platform (GCP)
- kagglerが使っているクラウドといえばこれ
- preemptive インスタンスにすればたまに落ちるけど安い
- 課金によって、CPU・GPUを増やすなど自分が必要な計算資源を得られる
- アマゾンウェブサービス (AWS)
-
有名なのは従量課金の仮想マシンサービスであるEC2
- CPUやメモリに振ったもの、GPU付きのものなど様々なインスタンスタイプが存在
- CudaやDeeplearningフレームワークが既にインストールされたマシンイメージ(Deep Leaning AMI)もある
- スポットインスタンスにすればたまに落ちるけど安い
-
Jupyterノートブック環境作成、学習、デプロイを簡単に行えるサービスとしてSageMakerが登場した
-
- kaggleのNotebook
技術的なよくある質問
-
ハイパーパラメータの探索ってどうするの?
- 手動で頑張る
- 過去のコンペのNotebookから探してくる
- hyperopt
- gpyopt
- Optuna
-
EDA(Exploratory Data Analysis - 可視化してデータを見ること)って何のためにやるの?
-
特徴量を作るため、気づきを得るため
- 気づきの例 - Quoraコンペで埋め込まれたグラフ特徴、氷山コンペでのリーク発見、Instacartコンペでの商品間の関連性、リクルートコンペでの予約対来客の比率が減衰すること
-
データの「構造」や「意味」を知る上でのEDAはしますが、「傾向」を掴むためのEDAにはそこまで力を入れないとか
-
Kaggle上の順位を上げるためであればEDAをせずに特徴量をどんどん作る方が有効かもしれないが、ビジネスでデータ分析をやることを考えると大事
-
-
EDAは何のツールでやるの?
- jupyter notebookを使うことが多いか
- ライブラリは、pythonだとmatplotlib, seabornなど、Rだとggplot2など
-
ディレクトリ構成どうするの?
-
xgboostでカテゴリ変数をOne-Hot Encodingせずにそのまま入れていることがあるけど、いいの?
- 決定木なので不等式で2回分岐すれば等式が表現できること、xgboostの性能の高さから、わりと大丈夫
- one hotはメモリ的に厳しい場合があるので、普通にlabel encodingだけでやってしまうことはままある
上記以外実際に#begginers-help であった質問と回答はこちらにまとめております。