-
[๋จธ์ ๋ฌ๋] ํผ์๊ณต๋ถํ๋ ๋จธ์ ๋ฌ๋+๋ฅ๋ฌ๋ Ch01
2024. 2. 27.
01-1 ์ธ๊ณต์ง๋ฅ๊ณผ ๋จธ์ ๋ฌ๋, ๋ฅ๋ฌ๋
์ธ๊ณต์ง๋ฅ์ด๋?
์ธ๊ณต์ง๋ฅ์ ์ฌ๋์ฒ๋ผ ํ์ตํ๊ณ ์ถ๋ก ํ ์ ์๋ ์ง๋ฅ์ ๊ฐ์ง ์ปดํจํฐ ์์คํ ์ ๋ง๋๋ ๊ธฐ์ ์ด๋ค.
- ์ธ๊ณต์ผ๋ฐ์ง๋ฅ=๊ฐ์ธ๊ณต์ง๋ฅ : ์ฌ๋๊ณผ ๊ตฌ๋ถํ๊ธฐ ์ด๋ ค์ด ์ง๋ฅ์ ๊ฐ์ง ์ปดํจํฐ ์์คํ ex) ์ํ her
- ์ฝ์ธ๊ณต์ง๋ฅ: ์ฌ๋์ ์ผ์ ๋์์ฃผ๋ ๋ณด์กฐ ์ญํ ๋ง ๊ฐ๋ฅ ex) ์๋ฆฌ, ์ํ๊ณ , ์์ ์ถ์ฒ
๋จธ์ ๋ฌ๋์ด๋?
๋จธ์ ๋ฌ๋ (machine learning)์ ๊ท์น์ ์ผ์ผ์ด ํ๋ก๊ทธ๋๋ฐํ์ง ์์๋ ์๋์ผ๋ก ๋ฐ์ดํฐ์์ ๊ท์น์ ํ์ตํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๊ตฌํ๋ ๋ถ์ผ์ด๋ค.
์ธ๊ณต์ง๋ฅ์ ‘์ง๋ฅ’์ ๊ตฌํํ๊ธฐ ์ํ ์ํํธ์จ์ด๋ฅผ ๋ด๋นํ๋ ํต์ฌ๋ถ์ผ์ด๊ณ , ํต๊ณํ๊ณผ ๊ด๋ จ์ด ๋๋ค.
๋ํ์ ์ธ ๋จธ์ ๋ฌ๋ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ‘์ฌ์ดํท๋ฐ’
์ด ์ฑ ์์ ์ฌ์ดํท๋ฐ์ ํฌํจ๋ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฐ์ธ ๊ฒ
๋ฅ๋ฌ๋์ด๋?
๋ง์ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ ์ค์ ์ธ๊ณต์ ๊ฒฝ๋ง์ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ฐฉ๋ฒ๋ค์ ํต์นญํ์ฌ ๋ฅ๋ฌ๋์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ธ๊ณต ์ ๊ฒฝ๋ง๊ณผ ๊ฐ์ ๋ง๋ก ์ทจ๊ธ๋๊ธฐ๋ ํ๋ค.
๋ํ์ ์ธ ๋ฅ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ‘ํ ์ํ๋ก์ฐ’
์ด ์ฑ ์์๋ ํ ์ํ๋ก์ฐ๋ฅผ ์ฌ์ฉํ ๋ฅ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ค๋ฃฐ ๊ฒ
01-2 ์ฝ๋ฉ๊ณผ ์ฃผํผํฐ ๋ ธํธ๋ถ
๊ตฌ๊ธ ์ฝ๋ฉ
๊ตฌ๊ธ์์ ๋ง๋ ์น ๋ธ๋ผ์ฐ์ ์์ ํ์ด์ฌ์ ์ธ ์ ์๋ ์คํ ํ๊ฒฝ์ด๋ค. ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ์ ์ฃผํผํฐ ๋ ธํธ๋ถ ๊ฐ๋ฐํ๊ฒฝ.
์ฝ๋ฉ ํ์ผ์ ๋ ธํธ๋ถ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ํ ์คํธ ์ : HTML& markdown
- ์ฝ๋ ์ : ์ฝ๋ & ์คํ๊ฒฐ๊ณผ
์ฝ๋ฉ ๋ ธํธ๋ถ
- ๊ตฌ๊ธ ํด๋ผ์ฐ๋์ ๊ฐ์ ์๋ฒ๋ฅผ ๋ฌด๋ฃ๋ก ์ฌ์ฉ
- ๋์์ ์ฌ์ฉํ ์ ์๋ ๊ฐ์์๋ฒ ์ต๋ 5๊ฐ
01-3 ๋ง์ผ๊ณผ ๋จธ์ ๋ฌ๋
k-์ต๊ทผ์ ์ด์ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ์์ ์ด๋ฆ์ ์๋์ผ๋ก ์๋ ค์ฃผ๋ ๋จธ์ ๋ฌ๋์ ๋ง๋ค์ด๋ณด์.
์์ ๋ถ๋ฅ ๋ฌธ์
(์บ๊ธ์ ๊ณต๊ฐ๋ ๋ฐ์ดํฐ์ ) ์์ ๋ฐ์ดํฐ : ' ๋๋ฏธ' , '๊ณค๋ค๋งค๊ธฐ' , '๋์ด' , '๊ฐ๊ผฌ์น๊ณ ๊ธฐ' '๋ก์น' , ‘๋น์ด’, ์ก์ด’
๋๋ฏธ ๋ฐ์ดํฐ ์ค๋นํ๊ธฐ
- ๋จธ์ ๋ฌ๋์ ํน์ ์กฐ๊ฑด์ ๋ถ์ฌํ์ง ์์๋ ์ค์ค๋ก ๊ธฐ์ค์ ์ฐพ๊ณ , ๋๋ฏธ์ธ์ง ์๋์ง ํ๋ณํจ → ๋ฐฉ๋ํ ๋๋ฏธ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํด์ ์ค์ค๋ก ํ์ตํ๋๋ก ํ๋ค.
์ด์ง ๋ถ๋ฅ
- ๋ถ๋ฅ : ์ฌ๋ฌ ๊ฐ์ ์ข ๋ฅ ์ค ํ๋๋ฅผ ๊ตฌ๋ณํด๋ด๋ ๋ฌธ์
- ์ด์ง ๋ถ๋ฅ: 2๊ฐ์ ํด๋์ค ์ค ํ๋๋ฅผ ๊ณ ๋ฅด๋ ๋ฌธ์
fish_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0, 9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0] fish_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0, 500.0, 340.0, 600.0, 600.0, 700.0, 700.0, 610.0, 650.0, 575.0, 685.0, 620.0, 680.0, 700.0, 725.0, 720.0, 714.0, 850.0, 1000.0, 920.0, 955.0, 925.0, 975.0, 950.0, 6.7, 7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7, 19.9]
- ๋๋ฏธ์ ํน์ง์ ๊ธธ์ด์ ๋ฌด๊ฒ๋ก ํํํ ๊ฒ์ ‘ํน์ฑ’ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์ฆ, ํน์ฑ์ ๋ฐ์ดํฐ์ ํน์ง์ด๋ค. ์ฒซ๋ฒ์งธ ํน์ฑ์ด ๊ธธ์ด, ๋๋ฒ์งธ ํน์ฑ์ด ๋ฌด๊ฒ์ด๋ค.
- matplotlib์ ์ด์ฉํด์ ์ฐ์ ๋(x,y์ ๊ด๊ณ๋ฅผ ์ขํ๊ณ์ ํํํ๋ ๊ทธ๋ํ)๋ก ๋ฐ์ดํฐ๋ฅผ ํํํด๋ณผ ์๋ ์๋ค.
- ์ฝ๋ฉ์๋ ์ด๋ฏธ ํจํค์ง๊ฐ ์ค์น๋์ด์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ค.
- scatter() : ์ฐ์ ๋ ๊ทธ๋ฆฌ๋ ํจ์
- ์ ํ์ (linear)ํ ๋ชจ์ต → ๊ธธ์ด๊ฐ ๊ธธ์๋ก ๋ฌด๊ฒ๊ฐ ๋ง์ด ๋๊ฐ๊ธฐ ๋๋ฌธ
๋น์ด ๋ฐ์ดํฐ ์ค๋นํ๊ธฐ
smelt_length = [9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0] smelt_weight = [6.7, 7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7, 19.9]
์ฐ์ ๋ ๊ทธ๋ํ๋ก ๋ํ๋ด๊ธฐ
์ฒซ ๋ฒ์งธ ๋จธ์ ๋ฌ๋ ํ๋ก๊ทธ๋จ
- k-์ต๊ทผ์ ์ด์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ๋๋ฏธ์ ๋น์ด ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํด๋ณด์.
- ๋จผ์ , ๋๋ฏธ์ ๋น์ด ๋ฐ์ดํฐ๋ฅผ ํ๋์ ๋ฐ์ดํฐ๋ก ํฉ์น๋ค
- ์ฌ์ดํท๋ฐ ํจํค์ง๋ ํน์ฑ์ ๋ฆฌ์คํธ๋ฅผ ์ธ๋ก ๋ฐฉํฅ์ผ๋ก ๋์ด๋จ๋ฆฐ 2์ฐจ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค. ⇒ zip() ํจ์ & list comprehension
์ ๋ต ๋ฐ์ดํฐ ์ค๋นํ๊ธฐ
- ๋๋ฏธ๋ฅผ 1, ๋น์ด๋ฅผ 0์ผ๋ก ํํ
- K- ์ต๊ทผ์ ์ด์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ํด๋์ค์ธ KNeighborsClassifier๋ฅผ ์ํฌํธ
- ํ๋ จ : fit() ๋ฉ์๋ → ํน์ฑ ๋ฐ์ดํฐ์ ์ ๋ต ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํด์ ๊ท์น์ ํ์ต
- ๋ชจ๋ธ : ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ํ๋ก๊ทธ๋จ
- ํ๊ฐ : score() ๋ฉ์๋ → ์ฑ๋ฅ ์ธก์ . 0์์ 1 ์ฌ์ด์ ์ ํ๋(์ ํํ ๋งํ ๊ฐ์ / ์ ์ฒด ๋ฐ์ดํฐ ๊ฐ์) ๋ฐํ. 1๋ก ๊ฐ์๋ก ์ ํ๋๊ฐ ๋์
- ์๋ก์ด ๋ฐ์ดํฐ์ ์ ๋ต ์์ธก : predict() ๋ฉ์๋
KNN ์๊ณ ๋ฆฌ์ฆ
- ์ฃผ์์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ํตํด ๋ค์๋ฅผ ์ฐจ์งํ๋ ๊ฒ์ ์ ๋ต์ผ๋ก ์ฌ์ฉ
- ๋ฐ์ดํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ฌ์ฉํ๊ธฐ ์ด๋ ต
- n_neighbors ๋งค๊ฐ๋ณ์ : ์ฐธ๊ณ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ ๊ฐ๋ฅ
ํธ๋ฌ๋ธ ์ํ
- ํ๋ จ ๋ฐ์ดํฐ์ ํ๊ฒ ๋ฐ์ดํฐ์ ์ํ ์๊ฐ ์ผ์นํ์ง ์์ ๋ ๋ฐ์ํ๋ค. ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ๋ จ์ํฌ ๋ ํ๋ จ ๋ฐ์ดํฐ์ ํ๊ฒ ๋ฐ์ดํฐ์ ์ํ ์๋ ๋ฐ๋์ ์ผ์นํด์ผ ํ๋ค.
'๐ญ Study > : Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ