Save 37% off PRO during our Black Friday Sale! »

atmaCup#10 振り返り会 3rd place solution

E55f04d00716de969f69dd3c4475dc92?s=47 calpis10000
March 24, 2021

atmaCup#10 振り返り会 3rd place solution

atmaCup#10 振り返り会(2021-03-24)で発表したスライドです。

イベントについてはこちら:
https://atma.connpass.com/event/207916/

コンペについてはこちら:
https://www.guruguru.science/competitions/16

連絡先:
https://twitter.com/CALPIS10000

E55f04d00716de969f69dd3c4475dc92?s=128

calpis10000

March 24, 2021
Tweet

Transcript

  1. atmaCup#10 振り返り会 3rd Place Solution 2021-03-24 @CALPIS10000

  2. ⾃⼰紹介 @CALPIS10000(Kazutomo Dogome) • Data Analyst@受託分析会社 • Kaggle Novice •

    atmaCupは3回⽬の参加: #7 Private 49 #8 Private 62 #10 Public 9 → Private 3rd (今回)
  3. 話したいこと • ビギナーなりに、どのような姿勢で取り組んだか • ⼿の届きやすい範囲の解法として、参考にして頂けると幸いです! コンペの取り組み⽅ • 最終的な特徴量(⼿短に) • 独⾃性を出せた部分

    効果のあった取り組み
  4. コンペの取り組み⽅ - ⽬標設定・基本姿勢 - タイムライン&実施内容

  5. ⽬標設定・基本姿勢 • 過去参加したコンペではアイディアを半分も試せずに終わることが多く、それを脱却 したかった。 • 具体的な⽬標としては… 1. 全テーブル・全カラムで特徴を作る(→ 達成 !!)

    2. 50sub使い切る(→ 結果: 33sub、達成ならず) 開始時に⽴てた⽬標: 「やりたい事を全部試す!」 • ⼀回の試⾏に時間をかけず、試⾏回数を増やすことを意識する。 • ただし、データの整合性、再現性には気を配る。 達成に向けた基本姿勢:「Quick & (ほどほどに)Dirty」
  6. タイムライン&実施内容(1~4⽇⽬) • Baseline: 最低限の前処理で作成(特徴追加後の違いが⾒えやすいように) • 累計Sub回数: 1回、スコア: [CV:1.1980 Public:1.1448] 1⽇⽬:

    Train/TestのEDA & Baselineモデル作成 • 「⾃⼒で作れるもの → ディスカッションを参考にしたもの」の順で作成。 • SubmitはCVが⼀定以上(0.005~0.010程度)向上する毎に⾏う。 • この進め⽅で、CVとLBが乖離することはほぼ無かった。 • 逆に、気が迷って0.001程度のCV向上でSubmitすると、スコアは伸びないor悪化した。 • チマチマsubmitするよりは、⼤きな成果が出た時にsubmitするのが良い? • 累計Sub回数: 16回、スコア: [CV:0.9978 Public:0.9625] 2~4⽇⽬: 簡単に作れる特徴量を量産
  7. タイムライン&実施内容(5~7⽇⽬) • ネタ切れしたので、気分転換に。 • 累計Sub回数: 23回、スコア: [CV:1.0003 Public:0.9599] 5⽇⽬: ハイパラチューニング

    • ⾊彩系を深掘りしたところ⼿応えがあり、そこに注⼒。 • 累計Sub回数: 29回、スコア: [CV:0.9795 Public:0.9432] 6~7⽇⽬: データを深掘りした特徴を検討 • 累計Sub回数: 33回、スコア: [CV:0.9754 Public:0.9432] • Public LBは向上しなかったが、CVを信じて最終Subとして選択。 • 蓋を開けると、Private LBは向上していた。 (0.9623 → 0.9597) 7⽇⽬: 再度ハイパラチューニング&最終Sub選択[CV:0.975 Public:0.942]
  8. コンペの取り組み⽅: サマリ ⼀回の試⾏に時間をかけすぎず、試⾏回数を増やすことを意識した。 ・atmaCup#8 では13 sub → 今回は33 sub チマチマSubmitするのではなく、CVが⼀定以上向上した段階でSubmitした。

    ・CVが⽬⽴って向上しないものは、基本LBへの影響なし 結果として… 過去のコンペでは、やりたい事を全部試し切れなかったが、 今回は全テーブルで特徴作成できた&⾃分なりに考案した特徴も試すことができた。
  9. 効果のあった取り組み - 最終的な特徴量 - 独⾃性を出せた部分

  10. 最終的な特徴量(Importance) • Multi Labelの圧縮(material他) • title, descriptionの圧縮 • sub-titleから数値抽出 •

    ⾊彩系の特徴(palette, color) • Target Encoding • principal_maker系のLabel Encoding 上位層のSolutionはこれらの特徴を概ね 網羅していた印象。 その上で、 - 独⾃性のある特徴を作れたか - 不要なものを正しく除外できたか が決め⼿となったと思われる。
  11. 独⾃性を出せた部分 La*b*⾊空間への変換は、 (⾒たかぎり)誰もやっていなさそう &効果があったので、今回説明します。 • Multi Labelの圧縮(material他) • title, descriptionの圧縮

    • sub-titleから数値抽出 • ⾊彩系の特徴(palette, color) • Target Encoding • principal_maker系のLabel Encoding
  12. La*b*⾊空間とは? • Lab⾊空間(エル・エー・ビーいろくうかん、英: Lab color space)は補⾊空間の⼀種で、 明度を意味する次元 L と補⾊次元の a

    および b を持ち、CIE XYZ ⾊空間の座標を⾮線形 に圧縮したものに基づいている。 • RGBやCMYKとは異なり、Lab⾊空間は⼈間の視覚を近似するよう設計されている。知覚 的均等性を重視しており、L成分値は⼈間の明度の知覚と極めて近い。したがって、カ ラーバランス調整を正確に⾏うために出⼒曲線を a および b の成分で表現したり、コン トラストの調整のためにL成分を使ったりといった利⽤が可能である。 ※引⽤元: 「Lab⾊空間」『フリー百科事典 ウィキペディア⽇本語版』。2021年3⽉24⽇ 13:20 (UTC)取得 URL: https://ja.wikipedia.org (ざっくり⾔うと…) • RGBのような⾊空間の⼀種。 • 明度を表すL, ⾊合いを表すa*, b*のベクトルで形成される(a*: 緑 ⇄マゼンダ、 b*: ⻘⇄⻩⾊) • L, a*, b*のユークリッド距離が、⼈間が感じる⾊差と概ね⼀致する。 • ≒ ⼈間の知覚に近くなるように設計されている。 → ⾊合いによる作品の印象をより正しく表現できるのでは?
  13. color, paletteの⾊変換 • デフォルトだとRGBで値が与えられている。 • ディスカッションでも、他の⾊空間に変換する⽅法が紹介されていた。 • HSV, YIQ, HLS(colorsysによる変換)

    • La*b*への変換は⾏われていなかった。 • 今回の解法では、↑に加えてOpenCVによる⾊変換を⾏った。 • colorsysよりも多種類の変換が可能。 • 対象の⾊空間: La*b*, Lu*v*, YCrCb, XYZ, grayscale
  14. color, paletteの⾊変換 次元を⼀つ追加して、 画像形式のarrayに無理やり変換 あとは、OpenCVの画像⾊変換⽤メ ソッドで変換するだけ • OpenCVは画像ベースの⾊変換しかできないため、 無理やり画像形式のarrayに変換して対応した。

  15. color, paletteの⾊変換 • スコアの変化 CV Public LB Private LB 追加前

    1.0003 0.9599 (33位相当) 0.9834 (30位相当) 追加後 0.9754 0.9432 (9位相当) 0.9623 (3位相当) • 上がり幅からすると、⾊関連の特徴が⼤きな決め⼿となっている。 • Importanceの上位に現れていたのは… • La*b*, YIQ, HLS, HSV • いずれの⾊空間も明度(輝度)と⾊合いのベクトルが独⽴。 • 明度に関する上位特徴は、「var_color_hls_l」のみ。 → 仮説: ⾊合いの軸を様々な⾓度で表現することで、ユーザーが作品に抱く印象を解像度⾼く表現できた?
  16. 終わりに ご静聴ありがとうございました! • 楽しいコンペを開催いただき、ありがとうございました! • 参加者の皆様、対戦ありがとうございました! • 今後の抱負: • ⾃然⾔語処理系の⼿法(特にW2V,

    BERT)をちゃんと理解せずに使って いたので、理解したい。 • ディスカッションを⼀度も書かなかったため、今後は積極的に描くよ うにしたい。