ํ๋ผ๋ฏธํฐ(Parameter)
-
- ๋งค๊ฐ๋ณ์
- ๋ชจ๋ธ์ ๊ตฌ์ฑ ์์์ด์ ๋ฐ์ดํฐ๋ก๋ถํฐ ํ์ต ๋๋ ๊ฒ.
- ๋ชจ๋ธ ๋ด๋ถ์์ ๊ฒฐ์ ๋๋ ๋ณ์
ํ์ดํผ ํ๋ผ๋ฏธํฐ(Hyper Parameter)
-
- ํ์ต ์์ ์ ๋ฏธ๋ฆฌ ๊ฐ์ ๊ฒฐ์ ํ๋ ๊ฒ
- ์ฌ์ฉ์ ์ง์ ํ๋ผ๋ฏธํฐ
- ํ์ดํผ ํ๋ผ๋ฏธํฐ ํ๋์ ์๋์ผ๋ก ์ํํ๋ ๊ธฐ์ ์ Auto ML
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ณธ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํด ๋ชจ๋ธ train > ๊ต์ฐจ๊ฒ์ฆ ์ํ
๊ต์ฐจ ๊ฒ์ฆ(Cross Validation)
- ๊ณ ์ ๋ train set๊ณผ test set์ผ๋ก ํ๊ฐ๋ฅผ ํ๊ณ , ๋ฐ๋ณต์ ์ผ๋ก ๋ชจ๋ธ์ ํ๋ํ๋ค๋ณด๋ฉด test set์๋ง ๊ณผ์ ํฉ๋๋ ๊ฒฐ๊ณผ ๋ฐ์
- ์ด๋ฌํ ๋ฌธ์ ์ ์ ๊ต์ฐจ๊ฒ์ฆ์ ํตํด ํด๊ฒฐ
k-๊ฒน ๊ต์ฐจ ๊ฒ์ฆ(k-fold cross validation)
- ๋ฐ์ดํฐ๋ฅผ k๊ฐ์ ๋ฐ์ดํฐ ํด๋๋ก ๋ถํ
- ๊ฐ Iteration๋ง๋ค test set์ ๋ค๋ฅด๊ฒ ํ ๋นํ์ฌ ์ด k๊ฐ์ ๋ฐ์ดํฐ ํด๋ ์ธํธ๋ฅผ ๊ตฌ์ฑ
๋ฆฌ๋ธ-p-์์ ๊ต์ฐจ ๊ฒ์ฆ(Leave-p-out cross validation)
- ์ ์ฒด ๋ฐ์ดํฐ(์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ์ํ๋ค) ์ค์์ p๊ฐ์ ์ํ์ ์ ํํ์ฌ ๊ทธ๊ฒ์ ๋ชจ๋ธ ๊ฒ์ฆ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
๋ฆฌ๋ธ-p-์์ ๊ต์ฐจ ๊ฒ์ฆ(Leave-p-out cross validation)
- ๋ฆฌ๋ธ-p-์์ ๊ต์ฐจ ๊ฒ์ฆ์์ p=1์ผ ๋์ ๊ฒฝ์ฐ
- ๋ฆฌ๋ธ-p-์์ ๊ต์ฐจ ๊ฒ์ฆ๋ณด๋ค ๊ณ์ฐ ์๊ฐ ๋ถ๋ด ์ ์
๊ณ์ธต๋ณ k-๊ฒน ๊ต์ฐจ ๊ฒ์ฆ(Stratified k-fold cross validation)
- ์ฃผ๋ก Classification ๋ฌธ์ ์์ ์ฌ์ฉ๋๋ฉฐ, label์ ๋ถํฌ๊ฐ ๊ฐ ํด๋์ค๋ณ๋ก ๋ถ๊ท ํ์ ์ด๋ฃฐ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ
- ๋ฆฌ๋ธ-p-์์ ๊ต์ฐจ ๊ฒ์ฆ๋ณด๋ค ๊ณ์ฐ ์๊ฐ ๋ถ๋ด ์ ์
ํ์ดํผ ํ๋ผ๋ฏธํฐ ํ๋ ๋ฐฉ๋ฒ
####1. Grid Search
- ๋ชจ๋ธ ํ์ดํผ ํ๋ผ๋ฏธํฐ์ ๋ฃ์ ์ ์๋ ๊ฐ๋ค์ ์์ฐจ์ ์ผ๋ก ์ ๋ ฅํ๋ค์ ๊ฐ์ฅ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ค์ ์ฐพ๋ ํ์ ๋ฐฉ๋ฒ
params = {'min_impurity_decrease': np.arange(0.0001, 0.001, 0.0001), 'max_depth': range(5, 20, 1), 'min_samples_split': range(2, 100, 10) } params
output :
{โmin_impurity_decreaseโ: array([0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007, 0.0008, 0.0009]), โmax_depthโ: range(5, 20),
โmin_samples_splitโ: range(2, 100, 10)}
- ๋จ์ : ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ๋ฃ๊ธฐ ๋๋ฌธ์ ์ซ์๋ฅผ ์ถ๊ฐํ ์๋ก ์๊ฐ์ด ์์ฃผ ์ค๋ ๊ฑธ๋ฆฐ๋ค
####2. Random Search
- ํ์ดํผ ํ๋ผ๋ฏธํฐ ๊ฐ์ ๋๋คํ๊ฒ ๋ฃ์ด๋ณด๊ณ ๊ทธ์ค ์ฐ์ํ ๊ฐ์ ๋ณด์ธ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ฉํด ๋ชจ๋ธ์ ์์ฑ
- ๋ถํ์ํ ํ์ ํ์๋ฅผ ์ค์ธ๋ค
params = {'min_impurity_decrease': uniform(0.0001, 0.001), 'max_depth': randint(20, 50), 'min_samples_split': randint(2, 25), 'min_samples_leaf': randint(1, 25), } params
output :
{โmin_impurity_decreaseโ: <scipy.stats._distn_infrastructure.rv_frozen at 0x7fed449f9fd0>, โmax_depthโ: <scipy.stats._distn_infrastructure.rv_frozen at 0x7fed44d52be0>, โmin_samples_splitโ: <scipy.stats._distn_infrastructure.rv_frozen at 0x7fed449f9130>, โmin_samples_leafโ: <scipy.stats._distn_infrastructure.rv_frozen at 0x7fed44befd90>}
https://colab.research.google.com/github/rickiepark/hg-mldl/blob/master/5-2.ipynb#scrollTo=dYI3HwMQbtnr