๐Ÿฑ CatBoost: unbiased boosting with categorical features

ukkikkiaiยท2024๋…„ 5์›” 6์ผ

Euron ๋…ผ๋ฌธ ๋ฆฌ๋ทฐ

๋ชฉ๋ก ๋ณด๊ธฐ
6/13

Abstract

๋ณธ ๋…ผ๋ฌธ์€ CatBoost๋ผ๋Š” ์ƒˆ๋กœ์šด ๊ทธ๋ž˜๋””์–ธํŠธ ๋ถ€์ŠคํŒ…์˜ ์ฃผ์š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ•์„ ์†Œ๊ฐœํ•จ. CatBoost๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ์…‹์˜ ํ’ˆ์งˆ ์ธก๋ฉด์—์„œ ๋‹ค๋ฅธ ๊ณต๊ฐœ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•œ ๋ถ€์ŠคํŒ…์„ ๋Šฅ๊ฐ€ํ•จ. CatBoost์—์„œ ์†Œ๊ฐœ๋œ ๋‘ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜: (1) Ordered Boosting - ์ˆœ์—ด ๊ธฐ๋ฐ˜, ํด๋ž˜์‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋Œ€์•ˆ (2) categorical feature๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ํ˜์‹ ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž„. ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์€ ๋ชจ๋“  ๊ทธ๋ž˜๋””์–ธํŠธ ๋ถ€์ŠคํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” Prediction shift ๋ฌธ์ œ(ํƒ€๊ฒŸ ๋ˆ„์ถœ๋กœ ์ธํ•œ)๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ œ์•ˆ๋˜์—ˆ์Œ.

1. Introduction

๊ทธ๋ž˜๋””์–ธํŠธ ๋ถ€์ŠคํŒ…: ์‹ค์ „ ์ž‘์—…์—์„œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๊ณ„ ํ•™์Šต ๊ธฐ๋ฒ•์ด์ง€๋งŒ, ๊ธฐ์กด์˜ ๊ตฌํ˜„์—์„œ๋Š” ํ•œ ์ข…๋ฅ˜์˜ ํƒ€๊ฒŸ์„ ๋ˆ„์ถœํ•œ๋‹ค๋Š” ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Œ.

=> ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ์•™์ƒ๋ธ” ์˜ˆ์ธก๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ณผ์ •

  • ํ•ด๋‹น ๋ฌธ์ œ๋กœ ์ธํ•˜์—ฌ ํ•™์Šต๋œ ๋ชจ๋ธ์˜ ์˜ˆ์ธก์— ์ด์ƒ ๋ฐœ์ƒ ๊ฐ€๋Šฅ: ๋ณธ ๋…ผ๋ฌธ์€ ์ˆœ์—ด ๊ธฐ๋ฐ˜ ๋ถ€์ŠคํŒ…๊ณผ ๋ฒ”์ฃผํ˜• feature ์ฒ˜๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•œ CatBoost๋ฅผ ์ œ์•ˆํ•จ.

๐Ÿฑ CatBoost๋Š” XGBoost, LightGBM๊ณผ ๊ฐ™์€ ๊ธฐ์กด์˜ ์ตœ์ฒจ๋‹จ ๋ชจ๋ธ์„ ๋Šฅ๊ฐ€ํ•˜๋Š” ์„ฑ๋Šฅ์„ ๋ณด์˜€์Œ.

2. Background

์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์…‹์—์„œ feature ๋ฒกํ„ฐ xk์™€ ์ด์— ํ•ด๋‹นํ•˜๋Š” ๋ชฉํ‘œ๊ฐ’ yk๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Œ.

  • ๊ทธ๋ž˜๋””์–ธํŠธ ๋ถ€์ŠคํŒ… ์ ˆ์ฐจ: Greedyํ•˜๊ฒŒ ์ด์ „ ๊ทผ์‚ฌ์น˜์—์„œ ํ˜„์žฌ ๊ทผ์‚ฌ์น˜๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ๋นŒ๋“œํ•˜๋ฉฐ, ht๋Š” ๊ธฐ๋Œ€ ์†์‹ค์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒ๋จ.

=> Catboost๋Š” ๊ธฐ๋ณธ ์˜ˆ์ธก์ž๋กœ binary decision tree ํ˜•์„ฑํ•˜์—ฌ ๊ณต๊ฐ„์„ ๋ถ„ํ• ํ•˜์—ฌ ์˜ˆ์ธก ์ˆ˜ํ–‰ํ•จ.

Categorical features

์ด์‚ฐ ์ง‘ํ•ฉ์˜ ๋ฒ”์ฃผ๋ฅผ ๊ฐ€์ง€๋Š” ๋ฒ”์ฃผํ˜• ํŠน์„ฑ์€ ์„œ๋กœ ๋น„๊ตํ•  ์ˆ˜ ์—†์Œ.

=> ํ•ด๋‹น ํŠน์„ฑ์„ ๋‹ค๋ฃจ๋Š” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ์›-ํ•ซ ์ธ์ฝ”๋”ฉ

๐Ÿ“Œ ๊ทธ๋Ÿฌ๋‚˜ ๊ณ ์ฐจ์›์˜ ํŠน์„ฑ(ex. "์‚ฌ์šฉ์ž ID" ํŠน์„ฑ)์˜ ๊ฒฝ์šฐ, ์ด ๊ธฐ๋ฒ•์€ ๋„ˆ๋ฌด ๋งŽ์€ ์ƒˆ๋กœ์šด ํŠน์„ฑ์„ ์ƒ์„ฑํ•จ.

=> ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ”์ฃผ๋ฅผ ์ œํ•œ๋œ ์ˆ˜์˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๊ทธ๋ฃนํ™”ํ•œ ๋‹ค์Œ ์›-ํ•ซ ์ธ์ฝ”๋”ฉ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Œ. (TS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ”์ฃผ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๊ฒƒ)

  • TS๋ฅผ ์ƒˆ๋กœ์šด ์ˆ˜์น˜ ํŠน์„ฑ์œผ๋กœ ๊ฐ„์ฃผํ•จ์œผ๋กœ์จ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ.

3.2 Target statistics

๋ฒ”์ฃผํ˜• ํŠน์„ฑ i๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํšจ๊ณผ์ ์ด๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์€ k๋ฒˆ์งธ ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์ฃผ xik๋ฅผ ์–ด๋–ค TS์˜ xห†ik๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ž„. ์ผ๋ฐ˜์ ์œผ๋กœ, ์ด๋Š” ํ•ด๋‹น ๋ฒ”์ฃผ์— ๋Œ€ํ•ด ์กฐ๊ฑด๋ถ€๋กœ ์˜ˆ์ƒ๋˜๋Š” ํƒ€๊ฒŸ y๋ฅผ ์ถ”์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•จ.

Greedy TS

  • ๋ฒ”์ฃผํ˜• ํŠน์„ฑ์˜ ํƒ€๊ฒŸ ํ†ต๊ณ„๋ฅผ ํ•ด๋‹น ๋ฒ”์ฃผ์— ๋Œ€ํ•œ training example์˜ ํ‰๊ท ์œผ๋กœ ์ถ”์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

๐Ÿ“Œ ๋ฌธ์ œ: ํƒ€๊ฒŸ ๋ˆ„์ถœ๋กœ ์ธํ•ด conditional shift๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ. ์ด๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด training set์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•œ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ TS๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ œ์•ˆ๋˜๊ณ  ์žˆ์Œ.

Holdout TS

  • ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์…‹์„ Dห†0๊ณผ Dห†1๋กœ ๋ถ„ํ• ํ•˜์—ฌ TS๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ์—๋Š” Dห†0์„ ์‚ฌ์šฉํ•˜๊ณ , ๋ชจ๋ธ ํ›ˆ๋ จ์—๋Š” Dห†1์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

๐Ÿ“Œ ๋ฌธ์ œ: ๋ชจ๋ธ ํ›ˆ๋ จ๊ณผ TS ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์–‘์„ ํฌ๊ฒŒ ์ค„์ด๋ฏ€๋กœ, ๋ชจ๋“  ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ œํ•œํ•˜์—ฌ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ์Œ.

Leave-one-out TS

  • Training examples๋กœ๋Š” Dk = D \ xk๋ฅผ, testing example๋กœ๋Š” xk and Dk = D๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹

๐Ÿ“Œ ๋ฌธ์ œ: ํƒ€๊ฒŸ ๋ˆ„์ถœ์„ ๋ง‰์ง€ ๋ชปํ•จ.

Ordered TS

CatBoost๋Š” ๋” ํšจ๊ณผ์ ์ธ ordered ์›๋ฆฌ์— ๋ฐ”ํƒ•์„ ๋‘์—ˆ์Œ

  • TS์˜ ๊ฐ’๋“ค์€ ๊ด€์ฐฐ๋œ ์ด๋ ฅ์— ์˜์กดํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ์•„์ด๋””์–ด๋ฅผ ์ ์šฉํ•˜์—ฌ '์ธ๊ณต์ ์ธ ์‹œ๊ฐ„'์„ ๋„์ž…ํ•จ.

=> ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ด๋ ฅ์„ ์‚ฌ์šฉํ•˜์—ฌ TS๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•˜๊ณ , training example๋กœ๋Š” Dk = {xj : ฯƒ(j) < ฯƒ(k)}๋ฅผ, testing ์šฉ์œผ๋กœ๋Š” Dk = D๋ฅผ ์ ์šฉํ•จ.

โญ Ordered TS๋Š” P1 ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๊ณ , P2 ์กฐ๊ฑด์ด์—ˆ๋˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์…‹ ์‚ฌ์šฉ ๋˜ํ•œ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋จ.

4. Prediction shift and ordered boosting

4.1 Prediction shift

๊ทธ๋ ˆ์ด๋””์–ธํŠธ ๋ถ€์ŠคํŒ…์—์„œ์˜ ์˜ˆ์ธก ๋ณ€ํ™” ๋ฌธ์ œ - ์ด์ „์— ๋‹ค๋ฃจ์–ด์ง€์ง€ ์•Š์•˜์Œ.

๐Ÿ“Œ ์ด๋Ÿฌํ•œ ์˜ˆ์ธก ๋ณ€ํ™”๋Š” TS์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŠน์ • ์œ ํ˜•์˜ ํƒ€๊ฒŸ ๋ˆ„์ถœ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•จ => ํ•ด๊ฒฐ์ฑ…์€ Ordered TS ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌํ•œ Ordered boosting

4.2 Ordered boosting

Ordered boosting์€ ์˜ˆ์ธก ๋ณ€ํ™” ๋ฌธ์ œ๋ฅผ ๊ฒช์ง€ ์•Š์Œ.

  • ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ ๋‹จ๊ณ„์—์„œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์…‹์„ ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ˜ํ”Œ๋งํ•˜๊ณ  ํ˜„์žฌ ๋ชจ๋ธ์„ ์ƒˆ๋กœ์šด training example์— ์ ์šฉํ•˜์—ฌ ๋ณ€ํ™”๋˜์ง€ ์•Š์€ residual๋ฅผ ์–ป์Œ.

โญ๏ธ ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋Œ€๋ถ€๋ถ„์˜ ์‹ค์ œ ์ž‘์—…์—์„œ๋Š” ์‹คํ–‰ ๋ทด๊ฐ€ - CatBoost์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณ€ํ˜•์„ ๊ตฌํ˜„ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ

Ordered boosting with categorical features

TS ๊ณ„์‚ฐ ๋ฐ Ordered boosting์— ๋Œ€ํ•œ training example ์ž„์˜ ์ˆœ์—ด ฯƒcat ๋ฐ ฯƒboost๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ œ์•ˆํ•จ.

  • ์ด ๋‘ ๊ฐ€์ง€๋ฅผ ํ•˜๋‚˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ฒฐํ•ฉํ•  ๋•Œ, ์˜ˆ์ธก ๋ณ€ํ™”๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ฯƒcat = ฯƒboost๊ฐ€ ํ•„์š” -> ํƒ€๊ฒŸ yi๊ฐ€ Mi์˜ ํ›ˆ๋ จ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ์„ ๋ณด์žฅ

5. Practical implementation of ordered boosting

CatBoost์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ถ€์ŠคํŒ… ๋ชจ๋“œ์ธ Ordered์™€ Plain ์กด์žฌ

  • Plain: Ordered TS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์ค€ GBDT ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • Ordered: ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1์˜ ํšจ์œจ์ ์ธ ์ˆ˜์ •๋ณธ์„ ์ œ๊ณต

โญ๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช…

  1. CatBoost์€ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์…‹์˜ s + 1๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๋žœ๋ค ์ˆœ์—ด์„ ์ƒ์„ฑ
  2. ์ˆœ์—ด ฯƒ1, ..., ฯƒs๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ถ„ํ• ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ -> ฯƒ0์€ ์–ป์€ ํŠธ๋ฆฌ์˜ ์žŽ ๊ฐ’ bj๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

+) ํŠน์ • ์ˆœ์—ด์—์„œ ์งง์€ ๊ฐ€์ง„ ์˜ˆ์ œ์˜ ๊ฒฝ์šฐ, ordered boosting์—์„œ ์‚ฌ์šฉ๋˜๋Š” TS ๋ฐ ์˜ˆ์ธก๊ฐ’ => ๋ชจ๋‘ ๊ณ ๋ถ„์‚ฐ

  • ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ์ˆœ์—ด๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ตœ์ข… ๋ชจ๋ธ ์˜ˆ์ธก์˜ ๋ถ„์‚ฐ์„ ์ฆ๊ฐ€์‹œํ‚ด -> ์—ฌ๋Ÿฌ ์ˆœ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ํšจ๊ณผ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ.

6. Experiments

๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ XGBoost์™€ LightGBM๊ณผ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋น„๊ต

  • ๋ชจ๋“  ํ•™์Šต ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ๋ฒ”์ฃผํ˜• ํŠน์„ฑ์€ Ordered TS ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒ˜๋ฆฌ
  • CatBoost์˜ Ordered ๋ถ€์ŠคํŒ… ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ

๐Ÿ“Œ CatBoost๊ฐ€ ๋ชจ๋“  ๊ณ ๋ ค๋œ ๋ฐ์ดํ„ฐ์…‹์—์„œ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์˜€์Œ.

+) ์ผ๋ถ€ ๋ฐ์ดํ„ฐ์…‹์„ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ๊ฐœ์„  ์‚ฌํ•ญ์€ ์—ฐ๊ฒฐ๋œ ์ผ๋ฐฉํ–ฅ t-๊ฒ€์ •์œผ๋กœ ์ธก์ •๋œ p-๊ฐ’์ด โ‰ช 0.01๋กœ ํ†ต๊ณ„์ ์œผ๋กœ ์œ ์˜ํ•จ๋„ ํ™•์ธํ•จ.

7. Conclusion

๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ํ˜„์žฌ ์žˆ๋Š” Gradient boosting์— ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” prediction shift์˜ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ์—ˆ์Œ. Ordered TS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Ordered Boosting์„ ์ œ์•ˆํ•˜์—ฌ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ.

๐Ÿต ๋…ผ์˜ํ•ด๋ณด๊ณ  ์‹ถ์€ ์ : ํ•ด๋‹น ๋…ผ๋ฌธ์€ 19๋…„๋„์— ๋ฐœํ–‰๋˜์—ˆ๋Š”๋ฐ, ์ง€๊ธˆ๋„ ๋”ฅ๋Ÿฌ๋‹์ด ์•„๋‹Œ ๊ธฐ๊ณ„ํ•™์Šต ์˜์—ญ์—์„œ ์—ฐ๊ตฌ๊ฐ€ ํ™œ๋ฐœํ•˜๊ฒŒ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค.

profile
์œ ์ •๋ฏผ

0๊ฐœ์˜ ๋Œ“๊ธ€