Study/Machine Learning

[ML] Decision Tree (μ˜μ‚¬κ²°μ • λ‚˜λ¬΄)

Doyun+ 2021. 6. 21. 21:52

π–£π–Ύπ–Όπ—‚π—Œπ—‚π—ˆπ—‡ 𝖳𝗋𝖾𝖾

= λ‚˜λ¬΄κ°€ λ’€μ§‘νžŒ λͺ¨μ–‘

- 제일 κΌ­λŒ€κΈ°μ— ν•˜λ‚˜μ˜ Root Node

- 각 가지듀은 Branch(or Edge)

- μžμ‹μ΄ μžˆλŠ” NodeλŠ” Internal Node(or Decision Node)

- κ°€μž₯ 끝에 μžμ‹μ΄ μ—†λŠ” NodeλŠ” Leaf Node(or Terminal Node, External Node)

​​

𝖦𝖾𝗇𝖾𝗋𝖺𝗍𝗂𝗇𝗀 π– π—…π—€π—ˆπ—‹π—‚π—π—π—†

쒋은 트리의 기쀀은 λ¬΄μ—‡μΌκΉŒ ?

- λͺ¨λΈμ˜ μ •ν™•λ„λ‚˜ 트리의 높이가 기쀀이 λœλ‹€

- 트리의 λ†’μ΄λŠ” μ΅œλŒ€ν•œ 짧은 것 (λΉ λ₯Έ μˆ˜ν–‰ 속도)

- Leaf Nodeμ—μ„œ ν†΅μΌλœ Label의 λ°μ΄ν„°λ§Œ λ‚¨λŠ” 것 (높은 λΆ„λ₯˜ 정확도, μ˜μ‚¬κ²°μ • 정확도)

​

μ²˜μŒμ— μ–΄λ–€ Featureλ₯Ό κ³ λ €ν•˜λŠ”κ°€μ— 따라 트리 κΉŠμ΄κ°€ λ‹¬λΌμ§€λŠ”λ°, μ–΄λ–€ λ°©λ²•μœΌλ‘œ 트리λ₯Ό μƒμ„±ν• κΉŒ ?

- Base : 트리의 생성 방법은 Root Node ~ Leaf Node둜 이어짐

- Nodeμ—μ„œ κ³ λ €ν•  데이터가 이미 ν•˜λ‚˜μ˜ classμ—λ§Œ μ†ν•˜κ±°λ‚˜, 더 이상 κ³ λ €ν•  Featureκ°€ μ—†μœΌλ©΄ Leaf Node

- 데이터듀을 κ°€μž₯ 잘 λ‚˜λˆ μ£ΌλŠ” Featureλ₯Ό μš°μ„  선택

- μ„ νƒλœ Feature에 λŒ€ν•œ μ‘°κ±΄λ³„λ‘œ μžμ‹ Node 생성

- 각 μžμ‹ Nodeμ—μ„œ ν•΄λ‹Ή 쑰건을 λ§Œμ‘±ν•˜λŠ” λ°μ΄ν„°λ§Œ κ³ λ €ν•˜μ—¬ μ²˜μŒλΆ€ν„° 반볡

​

  • Purity

- ν•œ μͺ½ λ°μ΄ν„°λ§Œ μ‘΄μž¬ν•  수둝 더 pure ν•˜λ‹€

ex) { o, o, x, x, x, x } 보닀 { x, x, x, x, x, x }κ°€ 더 pure

​

  • Entropy (Impurity)

- Purity의 λ°˜λŒ€

- 0 ~ 1 μ‚¬μ΄μ˜ κ°’ λ²”μœ„λ₯Ό κ°€μ§„λ‹€

- Entropyκ°€ 크닀 = 더 Chaotic ν•˜λ‹€ = 뢄석할 정보가 더 λ§Žλ‹€

 

  • μ—”νŠΈλ‘œν”Ό μˆ˜μ‹

Entropyλ₯Ό tree 생성에 μ–΄λ–»κ²Œ μ μš©ν• κΉŒ ?

- Information Gain ν™œμš© = λΆ€λͺ¨λ…Έλ“œ Entropy — μžμ‹λ…Έλ“œ Entropy

- λΆ€λͺ¨λ…Έλ“œμ—μ„œ μ •λ³΄μ˜ ν•¨λŸ‰μ΄ 더 크닀

- μžμ‹λ…Έλ“œκ°€ μ—¬λŸ¬κ°œμΈ κ²½μš°κ°€ 많기 λ•Œλ¬Έμ—, Weighted Average Entropy of Children을 κ΅¬ν•˜μ—¬ IG ꡬ함

- μžμ‹ Entropy 값에 Instance 개수만큼 κ³±ν•΄μ£ΌλŠ” 것

- IGκ°€ κ°€μž₯ 큰 Feature 선택, Featureλ³„λ‘œ IGλ₯Ό κ³„μ‚°ν•˜κ³  트리의 κ²°μ •λ…Έλ“œλ‘œ λ¨Όμ € 선택

 

 

Featureκ°€ Real-value Feature에 λŒ€ν•΄μ„œλŠ” μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒ ?

- Value ‘bin’을 μ‚¬μš©

- νŠΉμ • Root Nodeλ‘œλΆ€ν„° λͺ¨μ’…μ˜ λΆ„κΈ° ( *열린ꡬ간 : [], λ‹«νžŒκ΅¬κ°„ : () )

​

 

* Tree λͺ¨μ–‘에 λ”°λ₯Έ μš©μ–΄

- edge에 ν™”μ‚΄ν‘œ μ‘΄μž¬μœ λ¬΄κ°€ 큰 의미λ₯Ό κ°€μ§€λ―€λ‘œ κ΅¬λΆ„ν•˜μ—¬ μ‚¬μš©

Balanced Tree / Deep Tree / Bushy Tree / Left,Right Skewed

 

Decision TreeλŠ” Overfitting 되기 μ‰½λ‚˜ ?

- 쉽닀. κ·Έλž˜μ„œ Model의 Complexity μ€‘μš”

- ν•™μŠ΅ν•˜λŠ” μˆœκ°„, 이미 Overfitting λ˜λŠ” μ§€ 정해짐

- Featureλ³„λ‘œ IGλ₯Ό κ³ λ €ν•˜μ—¬ μœ„μ—μ„œ λ°‘μœΌλ‘œ λ‚΄λ €μ˜¨λ‹€ (ν•™μŠ΅λ°μ΄ν„°μ— κ³Όν•˜κ²Œ 맞좰짐)

- ν˜„μž¬ λ…Έλ“œμ—μ„œ 졜적으둜 λ³΄μ΄λŠ” Featureλ₯Ό μ„ νƒν•˜κ³ , λ’€μͺ½ λ…Έλ“œλŠ” μ‹ κ²½μ“°μ§€ μ•ŠλŠ”λ‹€

- 첫 단좔뢀터 잘λͺ»λΌμ›Œμ§„ μ…ˆ (λ‚˜λΉ„νš¨κ³Ό)

​

Decision Tree의 Feature 값듀은 Normalization이 ν•„μš”ν•œκ°€ ?

- ν•„μš”μ—†λ‹€. 수치만 바뀔뿐 같은 λ…Έλ“œ ν˜•νƒœμ΄λ‹€

​

π–£π–Ύπ–Όπ—‚π—Œπ—‚π—ˆπ—‡ 𝖳𝗋𝖾𝖾 π–²π—Žπ—†π—†π–Ίπ—‹π—’

- Model κ΅¬ν˜„κ³Ό 이해가 쉽닀 (μ‚¬λžŒμ΄ 눈으둜 보고 μ΄ν•΄ν•˜κ³  μ„€λͺ… κ°€λŠ₯ [White Box])

- Powerfulν•œ Model이 μ•„λ‹ˆλΌ, λ³΅μž‘ν•œ λ¬Έμ œμ—μ„œλŠ” μ„±λŠ₯이 떨어짐