Upgrade to Pro — share decks privately, control downloads, hide ads and more …

atmaCup#8振り返り〜個人的なテーブルコンペの取組み方と解法〜

9b8da7bd641dbc86b1ab9d7930aa96ca?s=47 tomo20180402
December 23, 2020

 atmaCup#8振り返り〜個人的なテーブルコンペの取組み方と解法〜

9b8da7bd641dbc86b1ab9d7930aa96ca?s=128

tomo20180402

December 23, 2020
Tweet

Transcript

  1. atmaCup#8 ݸਓతͳςʔϒϧίϯϖͷऔ૊Έํͱղ๏ !UPNP GPSCFHJOOFST

  2. ໨࣍ 1. ίϯϖͷऔ૊Έํͱղ๏ ɹ1-1. σʔλΛݟΔ ɹ1-2. ಛ௃ྔΛ࡞Δ 2. ॳ৺ऀͷํʹΦεεϝ͍ͨ͜͠ͱ 

  3. 0. ࣗݾ঺հ • @tomo20180402 • ~2020.8 : SEɺ2020.9~ : σʔλ෼ੳपΓͷΤϯδχΞ

    • σʔλ෼ੳίϯϖ͸2019.5͝Ζ͔Β΍͍ͬͯΔ • kaggle competitions expert (soloɿ*2ɺ*2) • atmaCupͷ݁ߏͳϔϏʔϢʔβ • ΦϨϯδδϡʔε͸͋·Γҿ·ͳ͍ ˡࠓճ 
  4. 1. ίϯϖͷऔ૊Έํͱղ๏ 

  5. ͷલʹ… • ίϯϖͰ΍Δ͜ͱΛͬ͘͟Γ֬ೝ • ᶅΛୡ੒͢ΔͨΊɺᶃˠᶄˠᶅͱऔΓ૊ΜͰ͍͘ ᶅ999Λ༧ଌ͍ͨ͠ ᶄ༧ଌʹޮ͘ಛ௃ྔΛ࡞੒͍ͨ͠ ᶃσʔλΛཧղ͠ɺಛ௃ྔͷΞΠσΞΛग़͍ͨ͠ ˞ಛ௃ྔ࡞੒ʹߜͬͯهࡌ 

  6. ͷલʹ… • ίϯϖͰ΍Δ͜ͱΛͬ͘͟Γ֬ೝ • ᶅΛୡ੒͢ΔͨΊɺᶃˠᶄˠᶅͱऔΓ૊ΜͰ͍͘ ᶅ999Λ༧ଌ͍ͨ͠ ᶄ༧ଌʹޮ͘ಛ௃ྔΛ࡞੒͍ͨ͠ ᶃσʔλΛཧղ͠ɺಛ௃ྔͷΞΠσΞΛग़͍ͨ͠ ಛ௃ྔΛ࡞Δ σʔλΛݟΔ

    ˞ಛ௃ྔ࡞੒ʹߜͬͯهࡌ 
  7. • σʔλΛݟΔɺͱ͸ • ؍఺ɿ • ςʔϒϧؒͷؔ܎ • ֤ΧϥϜͷҙຯɾ಺༰ • σʔλܕɿnum,

    cat, boolean • ܽଛ஋ • ΧʔσΟφϦςΟͷߴ͞ • ֤ΧϥϜͷ෼෍ • ΧϥϜؒͷؔ܎ • train/testͷ෼෍ͷҧ͍ɺͳͲ ݟ͍ͨ؍఺͕ͨ͘͞Μ͋ͬͯେมɻ ಛ௃ྔ࡞੒ʹܨ͕ΔΑ͏৘ใΛ੔ཧ͍ͨ͠ʜɻ 1-1. σʔλΛݟΔ ˞ςʔϒϧσʔλͷ৔߹ 
  8. 1-1. σʔλΛݟΔ • ಛ௃ྔ࡞੒ʹܨ͕ΔΑ͏৘ใΛ੔ཧ͢Δ • σʔλΛݟΔաఔͰɺࣗ෼ͳΓʹѻ͍΍͍͢ܗͰ·ͱΊΔ • ྫ͑͹… ᶃ ςʔϒϧͷؔ܎Λ1ຕʹ·ͱΊΔ

    ᶄ ֤ΧϥϜ͝ͱʹΞΠσΞΛ·ͱΊΔ 
  9. 1-1. σʔλΛݟΔ ᶃ ςʔϒϧͷؔ܎Λ1ຕʹ·ͱΊΔ • ςʔϒϧͷඥ෇͚ • ΧϥϜͷҙຯ • σʔλܕ

    • ϢχʔΫ਺ • ܽଛͷ਺ɺͳͲ ΧϥϜ ಺༰ EUZQF OVMM OVOJRVF DPM" DPM$ ɿ ΧϥϜ ಺༰ EUZQF OVMM OVOJRVF DPM" DPM# ɿ ΧϥϜ ಺༰ EUZQF OVMM OVOJRVF DPM$ DPM% ɿ σʔλߏ଄Λ੔ཧɾཧղͰ͖Δɻ جຊతͳ৘ใ΋ࡌͤΔ͜ͱͰɺΞΠσΞग़͠Λิॿ͢Δɻ UBCMF@B UBCMF@C UBCMF@D 
  10. 1-1. σʔλΛݟΔ ᶄ ֤ΧϥϜ͝ͱʹΞΠσΞΛ·ͱΊΔ • matrix΋૊ΜͰߟ͑ͯΈΔ ΧϥϜ ϝϞ DPM" DPM#

     DPM" DPM# ʜ DPM" DPM#  ࣗ༝ͳσʔλ୳ࡧʹՃ͑ͯߦ͏͜ͱͰ࿙ΕΛ๷͙ʢ๷͍͗ͨʣɻ 
  11. 1-1. σʔλΛݟΔ • ૣ଎σʔλΛݟͳ͕Β·ͱΊͯΈΔ • ex) Name • Cat •

    ΧʔσΟφϦςΟ͸ߴ͍͕ɺॏෳ͢Δσʔλ͕ଘࡏ͢Δ • ෳ਺ͷϋʔυͰൃച͍ͯ͠Δ໛༷ • ൃച͍ͯ͠Δϋʔυ͕ଟ͍΄Ͳച্͸େ͖͘ͳΔͷͰ͸ • NameͷΧ΢ϯτ஋Λಛ௃ྔͱ͢Δ˒ • train/testͰେ͖͘ဃ཭͍ͯ͠ΔͨΊͦͷ··ಛ௃ྔͱͯ͠͸࢖͑ͳ͍ • sortͯ͠த਎Λ֬ೝ͢ΔͱɺγϦʔζ΋ͷ͕ଟ͘ଘࡏ͢ΔΑ͏ʹݟ͑Δ • γϦʔζΛಛఆ͢Δ͜ͱ͕Ͱ͖Ε͹ച্ͷ܏޲Λ௫ΊΔͷͰ͸ • ྫ͑͹”pokemon”ΛؚΉιϑτΛݟΔͱɺϝΠϯͷγϦʔζ͸શମతʹ͔ͳΓചΕ͍ͯͦ͏ • ԿΒ͔ͷํ๏ͰNameΛάϧʔϐϯά͢Δ˒ • ୯ޠͷΧ΢ϯτϕʔεͰͰ͖Δ͔΋ʁ • Name͝ͱͷച্ͷฏۉΛ֬ೝ • Wii SportsΊͪΌͪ͘ΌചΕͯΔʁʢ͔֬ʹ͏ͪʹ΋͋Δʣ ˞ࠓճ͸γϯϓϧͳσʔλͳͷͰᶄͷΈ࣮ࢪ 
  12. 1-1. σʔλΛݟΔ • ૣ଎σʔλΛݟͳ͕Β·ͱΊͯΈΔ • ex) Name • Cat •

    ΧʔσΟφϦςΟ͸ߴ͍͕ɺॏෳ͢Δσʔλ͕ଘࡏ͢Δ • ෳ਺ͷϋʔυͰൃച͍ͯ͠Δ໛༷ • ൃച͍ͯ͠Δϋʔυ͕ଟ͍΄Ͳച্͸େ͖͘ͳΔͷͰ͸ • NameͷΧ΢ϯτ஋Λಛ௃ྔͱ͢Δ˒ • train/testͰେ͖͘ဃ཭͍ͯ͠ΔͨΊͦͷ··ಛ௃ྔͱͯ͠͸࢖͑ͳ͍ • sortͯ͠த਎Λ֬ೝ͢ΔͱɺγϦʔζ΋ͷ͕ଟ͘ଘࡏ͢ΔΑ͏ʹݟ͑Δ • γϦʔζΛಛఆ͢Δ͜ͱ͕Ͱ͖Ε͹ച্ͷ܏޲Λ௫ΊΔͷͰ͸ • ྫ͑͹”pokemon”ΛؚΉιϑτΛݟΔͱɺϝΠϯͷγϦʔζ͸શମతʹ͔ͳΓചΕ͍ͯͦ͏ • ԿΒ͔ͷํ๏ͰNameΛάϧʔϐϯά͢Δ˒ • ୯ޠͷΧ΢ϯτϕʔεͰͰ͖Δ͔΋ʁ • Name͝ͱͷച্ͷฏۉΛ֬ೝ • Wii SportsΊͪΌͪ͘ΌചΕͯΔʁʢ͔֬ʹ͏ͪʹ΋͋Δʣ ˞ࠓճ͸γϯϓϧͳσʔλͳͷͰᶄͷΈ࣮ࢪ  ଞͷΧϥϜʢ͓ΑͼΧϥϜͷ૊߹ͤʣʹ͍ͭͯ΋·ͱΊΔɻ ϝϞ͸ࡶͰྑ͍ͷͰɺͱʹ͔͘୳ࡧͷ੎͍Λอͭͷ͕େࣄɺͳؾ͕͢Δɻ
  13. 1-1. σʔλΛݟΔ • ૣ଎σʔλΛݟͳ͕Β·ͱΊͯΈΔ • ex) Year_of_Release • Cat, NumͷͲͪΒͱͯ͠΋࢖༻Ͱ͖ͦ͏ʢnunique=40ʣ

    • train/testͷ෼෍͸΄΅ಉ͡ • testʹະ஌ͷ஋ʢ2020ʣؚ͕·ΕΔ͕ɺ݅਺͸1݅ͷΈ • ൃച೥౓͕෯޿͍ɺͭ·Γ௕ଓ͖͍ͯ͠ΔγϦʔζ΄Ͳਓؾ͕͋Γɺച্΋ଟ͍ͷͰ͸ • ൃച೥౓ͷظؒɺٴͼɺϢχʔΫ਺Λಛ௃ྔͱ͢Δ˒ • ൃചͷִ͕ؒ୹͍΄Ͳਓؾ͕͋Γɺച্΋ଟ͍ͷͰ͸ • աڈͷൃച͔Βͷܦա೥਺ɺະདྷͷൃച·Ͱͷ೥਺Λಛ௃ྔͱ͢Δ˒ • ʢnullΛআ͍ͯʣtrain/testͱ΋ʹYear_of_ReleaseͷঢॱͰฒΜͰ͍Δ • σʔλͷฒͼʹԿ͔͠Βҙຯ͕͋Δ͔΋ʁɺྫ͑͹೥౓Ҏ্ͷࡉ͔͍࣌ܥॱྻʹฒΜͰ͍ΔɺͳͲ • Year_of_Release͝ͱͷച্Λ֬ೝʢର਺ม׵ࡁʣ • େ͖͘ݟΔͱݮগ܏޲ʹ͋Γͦ͏ ˞ࠓճ͸γϯϓϧͳσʔλͳͷͰᶄͷΈ࣮ࢪ 
  14. 1-1. σʔλΛݟΔ • ಛ௃ྔͷ؍఺Λଟ͍࣋ͬͯ͘Δ΄Ͳଟ͘ͷΞΠσΞΛग़ͤΔ • ྫ͑͹… • Catɿ৽ͨͳ৘ใΛநग़Ͱ͖Δ͔ɺcount / frequency

    encoding͕ޮ͖ͦ͏͔ • NumɿυϝΠϯ஌ࣝʹج͍ͮͯbinningग़དྷͦ͏͔ • Cat * Numɿaggregation͕ޮ͖ͦ͏͔ • Cat * Catɿ༗ޮͳΧςΰϦΛ࡞ΕΔ͔ɺunique਺͕ޮ͖ͦ͏͔ • Num * Numɿratio, diff͕ޮ͖ͦ͏͔ • Otherɿshift, rolling͕ޮ͖ͦ͏͔ʢtime seriesʣɺtarget encoding͕ޮ͖ͦ͏͔ աڈίϯϖ΍LBHHMFؔ࿈ͷॻ੶͔ΒֶͿͷ͕͓͢͢Ίɻ 
  15. • ·ͱΊͨΞΠσΞΛinputʹͯ͠ಛ௃ྔΛ࡞Γ͍ͨ • ͕ɺಛ௃ྔ͸ࢥ͍͍ͭͯ΋ɺ࣮૷͢Δͷ͕ਏ͍…ɻ 1-2. ಛ௃ྔΛ࡞Δ  গͣͭ͠Ͱ΋ྑ͍ͷͰɺίϯϖ͕ऴΘͬͨΒྲྀ༻Ͱ ͖ΔܗͰίʔυΛετοΫ͍ͯ͘͠ͷ͕͓͢͢Ίɻ

  16. • ࢖༻ͨ͠ಛ௃ྔ • Catɿ • NameͷάϧʔϐϯάʢγϦʔζͷಛఆʣ • Χ΢ϯτ1, 2Ҏ্ͷ୯ޠͰNameΛʢग़ݱճ਺͕গͳ͍୯ޠΛ༏ઌͯ͠ʣ্ॻ͖ •

    τʔΫϯ਺ʹԠͨ͡ॏΈ෇͚ʹΑΔάϧʔϐϯάʢhakubishin3͞ΜͷdiscussionΑΓʣ • count encodingʢ૊߹ؚͤΉʣ • Cat * Numɿ • NumʢCritic/User_Count/Score, Year_of_Releaseʣʹର͢Δaggregation • keyɿ૊߹ؚͤΉCat • “Platform_and_Publisher”, “Genre_and_Publisher", etc… • mean, min, max, median, std 1-2. ಛ௃ྔΛ࡞Δ 
  17. • ࢖༻ͨ͠ಛ௃ྔ • Cat * Catɿ • NameܥͷCat͝ͱͷɺҎԼͷunique਺ • Platform,

    Genre, Year_of_Release, Publisher • Num * Numɿ • PublisherܥɺNameܥͷCat͝ͱͷҎԼͷಛ௃ྔ • աڈͷൃച͔Βͷܦա೥਺ɺະདྷͷൃച·Ͱͷ೥਺ • աڈͷൃച͔Βͷιϑτ਺ͷྦྷܭɺকདྷൃച͢Διϑτ਺ͷྦྷܭ • NumʢCritic/User_Count/Score, Year_of_Releaseʣͷmeanʹର͢Δratio, diff 1-2. ಛ௃ྔΛ࡞Δ 
  18. • ࢖༻ͨ͠ಛ௃ྔ • Otherɿ • PublisherܥɺNameܥͷCat͝ͱͷҎԼͷಛ௃ྔ • ൃച͞Εͨιϑτ਺ͷshift • leak

    • ʮName, Year_of_ReleaseʯʮGenre, Year_of_ReleaseʯͰsort͢Δͱച্ॱʹฒͿ 1-2. ಛ௃ྔΛ࡞Δ  /BNF :FBS@PG@3FMFBTFͰTPSUʢ߱ॱʣ (FOSF :FBS@PG@3FMFBTFͰTPSUʢ߱ॱʣ
  19. • ޮ͔ͳ͔ͬͨಛ௃ྔ • target encoding • ൓ল఺ • shiftͷ؁͞ •

    Year_of_ReleaseͷΧςΰϦผͰͷlagͱleadͷDiff͕ޮ͍ͨʢAkira Shirahama͞ΜΑΓʣ • [ࢀߟ] ಛ௃ྔҎ֎ • validationɿgroupkfoldʢ5fold, key=“Name"ʣ • modelɿlgb+xgb+catΛridge regressionͰstacking 1-2. ಛ௃ྔΛ࡞Δ 
  20. 2. ॳ৺ऀͷํʹΦεεϝ͍ͨ͜͠ͱ • ·ͣ͸ࣗ෼Ͱαϒ·Ͱ΍ͬͯΈΔ • σΟεΧογϣϯ͸ͱͯ΋وॏ͕ͩɺઌೖ؍Λ΋ͨͣʹσʔλΛݟΔͷ΋େࣄͩͱײ͡Δ • 1dayίϯϖͰαϒͰ͖ΔΑ͏ʹ͢Δ • ୹ظܾઓʹͳΔͨΊɺEDA΍feature

    engineeringͷ؍఺ɺ·ͨɺίʔυͷ੔ཧ͕ਐΉ • ෛ͚ͳ͕ΒֶͿ • ະདྷͷ৘ใΛར༻͢Δߟ͕͑ͳܸ͘௜ˏatmaCup#7 • ࠓճ΋׆͔͖͠Ε͍ͯͳ͍Ͱ͕͢… 
  21. ͓ΘΓ