๐2์ฃผ์ฐจ 220117 ~ 220123 ๊ณต๋ถ๊ธฐ๋ก
๐ ๋ณธ ํฌ์คํ ์ <ํผ์ ๊ณต๋ถํ๋ ๋จธ์ ๋ฌ๋+๋ฅ๋ฌ๋> ์ฑ ์ ๋ฐํ์ผ๋ก ์์ฑํจ์ ์๋ฆฝ๋๋ค.
โ Ch.03-2 ์ ํ ํ๊ท
KNN์๊ณ ๋ฆฌ์ฆ์ ํ๊ณ๋ ์ด์์ ๊ฐ์๋ก ์์ธก์ ํ๋ ๊ฒ์ด๋ค. ์ ๊ทธ๋ํ๋, ๊ธฐ์กด ๋ฐ์ดํฐ์๋ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์์ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ ๋ณด์ฌ์ค๋ค. ์ด๋ก์ ์ผ๊ฐํ(โ๏ธ)์ ๊ธธ์ด๋ฅผ 50์ผ๋ก ์์ธกํ์ ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์์ธกํ ๋ฌด๊ฒ์ด๋ค. ์ฃผํฉ์ ๋ง๋ฆ๋ชจ(๐ถ)๋ ์์ธก๊ฐ ์ฃผ๋ณ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ด์ 3๊ฐ์ด๋ค. (์ด์์ ๊ฐ์๋ฅผ 3๊ฐ ์ค์ ํ์๋ค.) ๊ธธ์ด๊ฐ ๊ธธ์ด์ง์ ๋น๋กํ์ฌ ๋ฌด๊ฒ๊ฐ ๋์ด๋๋ ๊ฒ์ด ์๋๋ผ ์ด์์ ์ํ๋ก ์์ธกํ๊ธฐ ๋๋ฌธ์, ๊ธธ์ด๊ฐ 500์ด์ฌ๋ ๋ฌด๊ฒ๋ฅผ ์ฝ 1000์ผ๋ก ์์ธกํ ๊ฒ์ด๋ค.
์ฃผ๋ณ์ ์ํ์ ๊ธฐ์ค์ผ๋ก ์์ธกํ๊ธฐ ๋๋ฌธ์, ๊ธธ์ด๋ฅผ 100์ผ๋ก ์ค์ ํ์์ ๋๋ ์์ ๊ทธ๋ํ์ ๋ค๋ฅผ ๊ฒ ์๋ x์ถ์ ๋ณด์ฌ์ค๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์, ๋ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด๋ ๋์ง๋ง ๋ฒ๊ฑฐ๋กญ๋ค. ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ๋ณด๋ค๋ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์์ธก์ ํด๋ณด์.
๐ฅ ์ ํ ํ๊ท (linear regression)
์ ํ ํ๊ท๋ ํน์ฑ๊ณผ ํ๊น ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ๋ ํ๊ท๋ถ์ ๊ธฐ๋ฒ์ด๋ค. ํน์ฑ์ด ํ๋๋ฉด ์ง์ ๋ฐฉ์ ์์ด ๋์ด ๋จ์ ์ ํ ํ๊ท(simple linear regression)์ด๋ค. ๋ ์ด์์ ์ค๋ช ๋ณ์์ ๊ธฐ๋ฐํ ๊ฒฝ์ฐ์๋ ๋ค์ค ์ ํ ํ๊ท๋ผ๊ณ ํ๋ค.
์ ํ ํ๊ท๋ ์๋ ค์ง์ง ์์ ํ๋ผ๋ฏธํฐ๋ ๋ฐ์ดํฐ๋ก๋ถํฐ ์ถ์ ํ๋ค. ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ํ๋ จํ๋ฉด, LinearRegressionํด๋์ค๋ ๊ธฐ์ธ๊ธฐ์ธ a์ y์ ํธ์ธ b๋ฅผ ๊ฐ์ ์ฐพ๋๋ค. ์ด ๊ฐ์ผ๋ก ํ์ ๋ ๋ฆฝ ๋ณ์ x์ ๋ฐ์ดํฐ๋ก y๋ฅผ ์์ธกํ ์ ์๋ค.
โ์ด๋ป๊ฒ ๊ธฐ์ธ๊ธฐ์ y์ ํธ์ ์ฐพ๋์?
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
#์ ํ ํ๊ท ๋ชจ๋ธ์ ํ๋ จ
lr.fit(train_input, train_target)
LinearRegression์ ์ฌ์ด์ปท๋ฐ์ ์ ํ ํ๊ท ํด๋์ค๋ก, ๋ด๋ถ์์ ๊ธฐ์ธ๊ธฐ์ y์ ํธ์ ๊ณ์ฐํ๋ค.
๋ชจ๋ธ ๋ด๋ถ์์ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ์ ์ฐพ๋ ๊ฒ์ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ๋ผ๊ณ ํ๋ค.
print(lr.coef_, lr.intercept_)
#[39.01714496] -709.0186449535477
coef_์ intercept_๊ฐ ๊ธฐ์ธ๊ธฐ์ y์ ํธ์ด์ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ์ด๋ค.
* coef_ ์์ฑ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ๋จธ์ ๋ฌ๋์์ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ข ์ข ๊ณ์(coefficient) ๋๋ ๊ฐ์ค์น(weight)๋ผ๊ณ ํ๋ค.
KNN ํ๊ท ์๊ณ ๋ฆฌ์ฆ์ 50cm์ ๋ฌด๊ฒ๋ฅผ 1033์ผ๋ก ์์ธกํ๊ณ , ์ ํ ํ๊ท ์๊ณ ๋ฆฌ์ฆ์ 1241๋ก ์์ธก์ ํ์๋ค. ์ข์ธก์ด ์์ํ ๊ฐ๋ณด๋ค๋ ์ฐ์ธก์ด ์์ํ ๊ฐ์ด ๋ ์ ๋ขฐ์ฑ์ด ๋๋ค. ํ์ง๋ง ์ฐ์ธก ๊ทธ๋ํ๋ฅผ ์์ธํ ๋ณธ๋ค๋ฉด ์ด์ํ ์ ์ ๋๋ ์ ์๋ค. ์ฐ์ธก ๊ทธ๋ํ์ ์ข์ธก ํ๋จ์ ๋ณด๋ฉด, ๊ทธ๋ํ๋ ํ ์์ด ๋ด๋ ค๊ฐ์ ์์๋ก ๊ฐ๋ค. ๊ธฐ์กด ๋ฐ์ดํฐ๋ ์ง์ ๊ทธ๋ํ๋ณด๋ค๋ ํ์ด์ง ๊ณก์ ๊ทธ๋ํ๊ฐ ๋ ๊ฐ๊น๋ค. ๊ณก์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ์ํด์๋ 2์ฐจ ๋ฐฉ์ ์์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค์ผ ํ๊ณ ์ด๋ฅผ ๋คํญ ํ๊ท๋ผ๊ณ ํ๋ค.
๐ฅ ๋คํญ ํ๊ท(Polynomial Regression)
๋คํญ ํ๊ท๋ ๋คํญ์์ ์ฌ์ฉํ์ฌ ํน์ฑ๊ณผ ํ๊น ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ํ๋ธ๋ค.
lr = LinearRegression()
lr.fit(train_poly, train_target)
print(lr.predict([[50**2, 50]]))
#[1573.98423528]
์ ์ฝ๋๋ธ๋ญ์ x = 50 ์ ๋์ ํ์ ๋, ์๊ณ ๋ฆฌ์ฆ์ด y๋ฅผ 1573์ผ๋ก ์์ธกํจ์ ๋ณด์ฌ์ค๋ค.
print(lr.coef_, lr.intercept_)
#[ 1.01433211 -21.55792498] 116.05021078278276
๋คํญ์์ x², x ๊ทธ๋ฆฌ๊ณ y์ ํธ์ ์ถ๋ ฅํ ๊ฐ์ด๋ค.
x²์ ๊ณ์(a)๋ 1.01433211, x์ ๊ณ์(b)๋ -21.55792498, y์ ํธ์ 116.05021078278276์ด๋ค.
๊ตฌํ ๊ฐ๋ค์ ์์ํํ๋ฉด ์์ ๊ฐ์ด ๋ํ๋ผ ์ ์๋ค.
๋จ์ ์ ํ ํ๊ท์ ๋ฌธ์ ๋ฅผ ๋ณด์ํ์ฌ ๋ ๋์ ๋ค์ค ํ๊ท ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด์๋ค.
#๊ตฌ๊ฐ๋ณ ์ง์ ์ ๊ทธ๋ฆฌ๊ธฐ ์ํด 15์์ 49๊น์ง ์ ์ ๋ฐฐ์ด์ ๋ง๋ ๋ค.
point = np.arange(15, 50)
#ํ๋ จ ์ธํธ์ ์ฐ์ ๋๋ฅผ ๊ทธ๋ฆฐ๋ค.
plt.scatter(train_input, train_target)
#15์์ 49๊น์ง 2์ฐจ ๋ฐฉ์ ์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฐ๋ค.
plt.plot(point, 1.01*point**2 - 21.6*point + 116.05)
#50cm ๋์ด ๋ฐ์ดํฐ
plt.scatter(50, 1573, marker='^')
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
๋ค์ค ํ๊ท ๊ทธ๋ํ ์ฝ๋์ด๋ค. ์ ์ฝ๋์์๋ arange() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์งง์ ์ง์ ์ ์ด์ด์ ๋ง์น ๊ณก์ ์ฒ๋ผ ํํํ์๋ค.
๐ฅ๋ํ์ด ๋ธ๋ก๋์บ์คํ
๊ธฐ๋ณธ์ ์ผ๋ก NumPy์์๋ ๋ชจ์์ด ๋ค๋ฅธ ๋ฐฐ์ด๋ผ๋ฆฌ๋ ์ฐ์ฐ์ด ๋ถ๊ฐ๋ฅํ๋ค. ํ์ง๋ง ๋ธ๋ก๋์บ์คํ ์ ๋ชจ์์ด ๋ค๋ฅธ ๋ฐฐ์ด๋ค ๊ฐ์ ์ฐ์ฐ์ด ์ด๋ค ์กฐ๊ฑด์ ๋ง์กฑํ์ ๋ ๊ฐ๋ฅํด์ง๋๋ก ๋ฐฐ์ด์ ์๋์ ์ผ๋ก ๋ณํํ๋ ๊ฒ์ด๋ค.
๋ธ๋ก๋์บ์คํ ์ด ๊ฐ๋ฅํ ์กฐ๊ฑด
1. ์ฐจ์์ ํฌ๊ธฐ๊ฐ 1์ผ ๋ : ๋ ๋ฐฐ์ด ๊ฐ์ ์ฐ์ฐ์์ ์ต์ํ ํ๋์ ๋ฐฐ์ด์ ์ฐจ์์ด 1์ด๋ผ๋ฉด ๊ฐ๋ฅํ๋ค.
2. ์ฐจ์์ ์ง์ด ๋ง์ ๋ : ์ฐจ์์ ๋ํด ์ถ์ ๊ธธ์ด๊ฐ ๋์ผํ๋ฉด ๋ธ๋ก๋์บ์คํ ์ด ๊ฐ๋ฅํ๋ค.
์๋ ์ด๋ฏธ์ง๋ array๋ฅผ ์ฐจ์์ ๋ฐ๋ผ ์ด๋ค ๋ชจ์์ ํ๊ณ ์๊ณ ์ถ(axis)์ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์๋์ง ์ ์ ์๋ ์ด๋ฏธ์ง์ด๋ค.
axis๋ฅผ ์ค์ ํ ๋ ์ ์ดํด๊ฐ ์ ๋์๋๋ฐ ๋ธ๋ก๊ทธ ์์ฑ์๋ถ๊ป์ ์น์ ํ๊ฒ ๋ฃ์ด์ฃผ์ จ๋ค.
[์ฐธ๊ณ ์๋ฃ]
์ ํ ํ๊ท, ๋คํญ ํ๊ท ์ด๋ฏธ์ง ์ฌ์ฉ
์ ํ ํ๊ท์ ๋ํด ์๊ณ ์ถ๋ค๋ฉด?
https://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95_%ED%9A%8C%EA%B7%80
๋ํ์ด ๋ธ๋ก๋์บ์คํ ์ ๋ํด์ ์์ธํ ์ค๋ช ์ ํ๊ณ ์๋ค
'Study > AI & ML' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๊ท ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ชจ๋ธ ๊ท์ (3) - ํน์ฑ ๊ณตํ๊ณผ ๊ท์ (0) | 2024.03.15 |
---|---|
ํ๊ท ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ชจ๋ธ ๊ท์ (1) - K-์ต๊ทผ์ ์ด์ ํ๊ท (3) | 2024.03.15 |
๋์ ์ฒซ ๋จธ์ ๋ฌ๋&๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ (3) (1) | 2024.03.15 |
๋์ ์ฒซ ๋จธ์ ๋ฌ๋&๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ (2) (0) | 2024.03.15 |
๋์ ์ฒซ ๋จธ์ ๋ฌ๋&๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ (1) (0) | 2024.03.15 |