たかいとの備忘録

自然言語処理や機械学習のことについて学んだことを忘れないように書いていけたらと思います.

Prob Space 対戦ゲームデータ分析甲子園(スプラコンペ) 参加レポート(最終順位11位)

はじめに

2020年8月19日(水)〜2020年10月18日(日)に開催されたProb Spaceの対戦ゲームデータ分析甲子園に参加してました.

高校入学以降テレビゲームで遊んでいないため,ドメイン知識はほとんどありませんでしたが,テーブルデータのコンペやりたかったのでこのコンペを選びました.

コンペの概要

Prob Spaceでは,様々なデータ解析のコンペがこれまでも開催されてきたようです.

対戦ゲームデータ分析甲子園の概要

本コンペでは、オンライン大会があることでも有名なゲームの対戦データを用いて、勝敗予測モデルの開発にチャレンジいただきます。

背景課題・目的

eスポーツは、2019年時点で既に$957.5M、2023年には~$1,600Mにまで拡大が予想されている急成長市場です。

国内では任天堂コナミといった企業が発売している、スプラトゥーンウイニングイレブン等が有名で、スプラトゥーンにおいてはスプラトゥーン甲子園、プレミアリーグが開催されるほどの大きな広がりを見せています。

そこで本コンペにおいては、ある有名ゲームのオンライン対戦データを用いて、勝敗を予測するアルゴリズム開発にチャレンジいただきます。

学習データの中には、ステージ、武器、ウデマエ、レベル、勝敗といった情報が含まれております。

対戦を優位に進めるために、どの武器を選択すべきか、今後の対戦に役立てられるようモデル化できればと思います。

今までプレイ経験のない方も、ぜひこのコンペをきっかけに参戦いただけますと幸いです。

その他

勝敗の予測(勝or負)である二値分類をaccuracyで評価.

最終スコアは,submitしたものの一番スコアが良かったものが自動で選ばれる(サブが多い方が多少有利).

自身の取組み

ドメイン知識なかったので,前処理とかはかなり雑です.

前処理

  • ランクは13段階に数値化

  • 各チームのレベルを合計したものを「A-total-level」,「B-total-level」として追加(その差や,割ったのをlogとったものとかも特徴量に追加)

  • ステージは,ステージ面積で数値化

  • 武器は,使用頻度で数値化(使用頻度が高い=強いかも?)

  • modeは,One hot Encoding

  • Catboostでは,武器はLabel Encoding使用

工夫点

AチームとBチームのデータを逆にし,勝敗フラグを変えることで,データ数を倍に増やしました.

これが原因で,A1プレイヤーの特徴を加味したモデルの作成を断念してしまいました.

立ち上げたトピック(情報共有&質問&雑談)で,A1プレイヤーについての言及があったので,同一プレイヤーの参加している試合の特定などもしていたのですが,上記の方法でデータ数を倍にするとその情報が入れられないので,早々に切ってしまいました(汗)

このあたり時間あれば,もっといろいろやれたのかなと思っています.

プレイヤー関係に着目したものだと,最終順位2位の TASSANさん の使っていた特徴量,なるほど感が強かったです.(効いた特徴量について(Public3位、Private2位)).

また,A1~A4やB1~B4のデータを混ぜ混ぜしても,精度向上にはつながりませんでした. 理由はいろいろ考えましたが,プレイヤーの列を変えても,チーム間のレベル差などは変わらないため,そちらを重要視してしまい,個別の武器情報が予測に与える影響が小さくなっているような気がしました(勝手な考察).

シングルモデル

LightGBM -> CV: 0.558~0.562, LB: 0.558~0.563, Private: 0.558~0.561

Catboost -> CV: 0.559~0.563, LB: 0.557~0.562, Private: 0.557~0.561

NN -> CV: あんまりよくない, LB: 0.547~0.556, Private: 0.532~0.551

NNは,スケーリングとかいろいろ試しましたが精度出ませんでした.

一番良かったsubmit

LightGBMとCatboostのアンサンブル.

LB: 0.560903, Private: 0.562738 (11位)

ちなみにこれは二番目に選ぼうと思っていたsubでした.

もし最終サブを決める必要があり,一つしかサブが選べない場合は,

LB: 0.564291, Private: 0.559445

でしたので,今回はコンペルールに救われました.

ただ,どちらも何週間も前に出したものなので,毎日のお供えサブ(適当に特徴量,ハイパラ,seedを変えたものをグリッドサーチしたときに大量生産されたもの)は,残念ながら何の意味もありませんでした.

感想

やはり,ゴミみたいな特徴量を使っている限り,一桁順位には届かないなと実感しました.

そもそも今回のような予測が難しい問題は,コンペの順位も運みたいなところが少しあるかなと参加した当初は思っていましたが,LBスコアが0.58超えた参加者が現れた時点で,負けを確信しました.

当初は弱学習器の多数決で何とかならないかなと思っていましたが,どのモデルの出力も相関が高くなってしまったため,特徴量作成の重要性を再認識したコンペでした.

また,コンペ開催中に初めてトピック(discussion)を作りましたが,多くの方からコメントなどをもらえたことで,ドメイン知識はないものの,いつもよりはデータの中身を多方面から見ることができました.

atamCupの抽選落ちたので,しばらくは資格取得の勉強と博士論文の作成に集中しようと思っておりますが,一段落したらまた何かしらのコンペに参加しようと思っています.

最後まで読んでいただきありがとうございました.