3์ฅ ์ด๋ฆ์ด ์ฌ์ดํท๋ฐ์ ํ๊ณ ๋ ๋๋ ๋จธ์ ๋ฌ๋ ๋ถ๋ฅ ๋ชจ๋ธ ํฌ์ธ๋ฐ ๋ญ๊ฐ ๊ท์ฝ๋ค ใ ใ ใ
๊ณ์ ์์์ ์ฅ์ด์๋ค๊ฐ ๋๋์ด ์ฌ๋ฆฌ๋,,,ใ ๋จธ์ฑ ใ(๏ฟฃโฝ๏ฟฃใ)(ใ๏ฟฃโฝ๏ฟฃ)ใ
โ 3.1 ๋ถ๋ฅ ์๊ณ ๋ฆฌ์ฆ ์ ํ
๋ถ๋ฅ ๋ชจ๋ธ์ ์์ธก ์ฑ๋ฅ๊ณผ ๊ณ์ฐ ์ฑ๋ฅ์ ํ์ต์ ์ฌ์ฉํ๋ ค๋ ๋ฐ์ดํฐ์ ํฌ๊ฒ ์์กด
< ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ๋ จํ๊ธฐ ์ํ ๋ค์ฏ ๊ฐ์ง ์ฃผ์ ๋จ๊ณ >
1๏ธโฃ ํน์ฑ์ ์ ํํ๊ณ ํ๋ จ ์ํ ๋ชจ์ง
2๏ธโฃ ์ฑ๋ฅ ์งํ ์ ํ
3๏ธโฃ ๋ถ๋ฅ ๋ชจ๋ธ๊ณผ ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ ์ ํ
4๏ธโฃ ๋ชจ๋ธ์ ์ฑ๋ฅ ํ๊ฐ
5๏ธโฃ ์๊ณ ๋ฆฌ์ฆ ํ๋
โ 3.2 ์ฌ์ดํท๋ฐ ์ฒซ๊ฑธ์
์ฌ์ดํท๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ : ๋ค์ํ ํ์ต ์๊ณ ๋ฆฌ์ฆ ์ ๊ณต, ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ ์ธ๋ถ ์กฐ์ , ๋ชจ๋ธ ํ๊ฐ๋ฅผ ์ํด ํธํ๊ฒ ์ฌ์ฉํ ์ ์๋ ํจ์ ๅค
โญ ์ฌ์ดํท๋ฐ์ด ์ ๊ณตํ๋ ๋จธ์ ๋ฌ๋ API
- Classification : ๋ถ๋ฅ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ํด๋์ค
- Regression : ํ๊ท ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ํด๋์ค
- Classification + Regression => Estimator ํด๋์ค๋ผ๊ณ ๋ถ๋ฆ
- Clustering
- Dimensional reduction
- Model selection
- Preprocessing
from sklearn import datasets
import numpy as np
iris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.target
# np.unique(y)๋ iris.target์ ์ ์ฅ๋ ์ธ ๊ฐ์ ๊ณ ์ ํ ํด๋์ค ๋ ์ด๋ธ ๋ฐํ
print('ํด๋์ค ๋ ์ด๋ธ :', np.unique(y))
output
ํด๋์ค ๋ ์ด๋ธ: [0 1 2]
๋ถ๊ฝ ํด๋์ค ๋ ์ด๋ธ(์ด๋ฆ)์ธ Iris-setosa, Iris-versicolor, Iris-virginica๊ฐ 0 1 2 ๋ก ์ ์ฅ
๐ ์ ์ ๋ ์ด๋ธ์ ์ฌ์ํ ์ค์๋ฅผ ํผํ ์ ์๊ณ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ฒ ์ฐจ์งํ๊ธฐ ๋๋ฌธ์ ๊ถ์ฅ๋จ
โ 3.3 ๋ก์ง์คํฑ ํ๊ท(ํ๊ท X, ๋ถ๋ฅ ๋ชจ๋ธ O)๋ฅผ ์ฌ์ฉํ ํด๋์ค ํ๋ฅ ๋ชจ๋ธ๋ง
ํผ์ ํธ๋ก ๊ท์น → ํด๋์ค๊ฐ ์ ํ์ ์ผ๋ก ๊ตฌ๋ถ๋์ง ์์ ๋ ์๋ ดํ ์ ์๋ค๋ ํฐ ๋จ์
3.3.1 ๋ก์ง์คํฑ ํ๊ท์ ์ดํด์ ์กฐ๊ฑด๋ถ ํ๋ฅ
๋ก์ง์คํฑ ํ๊ท : ๊ตฌํ์ด ์ฝ๊ณ ์ ํ์ ์ผ๋ก ๊ตฌ๋ถ๋๋ ํด๋์ค์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ด๋ ๋ถ๋ฅ ๋ชจ๋ธ(์ด์ง ๋ถ๋ฅ๋ฅผ ์ํ ์ ํ ๋ชจ๋ธ์ด์ง๋ง ๋ค์ค ๋ถ๋ฅ๋ก ํ์ฅ ๊ฐ๋ฅ)
โ odds ratio
P/(1-P) → P๋ ์์ฑ ์ํ์ผ ํ๋ฅ , ์์ฑ ์ํ์ ์ข์ ๊ฒ์ ์๋ฏธํ๋ ๊ฒ ์๋๋ผ ์์ธกํ๋ ค๋ ๋์์ ๋ํ๋
โ logit(P) : ๋ก์ง ํจ์, odds ratio์ ๋ก๊ทธ ํจ์(๋ก๊ทธ ์ค์ฆ)๋ฅผ ์ทจํ ํํ → 0๊ณผ 1 ์ฌ์ด์ ์ ๋ ฅ ๊ฐ์ ๋ฐ์ ์ค์ ๋ฒ์ ๊ฐ์ผ๋ก ๋ณํ
โ ํน์ฑ์ ๊ฐ์ค์น ํฉ๊ณผ ๋ก๊ทธ ์ค์ฆ ์ฌ์ด์ ์ ํ ๊ด๊ณ
* P(y=1|x) ๋ ํน์ฑ x๊ฐ ์ฃผ์ด์ก์ ๋ ์ด ์ํ์ด ํด๋์ค 1์ ์ํ ์กฐ๊ฑด๋ถ ํ๋ฅ
* ๋ก์ง ํจ์๋ฅผ z(=w^{T}x)์ ๋ํด ์ ๋ฆฌํ ํจ์ : (logistic) sigmoid function
import matplotlib.pyplot as plt
import numpy as np
def sigmoid(z):
return 1.0 / (1.0 + np.exp(-z))
z = np.arange(-7, 7, 0.1)
phi_z = sigmoid(z)
plt.plot(z, phi_z)
plt.axvline(0, 0, color='k')
plt.ylim(-0.1, 1.1)
plt.xlabel('z')
plt.ylabel('$\phi (z)$')
# y์ถ ๋๊ธ๊ณผ ๊ฒฉ์์
plt.yticks([0.0, 0.5, 1.0])
ax = plt.gca()
ax.yaxis.grid(True)
plt.tight_layout()
plt.show()
โ ์๋ฌ๋ฆฐ๊ณผ ๋ก์ง์คํฑ ํ๊ท ์ฐจ์ด์
์ต์ข ์ ๋ ฅ์ ํ ๋ค, ๊ฐ์ค์น๋ฅผ ๋ค์ ๊ณ์ฐํ๋ ๊ณผ์ ์์ ํ์ํ ํ์ฑํ ํจ์ ์ฐจ์ด
๐ ์๋ฌ๋ฆฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ํ ํ์ฑํ ํจ์ / ๋ก์ง์คํฑ ํ๊ท ์๊ณ ๋ฆฌ์ฆ์ ์๊ทธ๋ชจ์ด๋ ํ์ฑํ ํจ์
3.3.2 ๋ก์ง์คํฑ ๋น์ฉ ํจ์์ ๊ฐ์ค์น ํ์ต
์๋ฌ๋ฆฐ ๋ถ๋ฅ ๋ชจ๋ธ : ์ ๊ณฑ ์ค์ฐจํฉ ๋น์ฉ ํจ์ ์ต์ํํ๋ ๊ฐ์ค์น w๋ฅผ ํ์ต
L(w)์ ์์ฐ ๋ก๊ทธ๋ฅผ ์ต๋ํํ๋ ๊ฒ์ด ๋ ์ฌ์ -> logL(w) ๋ก๊ทธ ๊ฐ๋ฅ๋ ํจ์
cf. ๋ก๊ทธ ๊ฐ๋ฅ๋ ํจ์๋ฅผ ์ต๋ํํ๋ ๊ฒ์ด ๋ ์ฌ์ด ์ด์
1๏ธโฃ ๋ก๊ทธ ํจ์ ์ ์ฉ ์ ๊ฐ๋ฅ๋๊ฐ ๋งค์ฐ ์์ ๋ ์ผ์ด๋๋ ์์น ์์ underflow๋ฅผ ์ฌ์ ๋ฐฉ์ง ๊ฐ๋ฅ
2๏ธโฃ ๊ณ์ ๊ณฑ์ ๊ณ์ ํฉ์ผ๋ก ๋ฐ๊ฟ ์ ์์
3.3.3 ์๋ฌ๋ฆฐ ๊ตฌํ์ ๋ก์ง์คํฑ ํ๊ท ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ณ๊ฒฝ
๋ก์ง์คํฑ ํ๊ท ๊ตฌํ → ์๋ฌ๋ฆฐ ๊ตฌํ ๋น์ฉ ํจ์๋ฅผ ์๋ก์ด ๋น์ฉ ํจ์๋ก ๋ฐ๊ฟ์ฃผ๋ฉด O
์๋ก์ด ๋น์ฉ ํจ์ ์ด์ฉํด์
1๏ธโฃ ์ํฌํฌ๋ง๋ค ๋ชจ๋ ํ๋ จ ์ํ์ ๋ถ๋ฅํ๋ ๋น์ฉ ๊ณ์ฐ
2๏ธโฃ ์ ํ ํ์ฑํ ํจ์๋ฅผ ์๊ทธ๋ชจ์ด๋ ํ์ฑํ๋ก ๋ณ๊ฒฝ
3๏ธโฃ ์๊ณ ํจ์๊ฐ ํด๋์ค ๋ ์ด๋ธ -1๊ณผ 1์ด ์๋ 0๊ณผ 1์ ๋ฐํํ๋๋ก ๋ณ๊ฒฝ
๐ ์ธ ๋จ๊ณ ๋ฐ์ํ๋ฉด ๋ก์ง์คํฑ ํ๊ท ๋ชจ๋ธ ์ป์ ์ ์์
โ p.97 ๋ก์ง์คํฑ ๋ชจ๋ธ๋ก ๋ถ๊ฝ ๊ฒฐ์ ๊ฒฝ๊ณ ๊ทธ๋ฆฌ๊ธฐ error
'Artificial Intelligence > Studying' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Logistic regression (0) | 2020.12.29 |
---|---|
Gradient descent (0) | 2020.11.14 |
Linear regression (0) | 2020.11.14 |
[๋จธ์ ๋ฌ๋ ๊ต๊ณผ์] Ch04 ์ข์ ํ๋ จ ์ธํธ ๋ง๋ค๊ธฐ : ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ (0) | 2020.11.01 |
[๋จธ์ ๋ฌ๋ ๊ต๊ณผ์] Ch02 ๊ฐ์ฒด์งํฅ ํผ์ ํธ๋ก API ๋ถ์ (0) | 2020.09.20 |