Introduction to Machine Learning with Python
๐ก ์ฌ์ดํท๋ฐ์ผ๋ก ์ธ์ฝ๋ฉํ๋ ๊ณผ์ ์ ๋ณต์กํ์ง๋ง numpy์ pandas์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์ฐ์ต์ ํด๋ณผ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
โ๏ธ one-hot-encoding ํ train๊ณผ test์ ํ์ ์๊ฐ ์ผ์น ํ๋์ง ๊ผญ ์ฒดํฌ!!
๐ค ์ ์ด๋ฒ ์ค์ต์์๋ Cross validation ๋์ hold-out-validation ์ฌ์ฉํ์๊น?
โ Summary:
์ค์ต ๋ชฉ์ : ๋ค๋ฅธ ํธ๋ฆฌ๋ชจ๋ธ์ ์ฌ์ฉํด๋ณด๊ธฐ (GBT, ExtraTree)
๐ก ์ค์ฝ์ด๋ฅผ ๋ฐ๋ก ์ง์ ํ์ง ์์ผ๋ฉด ํ๊ท๋ ๊ธฐ๋ณธ๊ฐ์ด R2 Score ์ด๋ค.
1) GBT
from sklearn.ensemble import GradientBoostingRegressor
model_gbt = GradientBoostingRegressor(random_state=42)
2) ExtraTree
from sklearn.ensemble import ExtraTreesRegressor
model_et = ExtraTreesRegressor(random_state=42)
: ์ข ์ ๋ณ์ y์ ํ ๊ฐ ์ด์์ ๋ ๋ฆฝ ๋ณ์ X์์ ์ ํ ์๊ด ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ๋ ํ๊ท๋ถ์ ๊ธฐ๋ฒ
๐ก ์ฅ์
1) ๋ค๋ฅธ ๋ชจ๋ธ๋ค์ ๋นํด ๊ฐ๋จํ ์๋ ์๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์ด ์ดํดํ๊ธฐ ์ฝ๋ค.
2) ํ์ต ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค.
3) ์กฐ์ ํด์ค ํ๋ผ๋ฏธํฐ๊ฐ ์ ๋ค.
4) ๋ฐ์ดํฐ๊ฐ ์์นํ ๋ณ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ์ ๊ฒฝํฅ์ฑ์ด ๋๋ ทํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๊ธฐ ์ข๋ค.
๐ก ๋จ์
1) ํธ๋ฆฌ๋ชจ๋ธ์ ๋นํด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
2) ์ด์์น์ ๋งค์ฐ ๋ฏผ๊ฐํ๋ค.
3) ์์น๋ฐ์ดํฐ์ ๋ํด ์ ์ฒ๋ฆฌ๊ฐ ๋ง์ด ํ์ํ๋ค.
4) ์์ธก๋ ฅ์ด ๋จ์ด์ง๋ค.
5) sns.regplot()
์ ๊ทธ๋ ค๋ณด๋ฉด ์ ํ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ชจ๋ธ (e.g. RandomForest) ๋ค์ ๋นํด ์ค๋ช
๋ ฅ์ด ๋จ์ด์ง๋ค.
๐ ์ ํ ํ๊ท ๋ชจ๋ธ์ ๋จ์ ์ ๋ณด์ํ ๋ชจ๋ธ:
๐ก ์ฅ์
1) ๊ฒฐ๊ณผ๋ฅผ ํด์ํ๊ณ ์ดํดํ๊ธฐ ์ฝ๋ค.
2) ์๋ฃ๋ฅผ ๊ฐ๊ณตํ ํ์๊ฐ ๊ฑฐ์ ์๋ค.
3) ์์น ์๋ฃ์ ๋ฒ์ฃผ ์๋ฃ ๋ชจ๋์ ์ ์ฉํ ์ ์๋ค.
4) ํ์ดํธ๋ฐ์ค ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.
5) ์์ ์ ์ด๋ค.
6) ๋๊ท๋ชจ ๋ฐ์ดํฐ์
์์๋ ์ ๋์ํ๋ค.
7) ๊ฐ ํน์ฑ์ด ๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ค์ผ์ผ์ ๊ตฌ์ ๋ฐ์ง ์๋๋ค.
8) ๋ฐ์ดํฐ ๋ด ๋ณ์์ ์ข
๋ฅ๊ฐ ๋ฌ๋ผ๋ ์ ๋์ํ๋ค.
๐ก ๋จ์
1) ํ์ต์ฉ ๋ฐ์ดํฐ์ ๊ณผ๋์ ํฉ๋๋ค.
๐ ๊ฒฐ์ ํธ๋ฆฌ์ ๋จ์ ์ ๋ณด์ํ ๊ธฐ๋ฒ:
๐ก ์ฅ์
1) ์ฑ๋ฅ์ด ๋ฐ์ด๋๊ณ ๋งค๊ฐ๋ณ์ ํ๋์ ๋ง์ด ํ์ง ์๋๋ค.
2) ๊ฒฐ์ ํธ๋ฆฌ์ ๋ฌ๋ฆฌ ์๊ฐํ๊ฐ ๋ถ๊ฐ๋ฅํด ๋น์ ๋ฌธ๊ฐ๋ ์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์๋ค.
3) ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ํฐ์ง๋ฉด ๋ค์ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๋ค.
4) ๋๋ค์ฑ์ด ์๊ธฐ ๋๋ฌธ์ random_state ๋ณ์๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๋งค๋ฒ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ค.
5) ์ฐจ์์ด ๋๊ณ ํฌ์ํ ๋ฐ์ดํฐ์๋ ์ ์๋ํ์ง ์์ ์ ์๋ค.
: ๊ทน๋๋ก ๋ฌด์์ํ (Extremely Randomised Tree) ๋ชจ๋ธ. ๊ฐ์ฌ
๐ก ExtraTree์ RandomForest์ ์ฐจ์ด์
RandomForest์ ๊ฐ์ด ํ๋ณด ๊ธฐ๋ฅ์ ๋ฌด์์ ํ์ ์งํฉ์ด ์ฌ์ฉ๋์ง๋ง ๊ฐ์ฅ ์ฐจ๋ณ์ ์ธ ์๊ณ๊ฐ์ ์ฐพ๋ ๋์ ๊ฐ ํ๋ณด ๊ธฐ๋ฅ์ ๋ํด ์๊ณ๊ฐ์ด ๋ฌด์์๋ก ๊ทธ๋ ค์ง๊ณ ๋ฌด์์๋ก ์์ฑ๋ ์๊ณ๊ฐ ์ค ๊ฐ์ฅ ์ข์ ๊ฒ์ ๋ถํ ๊ท์น์ผ๋ก ์ ํ
๐๐ป ์ผ๋ฐ์ ์ผ๋ก ์ฝ๊ฐ ๋ ํฐ ํํฅ ์ฆ๊ฐ๋ฅผ ํฌ์์ํค๋ฉด์ ๋ชจ๋ธ์ ๋ถ์ฐ์ ์กฐ๊ธ ๋ ์ค์ธ๋ค.
๐ก ์ฅ์
1) ๋ถ๊ธฐ ์ง์ ์ ๋๋ค์ผ๋ก ์ ํํ๊ธฐ ๋๋ฌธ์ RandomForest๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๋ค.
2) ๊ฐ์ ์ด์ ๋ก RandomForest๋ณด๋ค ๋ ๋ง์ ํน์ฑ์ ๊ณ ๋ คํ ์ ์๋ค.
3) RandomForest์ ๋์ผํ ์๋ฆฌ๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ๋ง์ ํน์ง์ ๊ณต์ ํ๋ค.
4) RandomForest๋ณด๋ค ์ฑ๋ฅ์ด ์ฝ๊ฐ ๋ ์ข๋ค.
: ์ด์ ์ค์ฐจ (์ค์)๋ฅผ ๋ณด์ํด์ ์์ฐจ์ ์ผ๋ก ๋ชจ๋ธ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๋ฌด์์์ฑ์ด ์๋ค.
๐ก Bagging๊ณผ Boosting์ ์ฐจ์ด
Bagging : ๋ฐ์ดํฐ ์
์ด ๋ชจ๋ธ๋ง๋ค ๋
๋ฆฝ์ ์ด๋ค.
Boosting : ์ ๋ชจ๋ธ์ด ๋ฐ์ดํฐ์
์ ์ ํด์ค๋ค.
- ๋ฐฐ๊น ์ ํ๋ จ์ธํธ์์ ์ค๋ณต์ ํ์ฉํด์ ์ํ๋งํ์ฌ ์ฌ๋ฌ๊ฐ ๋ชจ๋ธ์ ํ๋ จ ํ๋ ์์๋ธ ๋ฐฉ์์ ๋๋ค. ๊ฐ์ ํ๋ จ ์ํ์ ์ฌ๋ฌ ๊ฐ์ ๋ชจ๋ธ์ ๊ฑธ์ณ ์ฌ์ฉํด์ ๋ชจ๋ ๋ชจ๋ธ์ด ํ๋ จ์ ๋ง์น๋ฉด ์์๋ธ์ ๋ชจ๋ ์์ธก๊ธฐ์ ์์ธก์ ๋ชจ์์ ์๋ก์ด ์ํ์ ๋ํ ์์ธก์ ๋ง๋ค๊ฒ ๋ฉ๋๋ค.
- ๋ถ์คํ ์ ์ฝํ ๋ชจ๋ธ์ ์ฌ๋ฌ๊ฐ ์ฐ๊ฒฐํด์ ๊ฐํ ๋ชจ๋ธ์ ๋ง๋ค์ด ๋ด๊ธฐ ์ํ ์์๋ธ ๋ฐฉ์์ ๋๋ค. ๋ถ์คํ ์ ์์ด๋์ด๋ ์์ ๋ชจ๋ธ๋ค์ ๋ณด์ํด ๋๊ฐ๋ฉด์ ์ผ๋ จ์ ๋ชจ๋ธ๋ค์ ํ์ต์์ผ ๋๊ฐ๋ ๊ฒ์ ๋๋ค.
๊ฒฝ์ฌํ๊ฐ๋ฒ(gradient descent): ์์ค์ด ๊ฐ์ฅ ์์ ์ง์ ์ ์ฐพ๊ธฐ ์ํด์ ๊ธฐ์ธ๊ธฐ๊ฐ 0์ธ ์ง์ ์ ์ฐพ์ ๊ฒฝ์ฌ๋ฅผ ์ ์ ๋ด๋ ค๊ฐ๋ ๋ฐฉ๋ฒ
- ์์ธก๊ฐ๊ณผ ์ ๋ต๊ฐ ์ฌ์ด์ ์์ค์ด ์ต์ํ๋ ์๋ก ์ข์ ๋ชจ๋ธ์ ๋๋ค.
- ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ๋ชฉ์ ์ ์์คํจ์๊ฐ ๊ฐ์ฅ ์๊ณ , ์์ธก์ ์ ํ๋ ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ๊ธฐ ์ํจ์ ๋๋ค.
๐ก ๋ณดํญ์ด ๋๋ฌด ํฌ๋ฉด ์์ค์ ๋์ถฉ ์ฐพ๊ธฐ ๋๋ฌธ์ ์ต์์ ์ ์ง๋์น ์๋ ์๋ค. ๊ทธ๋์ very high learing rate์ฒ๋ผ ๋ฐ์ฐ ํ๊ธฐ๋ ํ๋ค.
: ํ๊ท ๋๋ ๋ถ๋ฅ ๋ถ์์ ์ํํ ์ ์๋ ์์ธก ๋ชจ๋ธ. ์์ธก๋ชจํ์ ์์๋ธ ๋ฐฉ๋ฒ ์ค ๋ถ์คํ ๊ณ์ด์ ์ํ๋ ์๊ณ ๋ฆฌ์ฆ.
๐ก ์ฅ์
1) RandomForest์ ๋ค๋ฅด๊ฒ ๋ฌด์์์ฑ์ด ์๋ค.
๐๐ป ์ด์ ์ค์ฐจ (์ค์)๋ฅผ ๋ณด์ํด์ ์์ฐจ์ ์ผ๋ก ๋ชจ๋ธ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๋ฌด์์์ฑ์ด ์๋ค. (์ค๋ต๋
ธํธ์ ๊ฐ์ ๊ฐ๋
; ํ๋ฆฐ ๋ฌธ์ ๋ฅผ ์์ฃผ๋ก ํ์ต)
2) ๋ฐ์ดํฐ์ ์ค์ผ์ผ์ ๊ตฌ์ ๋ฐ์ง ์๋๋ค.
๐ก ๋จ์
1) ๋งค๊ฐ๋ณ์๋ฅผ ์ ์กฐ์ ํด์ผํ๊ณ ํ๋ จ์๊ฐ์ด ๊ธธ๋ค.
2) ๊ณ ์ฐจ์์ ํฌ์ํ ๋ฐ์ดํฐ์ ์ ์๋ํ์ง ์๋๋ค.
๐ก ํฌ์ํ ๋ฐ์ดํฐ๋? 0์ด ๋ง์ ๋ฐ์ดํฐ
๐ค ์ฑ๋ฅ์ ๊ณ ๋ ค ์์ด GBM ์์ ํ๋ จ์๊ฐ์ ์ค์ด๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น?
learing rate๋ฅผ ๋์ธ๋ค.
: ๋ณดํญ (learning rate)์ ํฌ๊ฒํ๋ฉด ํจ์ฌ ๋นจ๋ฆฌ ๊ฑท๊ฒ ๋๊ธฐ ๋๋ฌธ์ ํ์ต์๊ฐ์ ์ค์ด๋ค์ง๋ง ์ ๋๋ก ๋ loss๊ฐ 0์ด ๋๋ ์ง์ ์ ์ ๋๋ก ์ฐพ์ง ๋ชป ํ ์๋ ์๋ค. (= ํ์ต์๊ฐ์ ์ค์ด๋ค์ง๋ง, ์ฑ๋ฅ์ด ๋ฎ์์ง ์ ์์)
: GBT์์ ๋ณ๋ ฌ ํ์ต์ ์ง์ํ์ฌ ํ์ต ์๋๊ฐ ๋นจ๋ผ์ง ๋ชจ๋ธ
- ๋ชจ๋ ๊ฐ๋ฅํ ํธ๋ฆฌ๋ฅผ ๋์ดํ์ฌ ์ต์ ํธ๋ฆฌ๋ฅผ ์ฐพ๋ ๊ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์, 2์ฐจ ๊ทผ์ฌ์์ ๋ฐํ์ผ๋ก ํ ์์คํจ์๋ฅผ ํ ๋๋ก ๋งค iteration๋ง๋ค ํ๋์ leaf๋ก๋ถํฐ ๊ฐ์ง๋ฅผ ๋๋ ค๋๊ฐ๋ ๊ฒ์ด ํจ์จ์
- ์์ค ํจ์๊ฐ ์ต๋ํ ๊ฐ์ํ๋๋ก ํ๋ split point(๋ถํ ์ )๋ฅผ ์ฐพ๋ ๊ฒ์ด XGBoost์ ๋ชฉํ
๐ก ์ฅ์
1) GBT์ ๋นํด ๋ ํจ์จ์ ์ด๋ค.
2) ๋ค์ํ ์ข
๋ฅ์ ๋ฐ์ดํฐ์ ๋์ํ ์ ์์ผ๋ฉฐ ์ด์์ฑ์ด ๋์ต๋๋ค.
3) GBM ๋๋น ๋น ๋ฅธ ์ํ์๊ฐ (๋ณ๋ ฌ์ฒ๋ฆฌ)
4) ๊ณผ์ ํฉ ๊ท์ (๊ฐํ ๋ด๊ตฌ์ฑ)
5) ๋ถ๋ฅ์ ํ๊ท์์ญ์์ ๋ฐ์ด๋ ์์ธก ์ฑ๋ฅ ๋ฐํ(๊ด๋ฒ์ํ ์์ญ)
6) Early Stopping(์กฐ๊ธฐ ์ข
๋ฃ) ๊ธฐ๋ฅ์ด ์๋ค.
7) ๋ค์ํ ์ต์
(Hyper Parameter)์ ์ ๊ณตํ๋ฉฐ Customizing์ด ์ฉ์ดํ๋ค.
๐ก ๋จ์
1) ํ์ต์๊ฐ์ด ๋๋ฆฌ๋ค.
2) Hyper Parameter ์๊ฐ ๋ง์ Hyper Parameter ํ๋์ ํ๊ฒ๋๋ฉด ์๊ฐ์ด ๋์ฑ ์ค๋ ๊ฑธ๋ฆฐ๋ค.
3) ๋ชจ๋ธ์ Overfitting ๊ฐ๋ฅ์ฑ
๐ก ๋ฏผ๊ฐํ๊ฒ ์กฐ์ ํด์ผํ๋ ๊ฒ
๐ก ๊ณผ์ ํฉ ๋ฐฉ์ง๋ฅผ ์ํด ์กฐ์ ํด์ผํ๋ ๊ฒ
XGBoost ํ์ด์ฌ ์ดํดํ๊ธฐ - ํ๋ผ๋ฏธํฐ ์ ๋ฆฌ
: ๊ฒฐ์ ํธ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ์์ ์ง์ , ๋ถ๋ฅ ๋ฐ ๊ธฐํ ๊ธฐ๊ณ ํ์ต ์์ ์ ์ฌ์ฉ
๐ก ์ฅ์
1) ๋ ๋น ๋ฅธ ํ๋ จ ์๋์ ๋ ๋์ ํจ์จ์ฑ
2) ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
3) ๋ ๋์ ์ ํ๋
4) ๋ณ๋ ฌ, ๋ถ์ฐ ๋ฐ GPU ํ์ต ์ง์
5) ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ
๐ก ๋จ์
1) overfitting์ ๋ฏผ๊ฐํ๋ค.
2) ์์ ๋ฐ์ดํฐ์ ๋ํด์ ๊ณผ์ ํฉ๋๊ธฐ ์ฌ์
๐ก GOSS (Gradient based One Side Sampling) ๊ธฐ์ธ๊ธฐ ๊ธฐ๋ฐ ๋จ์ธก ์ํ๋ง
๐ก EFB (Exclusive Feature Bundling) ๋ฐฐํ์ ํน์ฑ ๋ฌถ์
๐ก GBDT(Gradient Boosting Decision Tree)๋ Feature์ฐจ์์ด ๋๊ณ ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ ํด ๊ฒฝ์ฐ, ๊ฐ๋ฅํ ๋ชจ๋ ๋ถํ ์ง์ ์ Information Gain์ ์ถ์ ํ๊ธฐ ์ํด ๋ชจ๋ ๋ฐ์ดํฐ ์ธ์คํด์ค๋ฅผ ํ์ํด์ผ ๋ ๋ ๋ง์ ์๊ฐ์ ์๋นํด์ผ ํ๋ค๋ ๋ฌธ์ ๊ฐ ์์
๐ก GBM ๊ณ์ด์ ํธ๋ฆฌ ๋ถํ ๋ฐฉ์
๊ธฐ์กด ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋น๊ตํ์ฌ ์์ด ๊ธฐ๋ฐ ๋์์ ์ฌ์ฉํ์ฌ ๋ฒ์ฃผํ ๊ธฐ๋ฅ์ ํด๊ฒฐํ๋ ค๊ณ ์๋ํ๋ ๊ทธ๋ ๋์ธํธ ๋ถ์คํ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ ์์ํฌ๋ฅผ ์ ๊ณต
๐ก ์ฅ์
1) ๊ณผ์ ํฉ์ ๊ทน๋ณตํ๊ธฐ ์ํด ๋ถ์คํ
์ฃผ๋ฌธ
2) ๋ฒ์ฃผํ ๊ธฐ๋ฅ์ ๋ํ ๊ธฐ๋ณธ ์ฒ๋ฆฌ
3) ๋น ๋ฅธ GPU ํ๋ จ
4) ๋ชจ๋ธ ๋ฐ ๊ธฐ๋ฅ ๋ถ์์ ์ํ ์๊ฐํ ๋ฐ ๋๊ตฌ
5) ๊ณผ์ ํฉ์ ๊ทน๋ณตํ๊ธฐ ์ํด ์์๊ฐ ์๋ ๋ถ์คํ
์ ์ฌ์ฉ
6) ์ด๋ฆ ๊ทธ๋๋ก ๋ฒ์ฃผํ ํน์ฑ์ ์ ์ฒ๋ฆฌํจ
7) ๋ ๋น ๋ฅธ ์คํ์ ์ํด Oblivious Trees ๋๋ Symmetric Trees ์ฌ์ฉ
๐ก ๋จ์
1) CatBoost ๋ ํฌ์ ํ๋ ฌ์ ์ง์ ํ์ง ์์
2) ๋ฐ์ดํฐ ์ธํธ์ ์์นํ ํ์
์ด ๋ง์ ๋ CatBoost๋ LightGBM๋ณด๋ค ํ๋ จํ๋ ๋ฐ ์๋์ ์ผ๋ก ๋ง์ ์๊ฐ์ด ์์
๐ก ํน์ง
โ๏ธ ML๊ณผ DL์ ๋งค์ฐ ์ค์ํ ๊ฐ๋
๊ธฐ์ธ๊ธฐ => ๋ฏธ๋ถ์ผ๋ก loss์ ํฌ๊ธฐ๋ ๋ฐฉํฅ(+, -)
ํ์ต๋ฅ => ๋ณดํญ, ๊ฑธ์ ๋ ์ผ๋ง์ ๋ณดํญ์ผ๋ก ๊ฑธ์ผ๋ฉด ๋นจ๋ฆฌ ๊ฑธ์ ์๋ ์๊ณ ์ฒ์ฒํ ๊ฑธ์ ์๋ ์๋๋ฐ ํ์ตํ ๋๋ ํฌ๋ฉด ๋น ๋ฅด๊ฒ ํ์ตํ์ง๋ง ์ต์ ์ ์ ์ง๋์น ์ ์๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
Q: GBM, XGBoost, LightGBM, ๋ชจ๋ธ์ด๋ฆ์ ๋ค์ด๊ฐ๋ G ๋ ๋ฌด์์ ์๋ฏธํ ๊น์?
A: ๊ฐ์ค์น ์
๋ฐ์ดํธํ ๋ ๊ฒฝ์ฌํ๊ฐ๋ฒ(gradient descent) ์ฌ์ฉํ๊ธฐ ๋๋ฌธ
Q: Gradient(๊ฒฝ์ฌ, ๊ธฐ์ธ๊ธฐ) ๋ ์ด๋ป๊ฒ ์ฌ์ฉํ ๊น์?
A: ์์คํจ์ ๊ทธ๋ํ์์ ๊ฐ์ด ๊ฐ์ฅ ๋ฎ์ ์ง์ ์ผ๋ก ๊ฒฝ์ฌ๋ฅผ ํ๊ณ ํ๊ฐํฉ๋๋ค. ๋จธ์ ๋ฌ๋์์ ์์ธก๊ฐ๊ณผ ์ ๋ต๊ฐ๊ฐ์ ์ฐจ์ด๊ฐ ์์คํจ์์ธ๋ฐ ์ด ํฌ๊ธฐ๋ฅผ ์ต์ํ์ํค๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
Q: GPU?
A: ๊ทธ๋ํฝ์นด๋์ด๋ฉฐ ๋ณ๋ ฌ๊ณ์ฐ์ฒ๋ฆฌ์ ์ฉ์ดํฉ๋๋ค. ๊ฒ์, ์ํธํํ, ์ธ๊ณต์ง๋ฅ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
Q: Residual ์ ๋ฌด์์ผ๊น์?
A: Residual == ์์ฐจ (ํ๋ณธ์ง๋จ์ ํ๊ท์์์ ์์ธก๋ ๊ฐ)
Q: ์ absolute loss๋ฅผ ์ง์์ ํ๋๋ฐ squared loss ๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํ ๊น์?
A: ๊ธฐ์ธ๊ธฐ๊ฐ +, - ๋ฐฉํฅ์ ๋ฐ๋ผ ๊ฐ์ ๊ธฐ์ธ๊ธฐ๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์ ๋ฐฉํฅ์ ์ ์ ์์ง๋ง ๊ธฐ์ธ๊ธฐ๊ฐ ๊ฐ์์ ๋ฏธ๋ถ์ ํ์ ๋ ๋ฐฉํฅ์ ๋ฐ๋ผ ๊ฐ์ ๋ฏธ๋ถ๊ฐ์ด ๋์์ ๊ธฐ์ธ๊ธฐ๊ฐ ํฐ์ง, ์์์ง ๋น๊ตํ ์ ์์ต๋๋ค. ๊ทธ๋์ squared loss ๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
Q: ๋พฐ์กฑํ๊ฒ ๋์ค๊ฒ ๋๋ฉด ๋ฏธ๋ถ์ ๋ชปํ์ง ์๋์?
A: ๋ฏธ๋ถ์ ํ๋ฉด ๊ธฐ์ธ๊ธฐ๊ฐ 0์ด ๋๋ ์ง์ ์ด ๋พฐ์กฑํ ์ง์ ์
๋๋ค.
Q: ๋ฏธ๋ถ์ ํ๋ ์ด์ ?
A: ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ตฌํ๊ธฐ ์ํด
Q: ์ ๋ถ์คํ
๊ณ์ด ๋ชจ๋ธ์ด ์ค์น๊ฐ ์ ๋๊ธฐ๋ ํ์ง๋ง ์ค์น์ ์คํจํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ๊น์?
A: ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑ๋์๋๋ฐ ํ์ด์ฌ wrapper API ๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ๊ตฌ๋ํ๋ ค๋ฉด ๋ค๋ฅธ ์ธ์ด ํ๊ฒฝ์ด ํจ๊ป ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ธฐ์กด์ ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ์ค์นํ๋ค๊ฐ ํด๋น ์ธ์ด ํ๊ฒฝ ๋๊ตฌ๋ฅผ ์ค์นํด ๋จ๋ ๋ถ๋ค์ ๋น๊ต์ ์ ์ค์น๊ฐ ๋์ง๋ง, ์ฒ์ ์ค์นํ ๋๋ ์คํจํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. conda ๋ ๋น๊ต์ ํจํค์ง์ด ์ ๋์ด ์์ด์ ๊ด๋ จ๋ ํ๊ฒฝ์ ์ ๊ตฌ์ฑํด ์ค๋๋ค. ๊ทธ๋์ ๋๋๋ก์ด๋ฉด conda๋ก ์ค์นํด์ผ ์คํธ๋ ์ค๊ฐ ์ค์ด๋ญ๋๋ค.
Q: shape ๋ฉ์๋๋ ํ๋ ฌ์ด๋ฉด ๋ค ์ธ ์ ์๋๊ฑด๊ฐ์?
A: numpy array์์๋ ์ฌ์ฉ ๊ฐ๋ฅ
Q: ๋ชจ๋ธ์ ๋ค์ด๊ฐ๋ X๊ฐ์ numpy ๋ฐฐ์ด์ด์ด๋ ์๊ด์ด ์๋์?
A: ๋ชจ๋ธ์ ๋ค์ด๊ฐ๋ ๊ฐ์ ์๋ ๋ชจ๋ numpy ๋ฐฐ์ด
Q: ๋ถ์คํ
๊ณ์ด ์์ฒด๊ฐ ๋ฌด์์์ฑ์ด ์๋์?
A: ์ด์ ์ค์ฐจ (์ค์)๋ฅผ ๋ณด์ํด์ ์์ฐจ์ ์ผ๋ก ๋ชจ๋ธ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๋ฌด์์์ฑ์ด ์๋ค.
Q: gbt ์ค์ฝ์ด๋ 0์ผ๋ก ๊ฐ๊น์ธ์๋ก ์ฑ๋ฅ์ด ์ข๋ค๊ณ ํ๋จํ๋๊ฑด๊ฐ์?
A: R2 Score๋ผ 1์ ๊ฐ๊น์ธ์๋ก ์ ์์ธกํ ๊ฒ์ด๋ค.
Q: kaggle์์ ์ ์ถํ๊ณ ์ ์๋ฅผ ๋ณผ ๋ public๋ง๊ณ private์ผ๋ก ๋ณด๋ฉด ๋๋์?
A: ์ต์ข
๊ฒฐ๊ณผ๋ private score๋ก ๊ฒฐ์ ๋ฉ๋๋ค.
- ๋ํ๋ง๋ค public score์ private score๋ฅผ ๋งค๊ธฐ๋ ๋ฐฉ์์ด ๋ค ๋ค๋ฅด์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก public score๋ ์ ์ฒด ๋ฐ์ดํฐ ์ค ์ผ๋ถ๋ง์ ์ํ๋งํ์ฌ ์ฑ์ ํ๊ณ , private score๋ ์ ์ฒด ๋ฐ์ดํฐ ์ค ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋์์ผ๋ก ์ฑ์ ํฉ๋๋ค.
- ์ฐธ๊ฐ์๋ค์ด ์ป์ public score๋ ๋ฆฌ๋๋ณด๋์ ๊ณต๊ฐ๋๋ฉฐ ์ด๋ฅผ ๋ฐํ์ผ๋ก ํ์ฌ ์์น๋ฅผ ๊ฐ๋ ํ ์ ์์ต๋๋ค.
Q: Gradient ๊ฐ ๊ฒฝ์ฌ๋ผ๋ ์๋ฏธ์ธ๋ฐ, ํฌ๋ค๋ ๊ฑด ๊ฒฝ์ฌ๋๊ฐ ๋๋ค, ๊ฒฝ์ฌ๊ฐ ๊ธํ๋ค๋ ๋ป์ด ์๋๊ฐ์?
A: ์ค์ ๊ฐ๊ณผ ์์ธก๊ฐ์ ์ฐจ์ด๊ฐ ํฌ๋ค๋ผ๋ ๋ป์ด๋ฉฐ ์์ธก์ ์ ๋ชปํ๋ค๋ ์๋ฏธ.
๐๐ป ๊ทธ๋์ boosting ๋ชจ๋ธ์ ํ๋ฆฐ (์์ธก์ ์ ๋ชปํ) ๋ฌธ์ ๋ก ๋ค์ ๋ชจ๋ธ์ ๋ง๋ค์ด ํ์ตํ๊ณ ์์ธกํ๋ค. ํ๋ฆฐ ๋ฌธ์ ๋ฅผ ๋ง์ถ ๋ ๊น์ง ํ์ด๋ณด๊ฒ ํ๋ค.
Q: ๋ฐ์ฐ์ ์ฐ๋ ค๊ฐ ๋์ ๊ทธ๋ํ๋ฅผ ๊ฐ์ ธ๊ฐ์ผ ๋ ๋น ๋ฅด๊ฒ ์์ธกํ ์ ์๋์?
A: ์๋๋ ๋น ๋ฅด์ง๋ง ์์ค ๊ฐ์ ํด ์ ์๋ค. (์ฑ๋ฅ์ด ๋ฎ์ ์ ์๋ค.) ์ ๋นํ learning rate๋ฅผ ์ฌ์ฉํด์ผํ๋ค. ๊ทธ๋ ๋ค๊ณ ๋ฌ๋๋ ์ดํธ๋ฅผ ๋๋ฌด ์๊ฒ ์ค์ ํ๋ฉด ํ์ต์ด ์ค๋ ๊ฑธ๋ฆฝ๋๋ค.