์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ๋์
- ๋ค์ดํฐ๋ธ
- ๊นํ
- ์ธํ๋ฐ
- ๋ฐ์ดํฐ๋ถ์
- Kaggle
- ๋ถ์
- nlp
- AI
- ํ๊ตญ์ด์๋ฒ ๋ฉ
- ๋ฆฌ์กํธ
- Git
- ์๋๋ก์ด๋์คํ๋์ค
- ์ํ์ฝ๋ฉ
- ๋ฅ๋ฌ๋
- cs231n
- ๋ฐ์ดํฐ
- linearalgebra
- ์๊ณ ๋ฆฌ์ฆ
- Titanic
- ํ์ดํ๋
- ๋จธ์ ๋ฌ๋
- ์ ํ๋์ํ
- ๋ฐฑ์ค
- c++
- ์๋ฒ ๋ฉ
- ๋ฐ์ดํฐ์๊ฐํ
- ๊ฒฐ์ ํธ๋ฆฌ
- native
- react
- Today
- Total
yeon's ๐ฉ๐ป๐ป
๋์ด๋ธ ๋ฒ ์ด์ฆ (Naive Bayes Classification) ๋ณธ๋ฌธ
๋์ด๋ธ ๋ฒ ์ด์ฆ (Naive Bayes Classification)
yeon42 2021. 11. 5. 18:13๋จธ์ ๋ฌ๋ - 1. ๋์ด๋ธ ๋ฒ ์ด์ฆ ๋ถ๋ฅ (Naive Bayes Classification)
๋์ด๋ธ ๋ฒ ์ด์ฆ๋ ์คํธ ๋ฉ์ผ ํํฐ, ํ ์คํธ ๋ถ๋ฅ, ๊ฐ์ ๋ถ์, ์ถ์ฒ ์์คํ ๋ฑ์ ๊ด๋ฒ์ํ๊ฒ ํ์ฉ๋๋ ๋ถ๋ฅ ๊ธฐ๋ฒ์ ๋๋ค. ๋์ด๋ธ ๋ฒ ์ด์ฆ ๋ถ๋ฅ์ ๋ํด์ ๋ฐฐ์ฐ๊ธฐ ์ํด์๋ ๋ฒ ์ด์ฆ ์ ๋ฆฌ๋ฅผ ๋จผ์ ์์์ผ
bkshin.tistory.com
์ ๋ธ๋ก๊ทธ๋ฅผ ํ์ฌํ๋ฉฐ ๊ณต๋ถ
* ๋ชจ๋ ํ ์คํธ์ ์ด๋ฏธ์ง์ ์ถ์ฒ๋ ์ ๋ธ๋ก๊ทธ์ ๋๋ค.
๋์ด๋ธ ๋ฒ ์ด์ฆ๋ ์คํธ ๋ฉ์ผ ํํฐ, ํ ์คํธ ๋ถ๋ฅ, ๊ฐ์ ๋ถ์, ์ถ์ฒ ์์คํ ๋ฑ์ ๊ด๋ฒ์ํ๊ฒ ํ์ฉ๋๋ ๋ถ๋ฅ ๊ธฐ๋ฒ
๋จธ์ ๋ฌ๋์ ํตํด ์ด๋ค ๋๋ฌผ์ ์ฌ์ง์ด ์์ ์ ๊ทธ ๋๋ฌผ์ด ๊ฐ์ธ์ง ๊ณ ์์ด์ธ์ง ์ผ๋ฃฉ๋ง์ธ์ง ๊ตฌ๋ถํ ์ ์๋ค.
์ฌ์ ์ ์๋ง์ ๊ฐ, ๊ณ ์์ด, ์ผ๋ฃฉ๋ง ์ฌ์ง์ ๋ํ ๋ค์ํ ์์ธ, ํ์ , ์๊น์, ํธ์ ์ ๋ฑ์ ํ์ต์ํจ๋ค.
ํ์ต๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ดํ ๊ฐ, ๊ณ ์์ด, ์ผ๋ฃฉ๋ง์ ์ ํํ ๋ถ๋ฅํ ์ ์๊ณ , ์ด์ ํ์ต์ ์ฌ์ฉ๋์๋ ์ฌ์ง ๋ฟ ์๋๋ผ ์๋ก์ด ์ฌ์ง์ผ๋ก๋ ์ ํํ ๋ถ๋ฅ ๊ฐ๋ฅํ๋ค.
์ด๋ ๊ฒ ์ฌ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ถฉ๋ถํ ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ ์ง๋ํ์ต(Supervised Learning)์ด๋ผ๊ณ ํ๋ค.
์ง๋ํ์ต์ ํ๊ธฐ ์ํ ์ฒซ ๋จ๊ณ๋ Feature์ Label์ ํ์ ํ๋ ๊ฒ์ด๋ค.
- Label์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ถ๋ฅ ๊ฒฐ๊ณผ (ex. ๊ฐ, ๊ณ ์์ด, ์ผ๋ฃฉ๋ง)
- ์ด Label ๊ฒฐ๊ณผ์ ์ํฅ์ ์ฃผ๋ ์์: Feature (ex. ๋๋ฌผ์ ์์ธ, ํ์ , ์๊น์, ํธ์ ์ ๋ฑ)
์ฆ ์๋ง์ ๋๋ฌผ์ ์์ธ, ํ์ , ์๊น์, ํธ์ ์(Feature)์ ๊ธฐ๋ฐ์ผ๋ก ๊ทธ ๋๋ฌผ์ด ๊ฐ์ธ์ง ๊ณ ์์ด์ธ์ง ์ผ๋ฃฉ๋ง์ธ์ง(Label) ๋ถ๋ฅํ๋ ๊ฒ
๋์ด๋ธ ๋ฒ ์ด์ฆ ๋ถ๋ฅ ๋ํ ์ง๋ํ์ต์ ์ผ์ข
- ๋ฐ๋ผ์ Feature๊ณผ Label์ด ํ์ํ๋ค.
- Feature์ ๋ฐ๋ผ Label์ ๋ถ๋ฅํ๋๋ฐ ๋ฒ ์ด์ฆ ์ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํน์ง
- ๋ํ ๋ชจ๋ Feature๊ฐ ์๋ก ๋ ๋ฆฝ์ ์ด์ด์ผ ํ๋ค๋ ๊ฐ์ ์ด ํ์
Classification Workflow
- ๋ถ๋ฅ์ ์ฒซ ์คํ ์ feature๊ณผ label์ ํ์ ํ๋ ๊ฒ
label -> ์คํธ ๋ฉ์ผ์ธ์ง ์๋์ง์ ์ฌ๋ถ
feature -> ์คํธ ๋ฉ์ผ์ ์ ๋ชฉ ๋ฐ ๋ด์ฉ์ ๊ธฐ์ฌ๋ ๊ด๊ณ ์ฑ ๋จ์ด, ๋น์์ด, ์ฑ์ ์ฉ์ด ๋ฑ
๋ถ๋ฅ๋ ๋ ๋จ๊ณ๋ก ๋๋์ด์ง: ํ๋ จ ๋จ๊ณ & ํ ์คํธ ๋จ๊ณ
- ํ๋ จ ๋จ๊ณ์์๋ ์ฃผ์ด์ง training data set์ ํตํด classifier ๋ชจ๋ธ์ ํ๋ จ์ํค๊ณ ,
ํ ์คํธ ๋จ๊ณ์์๋ classifier ๋ชจ๋ธ์ ์ฑ๋ฅ(performance)์ ํ๊ฐ
- ์ฑ๋ฅ(performance)๋ ์ ๋ฐ๋(accuracy), ์ ํ์ฑ(precision), ์ฌํ์จ(recall) ๋ฑ์ผ๋ก ์ธก์ ๊ฐ๋ฅํ๋ค.
๋์ด๋ธ ๋ฒ ์ด์ฆ ๋ถ๋ฅ๊ธฐ(Navie Bayes Classifier)์ด๋?
- ๋์ด๋ธ ๋ฒ ์ด์ฆ ๋ถ๋ฅ๋ ๋ฒ ์ด์ฆ ์ ๋ฆฌ์ ๊ธฐ๋ฐํ ํต๊ณ์ ๋ถ๋ฅ ๊ธฐ๋ฒ
- ๊ฐ์ฅ ๋จ์ํ ์ง๋ํ์ต(supervised learning) ์ค ํ๋
- ๋น ๋ฅด๊ณ , ์ ํํ๋ฉฐ, ๋ฏฟ์๋งํ ์๊ณ ๋ฆฌ์ฆ; ์ ํ์ฑ๋ ๋๊ณ ๋์ฉ๋ ๋ฐ์ดํฐ์ ๋ํด ์๋๋ ๋น ๋ฆ
- ๋์ด๋ธ ๋ฒ ์ด์ฆ๋ feature๋ผ๋ฆฌ ์๋ก ๋ ๋ฆฝ์ด๋ผ๋ ์กฐ๊ฑด์ด ํ์ํ๋ค.
- ์ฆ, ์คํจ ๋ฉ์ผ ๋ถ๋ฅ์์ ๊ด๊ณ ์ฑ ๋จ์ด์ ๊ฐ์์ ๋น์์ด ๊ฐ์๊ฐ ์๋ก ์ฐ๊ด์ด ์์ด์๋ ์๋จ
๋์ด๋ธ ๋ฒ ์ด์ฆ์ ๋์
ex. ๋ ์จ ์ ๋ณด์ ์ถ๊ตฌ ๊ฒฝ๊ธฐ ์ฌ๋ถ์ ๋ํ ๋ฐ์ดํฐ -> ๋ ์จ์ ๋ํ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ถ๊ตฌ๋ฅผ ํ ๊ฒ์ธ์ง, ์ ํ ๊ฒ์ธ์ง ํ๋ฅ ๊ตฌํ๊ธฐ
- ๋งจ ์ผ์ชฝ ํ ์ด๋ธ: ๋ ์จ์ ๋ฐ๋ผ ์ถ๊ตฌ๋ฅผ ํ๋์ง ์ํ๋์ง ๋ณด์ฌ์ฃผ๋ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ
- ์ด ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ training์์ผ ๋ชจ๋ธ์ ๋ง๋ ๋ค ๊ทธ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ค ๋ ์จ๊ฐ ์ฃผ์ด์ก์ ๋ ์ถ๊ตฌ๋ฅผ ํ ์ง ์ ํ ์ง ํ๋จํ๋ ๊ฒ์ด ๋ชฉ์
- Frequency Table: ์ฃผ์ด์ง ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ํ์๋ก ํํํ ๊ฒ
- Likelihood Table1์ ๊ฐ feature(๋ ์จ)์ ๋ํ ํ๋ฅ , ๊ฐ label(์ถ๊ตฌ ์ฌ๋ถ)์ ๋ํ ํ๋ฅ ์ ๋ํ๋ธ ๊ฒ
- Likelihood Table2์ ๊ฐ feature์ ๋ํ ์ฌํ ํ๋ฅ ์ ๊ตฌํ ๊ฒ
* Feature๊ฐ 1๊ฐ์ผ ๋ ๋์ด๋ธ ๋ฒ ์ด์ฆ ๋ถ๋ฅ
Q1. ๋ ์จ๊ฐ overcast์ผ ๋ ๊ฒฝ๊ธฐ๋ฅผ ํ ํ๋ฅ ?
P(Yes|Overcast) = P(Overcast|Yes)*P(Yes) / P(Overcast) <- ๋ฒ ์ด์ฆ ์ ๋ฆฌ์ ์ํด
1. ์ฌ์ ํ๋ฅ
P(Overcast) = 4/14 = 0.29
P(Yes) = 9/14 = 0.64
2. ์ฌํ ํ๋ฅ
P(Overcast|Yes) = 4/9 = 0.44
3. ๋ฒ ์ด์ฆ ์ ๋ฆฌ ๊ณต์์ ๋์
P(Yes|Overcast) = 0.44*0.64 / 0.29 = 0.98
Q2. ๋ ์จ๊ฐ Overcast์ผ ๋ ๊ฒฝ๊ธฐ๋ฅผ ํ์ง ์์ ํ๋ฅ ?
P(No|Overcast) = P(Overcast|No)*P(No) / P(Overcast)
1. ์ฌ์ ํ๋ฅ
P(Overcast) = 4/14 = 0.29
P(No) = 5/14 = 0.36
2. ์ฌํ ํ๋ฅ
P(Overcast|No) = 0/5 = 0
3. ๋ฒ ์ด์ฆ ์ ๋ฆฌ ๊ณต์์ ๋์
P(No|Overcast) = 0*0.36 / 0.29 = 0
-> P(Yes|Overcast) = 0.98, P(No|Overcast) = 0
์ฆ, ๋ ์จ๊ฐ Overcast์ผ ๋ ์ถ๊ตฌ๋ฅผ ํ ํ๋ฅ ์ 0.98, ์ถ๊ตฌ๋ฅผ ํ์ง ์์ ํ๋ฅ ์ 0
-> ๋ ํ๋ฅ ์ ๋น๊ตํ ๋ค ๋ ๋์ ํ๋ฅ ์ label๋ก ๋ถ๋ฅํ๋ฉด ๋๋ค.
-> ๋์ด๋ธ ๋ฒ ์ด์ฆ ๋ถ๋ฅ๊ธฐ๋ ๋ ์จ๊ฐ Overcast์ผ ๋๋ ์ถ๊ตฌ๋ฅผ ํ ๊ฒ์ด๋ผ๊ณ ํ๋จ
* Feature๊ฐ multiple์ผ ๋ ๋์ด๋ธ ๋ฒ ์ด์ฆ ๋ถ๋ฅ
Q1. ๋ ์จ๊ฐ overcast & ๊ธฐ์จ์ด mild์ผ ๋ ๊ฒฝ๊ธฐ๋ฅผ ํ ํ๋ฅ ์?
P(Yes | Overcast, Mild) = P(Overcast, Mild | Yes)*P(Yes) / P(Overcast, Mild)
P(Overcast, Mild | Yes) = P(Overcast|Yes) * P(Mild|Yes)
P(Overcast, Mild) = P(Overcast) * P(Mild) = (4/14) * (6/14) = 0.1224
1. ์ฌ์ ํ๋ฅ
P(Yes) = 9/14 = 0.64
2. ์ฌํ ํ๋ฅ
P(Overcast|Yes) = 4/9 = 0.44
P(Mild|Yes) = 4/9 = 0.44
3. ๋ฒ ์ด์ฆ ๊ณต์์ ๋์
P(Overcast, Mild | Yes) = P(Overcast|Yes) * P(Mild|Yes) = 0.44 * 0.44 = 0.1936
P(Yes | Overcast, Mild) = 0.1936 * 0.64 / 0.1224 = 1
Q2. ๋ ์จ๊ฐ overcast & ๊ธฐ์จ์ด mild์ผ ๋ ๊ฒฝ๊ธฐ๋ฅผ ํ์ง ์์ ํ๋ฅ ์?
P(No | Overcast, Mild) = P(Overcast, Mild | No) * P(No) / P(Overcast, Mild)
P(Overcast, Mild | No) = P(Overcast | No) * P(Mild | No)
1. ์ฌ์ ํ๋ฅ
P(No) = 5/14 = 0.36
2. ์ฌํ ํ๋ฅ
P(Overcast | No) = 0/5 = 0
P(Mild | No) = 2/5 = 0.4
3. ๋ฒ ์ด์ฆ ๊ณต์์ ๋์
P(Overcast, Mild | No) = 0 * 0.4 = 0
P(No | Overcast, Mild) = 0 * 0.36 / 0.1224 = 0
-> ์ถ๊ตฌ๋ฅผ ํ ํ๋ฅ ์ 1์ด๊ณ , ์ถ๊ตฌ๋ฅผ ํ์ง ์์ ํ๋ฅ ์ 0
- ์ถ๊ตฌ๋ฅผ ํ ํ๋ฅ ์ด ๋ ํฌ๊ธฐ ๋๋ฌธ์ ๋ ์จ๊ฐ overcast์ด๊ณ ๊ธฐ์จ์ด mild์ผ ๋๋ ์ถ๊ตฌ๋ฅผ ํ ๊ฒ์ด๋ผ๊ณ ๋ถ๋ฅํ๋ค.
- ์ด๋ ๋ฏ ๋์ด๋ธ ๋ฒ ์ด์ฆ๋ ๋ฒ ์ด์ฆ ์ ๋ฆฌ๋ฅผ ํ์ฉํด ํ๋ฅ ์ด ๋ ํฐ label๋ก ๋ถ๋ฅํ๋ค.
๋์ด๋ธ ๋ฒ ์ด์ฆ (naive bayes) ์ ์ฅ๋จ์
* ์ฅ์
1. ๊ฐ๋จ, ๋น ๋ฅด๊ณ ์ ํํ ๋ชจ๋ธ
2. computation cost๊ฐ ์ ์ (๋น ๋ฆ)
3. ํฐ ๋ฐ์ดํฐ์ ์ ์ ํฉ
4. ์ฐ์ํ๋ณด๋ค ์ด์ฐํ ๋ฐ์ดํฐ์์ ์ฑ๋ฅ์ด ์ข์
5. multiple class ์์ธก์ ์ํด์๋ ์ฌ์ฉ ๊ฐ๋ฅ
* ๋จ์
feature๊ฐ ๋ ๋ฆฝ์ฑ์ด ์์ด์ผ ํ๋ค.
- but, ์ค์ ๋ฐ์ดํฐ์์ ๋ชจ๋ feature๊ฐ ๋ ๋ฆฝ์ธ ๊ฒฝ์ฐ๋ ๋๋ฌผ๋ค.
(feature๊ฐ ๋ ๋ฆฝ์ฑ์ด ์๋ค: feature๊ฐ ์๋ก ์๊ด๊ด๊ณ๊ฐ ์๋ค๋ ๋ป)
- so ์ค์ํ์์ ๋ฐ๋ก ์ ์ฉํ๊ธฐ๋ ์ด๋ ค์์ด ์์
'Computer ๐ป > Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ทธ๋ผ๋์ธํธ ๋ถ์คํธ (Gradient Boost) (0) | 2021.11.07 |
---|---|
์์ด๋ค ๋ถ์คํธ (AdaBoost) (0) | 2021.11.07 |
๋ฒ ์ด์ฆ ์ถ์ (Bayesian Estimation) (0) | 2021.11.05 |
์์ ๋ค์ ๊ธฐ๋ ๊ฒฐ์ ํธ๋ฆฌ(Decision Tree) ๋ค์ ์ ๋ฆฌํ๊ธฐ ํธํธ (0) | 2021.11.03 |
์์๋ธ ๋ชจ๋ธ (0) | 2021.11.03 |