1.introduction(epoch#2)
-
Upload
haesun-park -
Category
Software
-
view
374 -
download
7
Transcript of 1.introduction(epoch#2)
Introduction to
Machine Learning with Python
1. Introduction
Hongdae Machine Learning Study Epoch #2
1
Contacts
Haesun Park
Email : [email protected]
Meetup: https://www.meetup.com/Hongdae-Machine-Learning-Study/
Facebook : https://facebook.com/haesunrpark
Blog : https://tensorflow.blog
2
Book
ํ์ด์ฌ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผํ์ฉํ๋จธ์ ๋ฌ๋, ๋ฐํด์ .
(Introduction to Machine Learning with Python, Andreas
Muller & Sarah Guido์๋ฒ์ญ์์ ๋๋ค.)
๋ฒ์ญ์์ 1์ฅ๊ณผ 2์ฅ์๋ธ๋ก๊ทธ์์๋ฌด๋ฃ๋ก์ฝ์์์์ต๋๋ค.
์์์๋ํํ๋ฆฌ๋ทฐ๋ฅผ์จ๋ผ์ธ์์๋ณผ์์์ต๋๋ค.
Github:
https://github.com/rickiepark/introduction_to_ml_with_python/
3
์๊ฐ
4
๋จธ์ ๋ฌ๋์ด๋
๋ฐ์ดํฐ์์์ง์์์ถ์ถํ๋์์ ์ ๋๋ค.(vs ๋ฐ์ดํฐ๋ง์ด๋)
ํต๊ณํ, ์ธ๊ณต์ง๋ฅ, ์ปดํจํฐ๊ณผํ์ด์ด์ฐ๋ฌ์ง์ฐ๊ตฌ๋ถ์ผ์ ๋๋ค.
์์ธก๋ถ์predictive analytics์ด๋ํต๊ณ์ ๋จธ์ ๋ฌ๋statistical learning์ผ๋ก๋๋ถ๋ฆฝ๋๋ค.
์ํคํผ๋์์์๊ฐ: โ์ธ๊ณต์ง๋ฅ์ํ๋ถ์ผ๋ก์ปดํจํฐ๊ฐํ์ตํ ์์๋๋กํ๋
์๊ณ ๋ฆฌ์ฆ๊ณผ๊ธฐ์ ์๊ฐ๋ฐํ๋๋ถ์ผโ
Arthur Samuel โField of study that gives computers the ability to learn without
being explicitly programmedโ
๋ช ํํํด๊ฒฐ๋ฐฉ๋ฒ์๋ชจ๋ฅด๊ฑฐ๋ํด๊ฒฐ๋ฐฉ๋ฒ์์ฐพ๊ธฐ์ด๋ ค์ด๋ฌธ์ ๋ฅผ๋ค๋ฃน๋๋ค.
5
์ดํ๋ฆฌ์ผ์ด์
์ํ, ์ผํ, ์์ ์ถ์ฒ
์ฌ์ง๋ถ๋ฅ, ๊ฒ์, ์น๊ตฌ์ถ์ฒ, ๊ด๊ณ , ๋ฒ์ญ, ์์ฑ์ธ์
์ํ, ์์จ์ฃผํ์๋์ฐจ, ์ฒ๋ฌธ, ์์์ญํ
6
์ ๋ฝ์ ์๋ฌผ๋ฆฌ์ฐ๊ตฌ์James Beacham
AI โ๋จธ์ ๋ฌ๋ โ๋ฅ๋ฌ๋
7
Deep
Learning
Machine
Learning
AI
์๋จธ์ ๋ฌ๋์ธ๊ฐ?
๊ท์น๊ธฐ๋ฐ์ ๋ฌธ๊ฐ์์คํ rule based expert system์๋ฌธ์ ์ (๊ณ ์ ์ ์ธ์คํธํํฐ)
๊ฒฐ์ ์ํ์ํ๋ก์ง์ดํ๋ถ์ผ๋์์ ์๊ตญํ, ์์ ๋ณ๊ฒฝ์๋ฐ๋ผ์์คํ ๊ฐ๋ฐ์
๋ค์์ํํ ์๋์์ต๋๋ค.
๊ท์น์์ค๊ณํ๋ ค๋ฉด ๋ถ์ผ์์ ๋ฌธ๊ฐ๋ค์๊ฒฐ์ ๋ฐฉ์์๋ํด์์์์ผํฉ๋๋ค.
2001๋ ์ด์ ๊น์ง์ด๋ฏธ์ง์์์ผ๊ตด์์ธ์ํ๋๋ฌธ์ ๋ฅผํ์ง๋ชปํ์
์ปดํจํฐ์ํฝ์ ๋จ์๋์ฌ๋์ด์ธ์ํ๋๋ฐฉ์๊ณผ๋ค๋ฆ, ์ผ๊ตด์ด๋ฌด์์ธ์ง์ผ๋ จ์
๊ท์น์๋ง๋ค๊ธฐ์ด๋ ต์ต๋๋ค.
๋จธ์ ๋ฌ๋์์ฌ์ฉํด๋ง์์ผ๊ตด์ด๋ฏธ์ง๋ฅผ์ ๊ณตํ๋ฉด์ผ๊ตด์ํน์ ํ๋์์๋ฅผ์ฐพ์์
์์ต๋๋ค.
8
์ง๋ํ์ตSupervised Learning
์๊ณ ๋ฆฌ์ฆ์์ ๋ ฅ๊ณผ๊ธฐ๋ํ๋์ถ๋ ฅ์์ ๊ณตํฉ๋๋ค.
์๊ณ ๋ฆฌ์ฆ์์ ๋ ฅ์ผ๋ก๋ถํฐ๊ธฐ๋ํ๋์ถ๋ ฅ์๋ง๋๋๋ฐฉ๋ฒ์์ฐพ์ต๋๋ค. ํน์
๊ธฐ๋ํ๋์ถ๋ ฅ์ด๋์ค๋๋ก์๊ณ ๋ฆฌ์ฆ์๊ฐ๋ฅด์นฉ๋๋ค.
์คํธ๋ฌธ์ ์๊ฒฝ์ฐ์ด๋ฉ์ผ(์ ๋ ฅ)๊ณผ์คํธ์ฌ๋ถ(๊ธฐ๋์ถ๋ ฅ)์์ ๊ณตํด์ผํฉ๋๋ค.
์ง๋ํ์ต์์
์๊ธ์จ์ซ์ํ๋ณ: ์๊ธ์จ์ค์บ์ด๋ฏธ์ง(์ ๋ ฅ), ์ฐํธ๋ฒํธ(๊ธฐ๋ ์ถ๋ ฅ)
๋ฐ์ดํฐ์์ง์์์์ ์ด๋ง์. ๋น๊ต์ ์ฝ๊ณ ์ ์๋น์ฉ์๋ชจ.
์๋ฃ์์์๊ธฐ๋ฐํ์์ง๋จ: ์์(์ ๋ ฅ), ์ข ์์ฌ๋ถ(๊ธฐ๋ ์ถ๋ ฅ)
๋๋์ /๊ฐ์ธ์ ๋ณด๋ฌธ์ ๊ณ ๊ฐ์์ฅ๋น, ์ ๋ฌธ๊ฐ์๊ฒฌํ์
์ ์ฉ์นด๋๋ถ์ ๊ฑฐ๋๊ฐ์ง: ์ ์ฉ์นด๋๊ฑฐ๋๋ด์ญ(์ ๋ ฅ), ๋ถ์ ๊ฑฐ๋์ฌ๋ถ(๊ธฐ๋์ถ๋ ฅ)
๊ณ ๊ฐ์๊ฒ์ ๊ณ ๊ฐ์ฌ๋๊น์ง๊ธฐ๋ค๋ฆฌ๋ฉด๋จ. 9
๋น์ง๋ํ์ตUnsupervised Learning
์๊ณ ๋ฆฌ์ฆ์์ ๋ ฅ์์ฃผ์ด์ง์ง๋ง์ถ๋ ฅ์์ ๊ณต๋์ง์์ต๋๋ค.
๋ฐ๋ผ์๋น์ง๋ํ์ต์์ดํดํ๊ฑฐ๋ํ๊ฐํ๊ธฐ์ด๋ ต์ต๋๋ค.
๋น์ง๋ํ์ต์์
๋ธ๋ก๊ทธ๊ธ์์ฃผ์ ๊ตฌ๋ถ: ์ฌ์ ์์ด๋ค์ฃผ์ ๊ฐ์๋์ง์ผ๋ง๋๋ง์์ฃผ์ ๊ฐ์๋์ง
๋ชจ๋ฆ ๋๋ค.
๊ณ ๊ฐ๋ค์์ทจํฅ์๋ฐ๋ผ๊ทธ๋ฃน์ผ๋ก๋ฌถ๊ธฐ: ๋ถ๋ชจ, ๋ ์๊ด, ๊ฒ์ด๋จธ๋ฑ์ด๋ค๊ทธ๋ฃน์ด์๋์ง
๋ฏธ๋ฆฌ์์์๊ณ ์ผ๋ง๋๋ง์ด์๋์ง๋ชจ๋ฆ ๋๋ค.(ํ๊ฐํ๊ธฐ ์ด๋ ต์ต๋๋ค)
๋น์ ์์ ์น์ฌ์ดํธ์ ๊ทผํ์ง: ๋น์ ์์ ์ธํจํด์๊ฐ๊ธฐ๋ค๋ฅผ์์๊ณ ๊ฐ์ง๊ณ ์๋
๋น์ ์๋ฐ์ดํฐ๊ฐ์์์์์ต๋๋ค. ํ์ฌํธ๋ํฝ๋ง๊ด์ฐฐํ ์์์ต๋๋ค.
10
๋ฐ์ดํฐ, ํน์ฑ
์ข์์ ๋ ฅ๋ฐ์ดํฐ๋ฅผ๋ง๋ค์ด๋ด๋์ผ์ํน์ฑ์ถ์ถfeature extraction, ํน์ฑ๊ณตํfeature
engineering์ด๋ผ๊ณ ํฉ๋๋ค.11
๋์ด ๊ตฌ๋งค๋น๋ ์ด๋ฉ์ผ ...
37 10 xxx@gmail
33 15 yyy@gmail
ํน์ฑfeatures, ๋ ๋ฆฝ๋ณ์, (์์ฑattribute)
์ํsample,
๋ฐ์ดํฐํฌ์ธํธdata point
(์ธ์คํด์คinstance)
ํ๊นtarget, ์ข ์๋ณ์
์ฑ๋ณ
๋จ
์ฌ
๋ฌธ์ ์๋ฐ์ดํฐ์ดํด
๋จธ์ ๋ฌ๋ํ๋ก์ธ์ค์์๋ฐ์ดํฐ๋ฅผ์ดํดํ๊ณ ํด๊ฒฐํ ๋ฌธ์ ์์ด๋ค๊ด๋ จ์ด์๋์ง์ดํดํ๋๊ฒ์ด๊ฐ์ฅ์ค์ํฉ๋๋ค.
์๊ณ ๋ฆฌ์ฆ๋ง๋ค์๋ค์ด๋ง๋๋ฐ์ดํฐ๋๋ฌธ์ ์์ข ๋ฅ๊ฐ๋ค๋ฆ ๋๋ค.
์๊ณ ๋ฆฌ์ฆ์ด๋๋ฐฉ๋ฒ๋ก ์๋ฌธ์ ๋ฅผํธ๋์ ์ฒด๊ณผ์ ์ค์ผ๋ถ์ผ๋ฟ์ ๋๋ค.
๋จธ์ ๋ฌ๋์๋ฃจ์ ์๋ง๋ค๋์๋ง์์์๊ฒจ์ผํ ์ง๋ฌธ๋ค
์ด๋ค์ง๋ฌธ์๋๋ต์์ํ๋๊ฐ? ์ํ๋๋ต์๋ง๋ค์์๋๋ฐ์ดํฐ๋ฅผ๊ฐ์ง๊ณ ์๋๊ฐ?
๋จธ์ ๋ฌ๋์๋ฌธ์ ๋ก๊ฐ์ฅ์๊ธฐ์ ํ ์์๋๋ฐฉ๋ฒ์๋ฌด์์ธ๊ฐ?
๋ฌธ์ ๋ฅผํ๊ธฐ์์ถฉ๋ถํ๋ฐ์ดํฐ๊ฐ์๋๊ฐ?
์ถ์ถํ๋ฐ์ดํฐ์ํน์ฑ์๋ฌด์์ด๊ณ ์ข์์์ธก์์ํํน์ฑ์๊ฐ์ง๊ณ ์๋๊ฐ?
์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๊ณผ๋ฅผ์ด๋ป๊ฒ์ธก์ ํ ๊ฒ์ธ๊ฐ?
๋ค๋ฅธ์ฐ๊ตฌ๋์ ํ๊ณผ์ด๋ป๊ฒํ๋ ฅํ ์์๋๊ฐ?12
Why Python?
13
์์ง๋์ด๋ฐ์ง๋ฌธ์?
14
ํ์ด์ฌ(Python)
๊ณผํ๋ถ์ผ๋ฅผ์ํํ์คํ๋ก๊ทธ๋๋ฐ์ธ์ด๊ฐ๋์ด๊ฐ๊ณ ์์ต๋๋ค.(vs Julia)
MATLAB, R ๊ฐ์ด๋๋ฉ์ธ์ํนํ๋์ธ์ด์ Java, C ๊ฐ์๋ฒ์ฉ์ธ์ด์์ฅ์ ์๋ชจ๋
๊ฐ์ง๊ณ ์์ต๋๋ค.
ํต๊ณ, ๋จธ์ ๋ฌ๋, ์์ฐ์ด, ์ด๋ฏธ์ง, ์๊ฐํ๋ฑ์ํฌํจํํ๋ถํ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ
์์ต๋๋ค: Scikit-Learn, pandas, Numpy, Scipy, matplotlib, ...
๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ์ธํฐ๋ํฐ๋ธํ๋ก๊ทธ๋๋ฐํ๊ฒฝ์ธ์ฃผํผํฐ๋ ธํธ๋ถJupyter Notebook์ด
์์ต๋๋ค.
ํ์ด์ฌ์ฃผ๋๋ฅ๋ฌ๋๋ผ์ด๋ธ๋ฌ๋ฆฌ: TensorFlow, Keras, PyTorch, Caffe2, CNTK,
MXNet, Theano, ...
15
Scikit-Learn
์คํ์์ค: https://github.com/scikit-learn/scikit-learn
์์ค์ฝ๋๋ฅผ๋ณด๊ณ ์ด๋ป๊ฒ์๊ณ ๋ฆฌ์ฆ์ด๊ตฌํ๋์ด์๋์งํ์ธํ ์์์ต๋๋ค.
ํ๊ท, ๋ถ๋ฅ, ๊ตฐ์ง, ์ฐจ์์ถ์, ํน์ฑ๊ณตํ, ์ ์ฒ๋ฆฌ, ๊ต์ฐจ๊ฒ์ฆ, ํ์ดํ๋ผ์ธ๋ฑ๋จธ์ ๋ฌ๋์
ํ์ํ๋๊ตฌ๋ฅผ๋๋ฃจ๊ฐ์ถ๊ณ ์์ต๋๋ค.
ํ๋ถํ๋ฌธ์ (์๋ฌธ): http://scikit-learn.org/stable/documentation
ํ๊ต, ์ฐ์ ํ์ฅ์์๋๋ฆฌ์ฌ์ฉ๋ฉ๋๋ค.
ํญ๋์์ปค๋ฎค๋ํฐ์๋ง์ํํ ๋ฆฌ์ผ, ์์ ์ฝ๋๊ฐ์์ต๋๋ค.
16
Appleโs Core ML Support
17
Scikit-Learn ์ค์น
NumPy, SciPy๋ฅผ๊ธฐ๋ฐ์ผ๋กํฉ๋๋ค.
๋ํ์ํ๊ฒฝ์์ํด์๋ IPython ์ปค๋๊ณผ Jupyter Notebook ์ค์น๊ฐํ์ํฉ๋๋ค.
Anaconda(https://www.continuum.io/anaconda-overview)
๋ฌด๋ฃ, ๊ณผํ์ ๋ฌธํ์ด์ฌ๋ฐฐํฌํ, ์๋ฐฑ๊ฐ์ํจํค์ง, ๋งฅ/์๋์ฐ/๋ฆฌ๋ ์ค ์ง์, ์ธํ MKL
๋ผ์ด๋ธ๋ฌ๋ฆฌํฌํจ
Enthought Canopy(https://www.enthought.com)
๊ณผํ์ ๋ฌธํ์ด์ฌ๋ฐฐํฌํ, ํ์, ๊ต์ก๊ธฐ๊ด์๋ฌด๋ฃ(scikit-learn ๋ฏธํฌํจ)
Python(x, y)
์๋์ฐ์ฆ์ ์ฉ๊ณผํํ์ด์ฌ๋ฐฐํฌํ
18
ํ์๋ผ์ด๋ธ๋ฌ๋ฆฌ
19
Jupyter Notebook
ํ๋ก๊ทธ๋จ์ฝ๋ + ๋ฌธ์ + ๊ฒฐ๊ณผ
(ํ ์คํธ,๊ทธ๋ํ)๋ฅผ์ํ๋ํ์๊ฐ๋ฐ
ํ๊ฒฝ์ ๋๋ค.
ํ์์ ๋ฐ์ดํฐ๋ถ์์์ ๋ฆฌํ์ฌ
๋ง์๊ณผํ์, ์์ง๋์ด๋ค์ด
์ฌ์ฉํฉ๋๋ค.
https://jupyter.org
20
IDE for Jupyter Notebook
PyCharm: ํ์ด์ฌ IDE๋ก๋ ธํธ๋ถํ์ผ์์ง์ํฉ๋๋ค.
Rodeo(https://www.yhat.com/products/rodeo) : ๋ฐ์ดํฐ๋ถ์์ฉ์ ๋ฌธ IDE์ ๋๋ค.
JupyterLab(https://github.com/jupyter/jupyterlab) : ์ฐจ์ธ๋์ฃผํผํฐ๋ ธํธ๋ถํ๊ฒฝ
Colaboratory(https://colab.research.google.com) : ๊ตฌ๊ธ๋๋ผ์ด๋ธ์์ฐ๋๋๋์ฐ๊ตฌ์๊ต์ก๋ชฉ์ ์๋ ธํธ๋ถํ๊ฒฝ
21
NumPy
๋ค์ฐจ์๋ฐฐ์ด์์ํ๊ธฐ๋ฅ๊ณผ์ ํ๋์๋ฅผ๋น๋กฏํด๊ณ ์์ค์ํํจ์์์ ์ฌ๋์
์์ฑ๊ธฐ๋ฅผํฌํจํ๊ณ ์์ต๋๋ค.
scikit-learn์๊ธฐ๋ณธ๋ฐ์ดํฐ๊ตฌ์กฐ์ ๋๋ค.(TensorFlow ๋)
http://www.numpy.org
http://www.scipy-lectures.org/ ์ 1์ฅ
22
๋ชจ๋์๋ณ์นญ์๋ง๋ฆ
ndarray
๋์ผํ๋ฐ์ดํฐํ์
SciPy
์ ํ๋์, ์ต์ ํ, ํต๊ณ๋ฑ๋ง์๊ณผํ๊ณ์ฐํจ์๋ฅผ๋ชจ์๋์ํ์ด์ฌํจํค์ง
scikit-learn์์๊ณ ๋ฆฌ์ฆ๊ตฌํ์ SciPy์๋ง์ด์์กดํ๊ณ ์์ต๋๋ค.
0์ด๋ง์ดํฌํจ๋ํ๋ ฌ์ํจ์จ์ ์ผ๋กํํํ๊ธฐ์ํํฌ์ํ๋ ฌsparse matrix
scipy.sparse ํจํค์ง๋ฅผ์ฌ์ฉํฉ๋๋ค.
https://www.scipy.org/scipylib
http://www.scipy-lectures.org/
์ 2.5์
23
๋จ์ํ๋ ฌ
SciPy
24
๋๊ฐํ๋ ฌ์์์น
Compressed Sparse Row Format
Coordinate Format
์ธ๋ฑ์ค๋ฅผ์ง์ ํ์ฌํฌ์ํ๋ ฌ์์์ฑ
๋ฐ์ง๋ฐฐ์ด๋ก๋ถํฐํฌ์ํ๋ ฌ์์์ฑ(๋ฉ๋ชจ๋ฆฌ๋ถ์กฑ๊ฐ๋ฅ์ฑ)
matplotlib
๊ณผํ๊ณ์ฐ์ฉ๊ทธ๋ํ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
์ , ํ์คํ ๊ทธ๋จ, ์ฐ์ ๋๋ฑ๋ค์ํ
๊ทธ๋ํ๋ฅผ๊ทธ๋ฆด์์์ผ๋ฉฐ์ถํ์์ค์
๊ณ ํ์ง์์ ๊ณตํฉ๋๋ค.
๋ ธํธ๋ถ์๊ทธ๋ํํฌํจ: %matplotlib inline
https://matplotlib.org/
๊ทธ์ธ๋ํ์ ์ธ๊ทธ๋ํ๋ผ์ด๋ธ๋ฌ๋ฆฌ: Bokeh, Seaborn,
Plotly
25
๋ณ์นญ์ด๋ฆ
pandas
๋ฐ์ดํฐ์ฒ๋ฆฌ์๋ถ์์์ํ๋ผ์ด๋ธ๋ฌ๋ฆฌ
DataFrame inspired by Rโs data.frame
์์ ๊ณผ๋น์ทํ๊ฒ์ด์ข ๋ฐ์ดํฐํฌํจ
๊ฐ๋ฅํฉ๋๋ค.(numpy์ํฌ๊ฒ๋ค๋ฅธ์ )
์จ์ค๋งคํค๋Wes Makinney์ โํ์ด์ฌ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผํ์ฉํ๋ฐ์ดํฐ๋ถ์โ
http://pandas.pydata.org
26
๋ณ์นญ์ด๋ฆ
CSV, SQL, ์์ ๋ฑ์์๋ฐ์ดํฐ์ฝ์์์์
Python 2 vs Python 3
์ด๋ค๊ฒ์์จ์ผํ ์ง์๋ชจ๋ฅด๊ฒ ๋ค๋ฉด Python 3์ด์ ์ ํฉ๋๋ค.
์ด๋ฏธํ์ด์ฌ 2๋ก์์ฑํ์ฝ๋๊ฐ๋ง์ด์๊ฑฐ๋์ฌ์ฉํ๊ณ ์๋๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐํ์ด์ฌ 2
๋ฐ์์ง์ํ์ง์๋๊ฒฝ์ฐ์๋ํ์ด์ฌ 2๋ฅผ์ฌ์ฉํฉ๋๋ค.
six ํจํค์ง๋ฅผ์ฌ์ฉํดํธํ๋์ฝ๋๋ฅผ๋ง๋ค์์์ต๋๋ค.(https://pythonhosted.org/six/)
Python 2.7์ 2020๋ ๊น์ง๋ง์ง์ํฉ๋๋ค.
27
์ฌ์ฉํ๋ Version
Python 3.6
scikit-learn 0.19.x
matplotlib 2.0.x
NumPy 1.13.x
SciPy 0.19.x
pandas 0.20.x
28
Iris Dataset
29
๋ถ๊ฝ์ํ์ข ๋ถ๋ฅ
setosa, versicolor, virginica ํ์ข (ํ๊น)์๋ถ๋ฅํฉ๋๋ค.
ํน์ฑ์๊ฝ์petal, ๊ฝ๋ฐ์นจsepal์ํญ๊ณผ๊ธธ์ด์ ๋๋ค.
์ฌ์ ์์ด๋ฏธ๋ถ๋ฅํ๋ฐ์ดํฐ๋ฅผ์ด์ฉํ๋ฏ๋ก์ง๋
ํ์ตsupervised learning์ด๊ณ 3๊ฐ์๋ถ๊ฝํ์ข ์์๊ณ ๋ฅด๋
๋ถ๋ฅclassification ๋ฌธ์ ์ ๋๋ค.
ํด๋์คclass: ๊ฐ๋ฅํ์ถ๋ ฅ๊ฐ. ์ฆ์ธ๊ฐ์๋ถ๊ฝํ์ข
๋ ์ด๋ธlabel: ๋ฐ์ดํฐํฌ์ธํธํ๋์๋ํ์ถ๋ ฅ
30
๋ฐ์ดํฐ์ ์ฌ
๋ถ๊ฝ๋ฐ์ดํฐ: sklearn.datasets.load_iris()
๊ทธ์ธ load_digits(), load_boston(), load_breast_cancer(), load_diabetes() ๋์์ต๋๋ค.
31
๋์ ๋๋ฆฌ์์ ์ฌํscikit-learn์ Bunch ํด๋์ค๋ฐํ
๋ฐ์ดํฐ์ ์๋ํ์ค๋ช iris_dataset.DESCR[:193] ๋๊ฐ๋ฅ
32
๋ถ๊ฝํ์ข ์์ด๋ฆ
ํน์ฑ์ค๋ช
๋ฐ์ดํฐํฌ๊ธฐ(๊ฝ์๊ธธ์ด/ํญ, ๊ฝ๋ฐ์นจ๊ธธ์ด/ํญ)
33
ํ๋ จ๋ฐ์ดํฐ
ํ๊น๋ฐ์ดํฐ
์ํ
ํน์ฑ
๊ธฐ๋ณธ 3:1 ๋น์จ (test_size ๋งค๊ฐ๋ณ์๋ก๋ณ๊ฒฝ๊ฐ๋ฅ)
ํ๋ จ๋ฐ์ดํฐ์ํ ์คํธ๋ฐ์ดํฐ
ํ๋ จ์์ฌ์ฉํ๋ฐ์ดํฐ๋ํ ์คํธ(์ผ๋ฐํ)์์ฌ์ฉํ์ง์์ต๋๋ค: ๋๊ด์ ์ธ์ถ์ ๋ฐฉ์ง
๋ฐ์ดํฐ๋ถ๋ฆฌ: ํ๋ จ์ธํธ, ํ ์คํธ์ธํธ(ํ๋์์holdout ์ธํธ)
X: 2์ฐจ์๋ฐฐ์ด(ํ๋ ฌ), ๋๋ฌธ์ํ๊ธฐ, y: 1์ฐจ์๋ฐฐ์ด(๋ฒกํฐ), ์๋ฌธ์ํ๊ธฐ
34
์ ์ฌ๋์์์ฑ
์ฐ์ ๋Scatter Plot
๋๊ฐ์ํน์ฑ์์ด์ฉ์ ์ผ๋ก๋ฐ์ดํฐ
ํ์(3์ฐจ์์ด์์ํํ์ด์ด๋ ค์)
๊ฐํน์ฑ์์กฐํฉ์๋ํด๋ชจ๋๊ทธ๋ฆฌ๋
pandas์์ฐ์ ๋ํ๋ ฌScatter Matrix
์ด์ฉํฉ๋๋ค.
35
pandas ๋ฐ์ดํฐํ๋ ์์ผ๋ก๋ณ๊ฒฝ
36
ํน์ฑ์ด๋ง์๊ฒฝ์ฐ์ฐ์ ๋ํ๋ ฌ์๊ทธ๋ฆฌ๊ธฐ์ด๋ ต์ต๋๋ค.
ํ๊ทธ๋ํ์๋ชจ๋ ํน์ฑ์ด๋ํ๋๋๊ฒ์ด์๋๋ฏ๋ก์๋ก๋๋์ด์ง๊ทธ๋ํ์ฌ์ด์์ค์ํ์ฑ์ง์ด์์์์์ต๋๋ค.
์๊ธฐ์์ (์ฃผ๋๊ฐ์ )์ํ์คํ ๊ทธ๋จ์ผ๋กํ์
๋จธ์ ๋ฌ๋์ผ๋ก์๊ตฌ๋ถํ ์์์๊ฒ๊ฐ์
First ML Application
37
k-์ต๊ทผ์ ์ด์k-Nearest Neighbors, k-NN
์ด์๊ณ ๋ฆฌ์ฆ์ํ๋ จ๋ฐ์ดํฐ๋ฅผ์ ์ฅํ๋๊ฒ์ดํ์ต์์ ๋ถ์ ๋๋ค.
์๋ฐ์ดํฐํฌ์ธํธ์์๊ฐ์ฅ๊ฐ๊น์ดํ๋ จ๋ฐ์ดํฐํฌ์ธํธ(k๊ฐ)๋ฅผ์ฐพ์์๊ฐ์ฅ๋์
๋น๋์ํด๋์ค๋ฅผ์์ธก์ผ๋ก์ฌ์ฉํฉ๋๋ค.
๋ํ์ ์ธ์ธ์คํด์ค๊ธฐ๋ฐinstance based ํ์ต์๊ณ ๋ฆฌ์ฆ(vs model based)
38
์ด์์๊ฐ์: ๊ธฐ๋ณธ๊ฐ 5
fit() ๋ฉ์๋์์๋knn ๊ฐ์ฒด๋ฐํ ํ๋ จ๋ฐ์ดํฐ์ฃผ์
์์ธก
ํ์ต๋๋ชจ๋ธ(์ด์ ์ฌ๋ผ์ด๋์ knn ๊ฐ์ฒด)์์ฌ์ฉํด์๋ก์ด๋ถ๊ฝ์ํ์ข ์
๋ถ๋ฅํฉ๋๋ค.
39
sepal length, width petal length, width๊ฐ์์ผ๋ก์๋ก์ด๋ฐ์ดํฐ์์ฑํน์ฑ์ํญ์ 2์ฐจ์๋ฐฐ์ด
์์ธก
์ซ์๋ก๋๋ ์ด๋ธ์ด๋ฐํ๋ฉ๋๋ค.
์ค์ ๋ก์ด๊ฐ์ด๋ง์๊น์?
ํ๊ฐ
๋ชจ๋ธ์์ฑ๋ฅ(์ ํ๋)์ํ๊ฐํ๊ธฐ์ํดํ๋ จ์์์ํ์ง์์๋ํ ์คํธ์ธํธ๋ฅผ
ํ์ฉํฉ๋๋ค.
40
์์ธก๊ฐ์์ค์ ๋ ์ด๋ธ๊ณผ๋น๊ตํฉ๋๋ค.0 ๋๋ 1์๋ฐฐ์ด
ํ๊ท
ํ ์คํธ์ธํธ์๋ํ์์ธก(ํ๊น์ด์์ต๋๋ค)
์๋ก์ด๋ฐ์ดํฐ์๋ํด 97% ์ ํ๋๋ฅผ๊ธฐ๋ํ ์์์ต๋๋ค.
์์ฝ
๋ถ๊ฝ์ดํ๋ฆฌ์ผ์ด์ ์๋ถ๋ฅํด๋์ํ์ข ๋ฐ์ดํฐ๋ฅผ์ฌ์ฉํ์ง๋ํ์ต์ ๋๋ค.
์ธ๊ฐ์ํ์ข (ํด๋์ค)์๊ตฌ๋ถํ๋๋ถ๋ฅclassification ๋ฌธ์ (๋ค์ค๋ถ๋ฅ)์ ๋๋ค.
ํน์ฑ๋ฐ์ดํฐ๋ฅผ๋ด๊ณ ์๋ X(2์ฐจ์)์๊ธฐ๋์ถ๋ ฅ(๋ ์ด๋ธ)์๊ฐ์ง y(1์ฐจ์)๋ฅผ NumPy
๋ฐฐ์ด๋ก๋ค๋ฃจ์์ต๋๋ค.
ํ๋ จ์ธํธ์์ํ์ต(ํ๋ จ)ํ๊ณ ํ ์คํธ์ธํธ๋ก๋ง๋ค์ด์ง๋ชจ๋ธ์ํ๊ฐํ์ต๋๋ค.
41
predict(X_new)