์ต์ด ์์ฑ ์ผ์ : 2021๋ 7์ 9์ผ 23์ 56๋ถ
๋น์ ์๊ฐ์ ์ฒญ ์ค์?๋ก ์ปด๊ณต ์ ์ ์ผ๋ ๋ค์ 3ํ๋ ์์ ..
๊ทธ๋์ ์ด์ ๊ณผ ์ดํด์ ๋ํ ์ง์ฐฉใ ์ ๊ธฐ์ตํ๋ฉฐ ๋ค์ ํ์ด์ฌ ๊ณต๋ถ๋ฅผ ์์ํด์ผ๊ฒ ๋ค.
๋น์์ unique value๋ฅผ ์ดํดํ๊ธฐ๋ ํ๋ค์๋๋ฐ ๋ค์ ๋์๋ณด๋ ๊ฐํ๊ฐ ์๋กญ๋ค.
์ง๋ 1ํ๊ธฐ, ์๊ฐ์ ์ฒญ ์ค์๋ก ์๊ฐํ ํ ํ๋ ์ ์์ ์ด์๋ AI ํ๋ก์ ํธ ์ ๋ฌธ ์์ ์ ๋ง์ง๋ง ๋ฆฌํฌํธ๋ฅผ ๋ธ๋ก๊ทธ์๋ ์ ๋ฆฌํ๋ค. 10%์ ๊ต์๋์ ์ค๋ช ๊ณผ 90%์ ์ ํ ์ค์ต์ผ๋ก ์ด๋ฃจ์ด์ก๋ ์์ ..
ํฌ๊ธฐํ์ง ๋ง๊ณ ๋ฐ๋ผ๊ฐ๋ณด์๋ ์๊ฐ์ผ๋ก ์กด๋ฒ(์กด๊ทํ๊ฒ ๋ฒํฐ๊ธฐ)ํ๋ค.
์ฒซ๋ฒ์งธ ๋ฆฌํฌํธ ์์ฑ ๋ ์ฝ๋ฉ์์ ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ๋ ๋ชปํ๊ณ late๋ฅผ ์ ๋ฐ์์ฃผ์๋ ๊ต์๋์ด๋ผ ์ธ๋ฒ์งธ ๋ฆฌํฌํธ๋ ์ ์ถ๋ ๋ชปํ์๋๋ฐ, ๋ง์ง๋ง์ด์๋ ์ฌ์ฏ๋ฒ์งธ ๋ฆฌํฌํธ๋ ์ฐ๋ฆฌ ๋ถ๋ฐ ์์์ best report๋ก ๋ฝํ์ ์์คํธ๋ผ ์ ์๊น์ง ๋ฐ์ผ๋ฉฐ ์กด๋ฒ์ ์ฑ๊ณตํ ์์ ์ด์๋ค. ์ด๋ฐ์ ์ง์ง ์๋ชป ๋ค์ด์๋ค๋ ์๊ฐ๊ณผ ๋๋ฌด ํ๋ค์๋๋ฐ, ํํํ ๋ ์ ๋ฐฐ๋ค๋ ์ ๋ง๋๊ณ ํนํ ์ฐ์ฐํ ๊ฐ์ ํ์ด์๋ ์ ๋ฐฐ๋๊ป์ ์ง์ง 1:1 ๊ณผ์ธ์ ๋๋ก ๊ฐ๋ฅด์ณ์ฃผ์ ์ ๊ฐ์ฌํ๊ฒ ํํ๊ณผ์ ๋ ์ ๋ง๋ฌด๋ฆฌํด์ ํํ ๊ณผ์ ๋ณด๊ณ ์๋ ์ฐ์ ๋ณด๊ณ ์๋ก ์ ์ ํด์ ์์คํธ๋ผ ์ ์๋ ๋ฐ์์๋ค.
ํ๋ฒ ๊ณผ์ ๋ฅผ ๋ชป ์ ์ถํด์ PD๋ ๋ ์๊ฐ ๊ฒ ๊ฐ์ง๋ง ๊ทธ๋๋ ๋ฌด์ฌํ P๋ฅผ ๋ฐ์ผ๋ฉฐ ๋๋ฌ๋ ์์ !
์๋ ์ค์ต ๋ด์ฉ์ ํ์ด์ฌ์ผ๋ก data set์ ์ง์ ํ๊ณ unique data๋ค๋ง ๋ฝ์๊ฐ๋ฉฐ tree๋ฅผ ๋ง๋ค์๊ณ , best report๋ก ๋ฝํ ๋ด์ฉ์ด๋ค.
๋ด์ฉ 1. dataset์ค์ ํ, unique value์ฐพ๊ธฐ
1) Make a toy dataset :
โ
ํ์ ๋ฐ์ดํฐ์์ ํน์ง์ด ๋ ๋งํ ๊ฒ๋ค๋ก ์์ฑํ๋ค.
๊ธฐ์์ฌ ํธ๊ด(rc), ํ๋ฒ(std_n), ์ ๊ณต(major)์ผ๋ก dataset ์ค์
2) Make useful functions : unique value๋ฅผ ์ฐพ๊ธฐ ์ํ ํจ์๋ฅผ ๋ง๋ค์ด์ค๋ค.
์ฃผ์ด์ง row data์์, ๋ช๋ฒ์งธ columns๋ฅผ returnํ ๊ฒ์ธ์ง์ ๋ํ ํจ์
3) Finding the unique value ๊ฒฐ๊ณผ
2) Make useful functions :
โ
ํญ๋ชฉ์ ๊ฐ์๋ฅผ ์์๋ผ ์ ์๋ class_counts ํจ์๋ฅผ ๋ง๋ค์ด์ค๋ค.
โ
๊ฐ label๋ค์ด ๋ช๊ฐ์ธ์ง counts์ ์ ์ฅํ๊ณ ๋ง์ง๋ง์ return
3) Finding the unique value ๊ฒฐ๊ณผ
โ
: (ํ์)ํญ๋ชฉ๋ค์ ๋ํด์ Grace 1๋ช , Rodem 3๋ช , Vision 2๋ช ์ด๋ผ๋ ๊ฒ์ ์ ์ ์๋ค. โ
โ
โ
๋ด์ฉ 2 Let's calculate "Entropy" ์ํธ๋กํผ ๊ณ์ฐ
1) In pure dataset, about entrpoy -> Entropy๋ฅผ ๊ตฌํ๊ธฐ ์ํ ํจ์ ์์ฑ
2) pure dataset ์์์ entropy value ์ฐพ๊ธฐ
โ
3) impure dataset ์์์ entropy value ์ฐพ๊ธฐ
โ
: ์ฒซ๋ฒ์งธ๋ ๋๊ฐ๋ฟ์ธ์ impure dataset, ๋๋ฒ์งธ๋ ์๋ ํญ๋ชฉ์ ์๋ ํญ๋ชฉ๋ ์ถ๊ฐํ impure dataset
โ
๋ด์ฉ 3 : calculate information gain ์์ ๋ง๋ค์ด๋์๋ dataset์ ๊ฐ์ง๊ณ ์ถ๊ฐ ์ ๋ณด ์ป๊ธฐ
- ์์ ์๋ฃ mnist, tree_scratch ์๋ฃ ์ฐธ๊ณ
โ
2) How much information do we gain by partitioning on 'CS'?
โ
๋ด๊ฐ ๋ง๋ค์ด๋ dataset ํญ๋ชฉ์์ CS๊ฐ major๋ก ์ ์ฅ๋์ด ์๋ ๊ฒ์ true rows , CS์ธ์ ๋ค๋ฅธ major๊ฐ ์ ์ฅ๋ ํญ๋ชฉ๋ค์ false rows ๋ก ๋ถ๋ฅํ๊ณ ์ถ๋ ฅ๋ฌธ ๋ณด์ด๋๋ก ์ถ๋ ฅํ๊ธฐ
โ
3) How much information do we gain by partitioning on student number >= 19?
โ
์ฃผ์ด์ง ์๋ฃ๋ค์์ ํ๋ฒ์ด 19ํ๋ฒ ์ด์์ธ ํ๋ฒ(19,21)๊ณผ ๊ทธ๋ ์ง ์์ ํ๋ฒ(17)์ ๋ถ๋ฅํ๊ณ uncertainty ๊ตฌํ๊ธฐ
4) Find the best split based on Information Gain ์ ๋ณด๋ค์ ๋ถ๋ฅํ ์ ์๋ ๊ฐ์ฅ ์ข์ ์ง๋ฌธ๊ณผ gain ์ฐพ๊ธฐ
โ
- - ์์ ์๋ฃ tree_scratch ์๋ฃ ์ฐธ๊ณ
<best question ์ถ๋ ฅ>
5) tree๋ฅผ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ํจ์๋ค ์์ฑ
- ์์ ์๋ฃ mnist, tree_scratch ์๋ฃ ์ฐธ๊ณ
<ํธ๋ฆฌ ์ถ๋ ฅ๋ฌธ ํจ์ ์์ฑ>
6) Let's build one Decision Tree : ํธ๋ฆฌ ์ค๊ณ
โ
major, std_n์ ๋ํ question๋ค ์ถ๋ ฅํ๊ณ ๊ณ์ฐํ๊ฒ ํ๊ธฐ
โ
โ
7) ํธ๋ฆฌ ์ถ๋ ฅํ๊ธฐ
+) Which results do you get when you classify 'train_data[0]'?
classifyํจ์๋ฅผ ๋ง๋ค๊ณ train_data์ [0]๋ฒ์งธ ํญ๋ชฉ์ ๋ํด์ classify์ ์ฉํ ๊ฒฐ๊ณผ ์ถ๋ ฅ
โ
++) Then, Which class is 'train_data[0]' classified into?
๋ํ train_data์[0]๋ฒ์งธ ๋ฐ์ดํฐ๋ค์ด ์ด๋ค ํด๋์ค์ ๋ค์ด์๋์ง๋ฅผ ๋ถ๋ฅํ๋ ํจ์๋ฅผ ์์ฑํ๊ณ ํด๋น ๋ฐ์ดํฐ๊ฐ ์ด๋ ํด๋์ค์ ์ํ๋์ง๋ฅผ ์ถ๋ ฅ
10) ๋ง๋ฌด๋ฆฌ : ์ง๊ธ๊น์ง ๋ง๋ค์๋ ํจ์๋ค์ ๋ฐํ์ผ๋ก ํธ๋ฆฌ ์๊ฐํ ํ๊ธฐ
โ
'๊ฐ์ธ ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋คํธ์ํฌ] #01. ๋คํธ์ํฌ์ ๊ธฐ์ด (0) | 2023.08.05 |
---|---|
[C++] ๊ตฌ์กฐ์ฒด ๊ฐ๋ ๋ฐ ์ ์ ์ ์ธ (1) | 2023.05.07 |
[Python] random/while/list/tuple/dict (2) | 2022.09.08 |
[Python] format (2) | 2022.08.28 |
๊ฐ๋ฐ ๊ณผ์ ๊ธฐ๋ก/lossํจ์/ํ๊ท๋ถ์/Linear Regression Using Real Estate Data - sklearn Regression/Regression by Quadratic function (4) | 2022.08.26 |