I. Intro
๋จธ์ ๋ฌ๋
๋ฐ์ดํฐ๋ ์ธ๊ณต์ง๋ฅ์ ๊ด์ฌ์ด ์์ผ์ ๋ถ๋ค์ด๋ผ๋ฉด ํ ๋ฒ์ฏค์ ๋ค์ด๋ณด์
จ์ ๊ฒ์
๋๋ค! 4์ฐจ ํ๋ช
์๋์ธ ์์ฆ, ๋น
๋ฐ์ดํฐ์ ์ธ๊ณต์ง๋ฅ์ด ๋ง์ด ์๋ ค์ง๋ฉด์ ๋จธ์ ๋ฌ๋์ ๋ํ ๊ด์ฌ ๋ํ ์ปค์ง๊ณ ์์ต๋๋ค.
๋จธ์ ๋ฌ๋์ ํ์ต๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฏธ๋ ์ํฉ์ ์์ธกํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ค์ ๊ฒฝํฅ์ฑ์ ๋ํ๋ด๋ ๋ฐ์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋, ๋ถ์ ๊ณผ์ ์ ์ฃผ๋ก ๋ฐ์ดํฐ ์๊ฐํ ๋ฐ EDA, ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, ๋ชจ๋ธ๋ง ์์ผ๋ก ์งํ๋๋๋ฐ์! ์ด๋ฒ ์ํฐํด์์๋ ๊ฐ ๋จ๊ณ๋ฅผ ์
๋ฌธ์๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ํ์ด์ ์์ฑํ ์์ ์ด๋, ์ฐจ๊ทผ์ฐจ๊ทผ ์ ๋ฐ๋ผ์ค์๊ธธ ๋ฐ๋๋๋ค
์บ๊ธ์ ์ฌ์ฅ๋ง๋น ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด ์์ธํ ์ค๋ช
ํด ๋๋ฆด๊ฒ์.
๋๊ทผ๋๊ทผ ์บ๊ธ ๋ฐ์ดํฐ ๋ถ์ ํํ ๋ฆฌ์ผ์ ์ด ๋ค ๊ฐ์ ์ฑํฐ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๋ค ๋จ๊ณ๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐ๋ผ์ค๋ค ๋ณด๋ฉด ๋น์ ๋ ์ด๋์ ๋จธ์ ๋ฌ๋ ๋ง์คํฐ
์ฑํฐ . ๋ฐ์ดํฐ ์๊ฐํ
์ฑํฐ . ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
์ฑํฐ . ๋ชจ๋ธ๋ง ๋ฐ ๋ฐ์ดํฐ ๋ถ์
์ฑํฐ . ๊ฒฐ๊ณผ ๋ถ์
II. ๋ฐ์ดํฐ ๋ถ์ ํํ ๋ฆฌ์ผ
Chapter 1. ๋ฐ์ดํฐ ์๊ฐํ
๋ณธ๊ฒฉ์ ์ธ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๋ฐ ๋ชจ๋ธ๋ง์ ์์, ์ฐ๋ฆฌ๊ฐ ๋ค๋ฃฐ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์ธ์ง ์๊ฐํํด ์ดํด๋ณผ ํ์๊ฐ ์์ต๋๋ค. ์๊ฐํ๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ด์์น๋ฅผ ๋ฐ๊ฒฌํ ์ ์๊ณ , ๋ฐ์ดํฐ์ ํน์ฑ์ ํ์
ํด ์ถํ ์์ธก ๋ชจ๋ธ์ ๊ณ ๋ฅด๋ ๋ฐ ๋์์ ๋ฐ์ ์ ์์ต๋๋ค.
์ฃผ์ด์ง feature ํ์ธํ๊ธฐ
๋จผ์ , pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ read_csv() ํจ์๋ฅผ ํตํด ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ csv ํ์ผ์ ๋ถ๋ฌ์์ผํฉ๋๋ค. head() ํจ์๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋๋ต์ ์ธ ํน์ฑ๊ณผ feature ๊ฐ์๋ฅผ ํ์
ํด๋ณด๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ถ๋ฌ์จ ๋ฐ์ดํฐ๋ ์ฌ์ฅ๋ง๋น ์ฌ๋ถ๋ฅผ ์๋ฏธํ๋ output์ ์ ์ธํ๊ณ ์ด 13๊ฐ์ feature๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๊ณผ์ ์์๋ ๊ฐ feature๋ค์ด ์ฌ์ฅ๋ง๋น ๋ฐ๋ณ์ ์ผ๋ง๋ ์ํฅ์ ๋ฏธ์น ์ง ์์๋ณผ ์์ ์
๋๋ค. feature ๋ณ๋ก ์กฐ๊ธ ๋ ์์ธํ ์ ๋ณด๋ฅผ ํ์
ํด๋ณด๊ธฐ ์ํด info() ํจ์๋ฅผ ์ฌ์ฉํด๋ณด๊ฒ ์ต๋๋ค. info() ํจ์๋ ๋ฐ์ดํฐ ํ๋ ์์ ๊ตฌ์ฑํ๋ ํ๊ณผ ์ด์ ํฌ๊ธฐ, ์ปฌ๋ผ ๋ช
, ์ปฌ๋ผ์ ๊ตฌ์ฑํ๋ ๊ฐ์ ์๋ฃํ ๋ฑ์ ๊ฒฐ๊ณผ๋ก ๋ฐํํฉ๋๋ค.
์ฃผ์ด์ง feature๋ฅผ ์๋์ ๊ฐ์ด ์ฐ์ํ, ๋ฒ์ฃผํ์ผ๋ก ๋๋ ์ ์์์ต๋๋ค.
feature ๋ณ ๋ถํฌ ๋ฐ ๊ด๊ณ ํ์ธํ๊ธฐ
๋ณธ๊ฒฉ์ ์ผ๋ก ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์งํํ๊ธฐ์ ์์์, ๊ฐ feature์ ๋ถํฌ๋ฅผ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค. ๋จผ์ ๊ฐ๋ณ feature์ ๋ถํฌ๋ฅผ ํ์ธํ๊ฒ ์ต๋๋ค.
plt.figure(figsize=(15,15))
for i,col in enumerate(df.columns,1):
plt.subplot(7,2,i)
plt.title(f"Distribution of {col} Data")
sns.histplot(df[col],kde=True)
plt.tight_layout()
plt.plot()
Python
๋ณต์ฌ
์๊ฐํ ๊ฒฐ๊ณผ๋ฅผ ํตํด ๊ฐ feature์ ๋ถํฌ๋ ๋ฌผ๋ก , ์ฐ์ํ ๋ฐ์ดํฐ์ ๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ํ ๋ฒ ๊ตฌ๋ณํด ๋ณผ ์ ์์์ต๋๋ค.
์ด๋ฒ์๋ ๋ feature ๊ฐ์ ๊ด๊ณ๋ฅผ ์์๋ณด๋๋กํ๊ฒ ์ต๋๋ค. ์ด๋๋ seaborn์ pairplot() ํจ์๋ฅผ ์ฌ์ฉํ ๊ฑด๋ฐ์, pairplot ํจ์๋ ๊ฐ ๊ทธ๋ฆฌ๋์ ๋ feature ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๊ทธ๋ํ๋ฅผ ํ๋์ฉ ๊ทธ๋ฆฌ๋ฉฐ ๊ฐ์ feature๋ผ๋ฆฌ ์ง์ ์ด๋ฃจ๋ ๋๊ฐ์ ๋ฐฉํฅ์ผ๋ก๋ ํ์คํ ๊ทธ๋จ์ ์๊ฐํํฉ๋๋ค. ์๋ก ๋ค๋ฅธ ๋ณ์ ๊ฐ์๋ ์ฐ์ ๋๋ฅผ ํตํด ๋ feature์ ๊ด๊ณ๋ฅผ ํ์
ํ ์ ์์ต๋๋ค.
plt.figure(figsize=(15,10))
sns.pairplot(df,hue="output")
plt.title("Looking for Insites in Data")
plt.legend("HeartDisease")
plt.tight_layout()
plt.plot()
Python
๋ณต์ฌ
์ฌ์ฅ๋ง๋น ๋ฐ์ดํฐ์ pairplot ํจ์๋ฅผ ์ ์ฉํด๋ณด๋ฉด ์์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์์ต๋๋ค. ์ด๋ hue๋ฅผ output์ผ๋ก ์ค์ ํด, ์ฌ์ฅ๋ง๋น ์ฌ๋ถ ๋ณ๋ก ํ์คํ ๊ทธ๋จ๊ณผ ์ฐ์ ๋ ๊ทธ๋ํ์ ์์์ ๋ค๋ฅด๊ฒ ํ์์ต๋๋ค.
์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ โPlotlyโ
๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์ํด์ matplotlib, seaborn ๋ฑ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฒ ์๊ฐํ ๊ณผ์ ์์๋ plotly๋ฅผ ์ฌ์ฉํด ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํด๋ณด๊ฒ ์ต๋๋ค. plotly๋ ์น ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ d3.js๋ฅผ ์ด์ฉํด ์ธํฐ๋ํฐ๋ธํ ๊ทธ๋ํ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ฐ์ ๋ ๊ทธ๋ํ, ์ ๊ทธ๋ํ, ๋ง๋ ๊ทธ๋ํ ๋ฑ์ ๊ธฐ๋ณธ์ ์ธ ์๊ฐํ ๋ฟ๋ง ์๋๋ผ, ์ธ๊ณต์ง๋ฅ ๋ฐ ๋จธ์ ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฐํฉํด ๋ค์ํ ์๊ฐํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
plotly์ ๋ ์์ธํ ๋ด์ฉ์ ์๋ Plotly ๊ณต์ ์ฌ์ดํธ์์ ํ์ธํ ์ ์์ต๋๋ค.
์ฐ์ํ ๋ฐ์ดํฐ ์๊ฐํ
์ฐ์ํ ๋ฐ์ดํฐ๋ box plot, ์ฆ ์์ ๊ทธ๋ฆผ์ ์ด์ฉํด ์๊ฐํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
box plot(์์ ๊ทธ๋ฆผ)์ด ๋ฌด์์ธ๊ฐ์?
box plot์ ์๋ฃ๋ก๋ถํฐ ์ป์ด๋ธ ํต๊ณ๋์ธ 5๊ฐ์ง ์์ฝ ์์น๋ฅผ ํตํด ์๊ฐํํฉ๋๋ค. 5๊ฐ์ง ์์ฝ์์น๋ ์ต์๊ฐ, ์ 1์ฌ๋ถ์๊ฐ, ์ 2์ฌ๋ถ์๊ฐ, ์ 3์ฌ๋ถ์๊ฐ, ์ต๋๊ฐ์ ์๋ฏธํฉ๋๋ค. ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ ๋ฒ์ด๋ ์ด์์น๋ ์ ์ผ๋ก ์๊ฐํํฉ๋๋ค. ์์ ๊ทธ๋ฆผ์ ํตํด ๋ฐ์ดํฐ ๋ถํฌ๋ฅผ ํ์ธํ๊ณ ์ด์์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ฉ์ดํฉ๋๋ค.
์์์ ์ดํด๋ณธ ์ฐ์ํ ๋ฐ์ดํฐ ์ค ์ฝ๋ ์คํ
๋กค์ ์๋ฏธํ๋ โcholโ feature์ ์ต๋ ์ฌ๋ฐ์๋ฅผ ์๋ฏธํ๋ โthalachhโ feature๋ฅผ ์ด์ฉํด ์๊ฐํ๋ฅผ ์งํํด๋ณด๊ฒ ์ต๋๋ค. ๊ฐ box plot์ x์ถ์ output์ผ๋ก ์ค์ ํด ์ฌ์ฅ๋ง๋น ์ฌ๋ถ์ ๋ํ feature์ ๋ถํฌ๋ฅผ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋จผ์ โcholโ feature์ ๋ถํฌ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์๊ฐํ ๊ฒฐ๊ณผ๋ฅผ ํตํด, ์ด์์น๋ฅผ ์ ์ธํ๋ฉด ์ฌ์ฅ๋ง๋น ํ์๊ตฐ์ ์์น๊ฐ ์คํ๋ ค ๋ฎ์์์ ์ ์ ์์ต๋๋ค.
๋ค์์ผ๋ก๋ โthalachhโ feature์ ๋ถํฌ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ต๋ ์ฌ๋ฐ์์ ๊ฒฝ์ฐ ์ต์๊ฐ, ์ค์๊ฐ, ์ต๋๊ฐ ๋ฑ์ด ๋ชจ๋ ์ฌ์ฅ๋ง๋น ํ์๊ตฐ์์ ๋๊ฒ ๋ํ๋ฌ์ต๋๋ค.
์ํฐํด์์๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ box plot์ ์ฌ์ฉํ์ง๋ง, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด box plot์ ์ฐ์ ๋ ๊ทธ๋ํ๋ ํ์คํ ๊ทธ๋จ์ ์ถ๊ฐํด ์๊ฐํํ ์ ์์ต๋๋ค.
๋ฒ์ฃผํ ๋ฐ์ดํฐ ์๊ฐํ
๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ์ ์ธ ํ์คํ ๊ทธ๋จ์ ์ด์ฉํด ์๊ฐํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ฒ์ฃผํ ๋ฐ์ดํฐ ์ค chest pain type ์๋ฏธํ๋ โcpโ feature์ ์ง์คํด ๋นํ ์ฌ๋ถ๋ฅผ ์๋ฏธํ๋ โthallโ feature๋ฅผ ์ด์ฉํด ์๊ฐํ๋ฅผ ์งํํด๋ณด๊ฒ ์ต๋๋ค. ๋ฒ์ฃผํ ๋ฐ์ดํฐ ์ญ์ x์ถ์ output์ผ๋ก ์ค์ ํ์ต๋๋ค.
โcpโ feautre์ ๋ํ ์๊ฐํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์๊ฐํ ๊ฒฐ๊ณผ๋ฅผ ํตํด, chest pain type 0๋ณด๋ค๋ chest pain type 1, 2, 3์ ๋ํด ์ฌ์ฅ๋ง๋น ๋ฐ์ ๋น์จ์ด ๋์์์ ์ ์ ์์ต๋๋ค.
๋ค์์ผ๋ก๋ โslpโ feature๋ฅผ ์๊ฐํํ์ต๋๋ค.
์๊ฐํ ๊ฒฐ๊ณผ๋ฅผ ํตํด, slp feature๊ฐ 2์ธ ๊ฒฝ์ฐ์์ ์ฌ์ฅ๋ณ ๋ฐ์ ๋น์จ์ด ๋๋๋ฌ์ง๊ฒ ๋๊ฒ ๋ํ๋ฌ์์ ์ ์ ์์ต๋๋ค.
๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ ํ์คํ ๊ทธ๋จ ์ธ์๋, Heatmap ๋ฑ์ ํตํด ์๊ฐํ ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ์ ๊ฐ์ ์์์ผ๋ก ๋ณํ์์ผ์ฃผ๋ Heatmap ์๊ฐํ์ ๊ฒฝ์ฐ ์์ ์ ๋ณด๋ฅผ ํตํด ํญ๋ชฉ๋ณ ์์น๋ฅผ ๊ฐ์์ ์ผ๋ก ๋ํ๋ผ ์ ์๋ค๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์ง๋ง, ๋น๊ต์ ๊ท ์ผํ ๋ถํฌ์ ๋ฐ์ดํฐ์ ์ ์ฉํ๊ธฐ์๋ ๋ถ์ ์ ํ๋ค๋ ๋จ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Chapter 2. ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ๋งํผ ์ค์ํฉ๋๋ค. ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ์ดํฐ์ ๊ธฐ๋ฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ์ผ๋ก ๊ฐ์ง๋๋์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ๊ธฐ ์ ์ ๋ฐ์ดํฐ์ ๋ํด ๋ฏธ๋ฆฌ ์ฒ๋ฆฌํด์ผํ ์ฌํญ๋ค์ด ์์ต๋๋ค.
์ด์์น ์ ๊ฑฐํ๊ธฐ
์ด์์น๋ ๋ง ๊ทธ๋๋ก ์ด์์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ปํฉ๋๋ค. ๋จธ์ ๋ฌ๋์์๋ ์ด๋ฌํ ์ด์์น ๋ฐ์ดํฐ ๋๋ฌธ์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ด ํฌ๊ฒ ์ข์ฐ๋ฉ๋๋ค.
์ด์์น๊ฐ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์ด๋ป๊ฒ ์ํฅ์ ๋ผ์น๋์?
๋ชจ๋ธ์ ์
์ฅ์์๋ ๋ฐ์ดํฐ์ ํจํด์ ๋ณด๊ณ ํ๋ฆ์ ํ์
ํด ์์ธก์ ์ํํด์ผ ํ๋๋ฐ, ์ด์์น ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ ์์๋ ์ด์์น ๋ฐ์ดํฐ๋ค ๋๋ฌธ์ ๋ชจ๋ธ์ ์
์ฅ์์๋ ๋ฌ๊ธ์๋ ํจํด์ ์ํํ๊ฒ ๋์ด ์์ธก ์ ํ๋๊ฐ ๋จ์ด์ง ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด์์น๋ ์ด๋ป๊ฒ ๋ฐ๊ฒฌํ๋์?
๋ํ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก IQR๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
IQR(Inter Quantile Range) IQR์ ์ฌ๋ถ์ ๊ฐ์ ํธ์ฐจ๋ฅผ ์ด์ฉํฉ๋๋ค. ์ฌ๊ธฐ์ IQR์ ์๋์ ๊ทธ๋ฆผ์์ ํ์ธํ ์ ์๋ฏ์ด 3์ฌ๋ถ์์์์ 1์ฌ๋ถ์์๋ฅผ ๋บ ๊ฐ์
๋๋ค. ์ฆ, IQR = Q3 - Q1์
๋๋ค. IQR์ ์ด์ฉํด์ ์ด์์น๋ฅผ ํ์งํ ๋๋ IQR๊ฐ์ ์ด๋ค ํน์ ๊ฐ์ ๊ณฑํด์ ๊ตฌํ๋๋ฐ, ๋ณดํต 1.5๋ฅผ ๊ณฑํ์ฌ ์ด์์น๋ฅผ ํ์งํฉ๋๋ค. ์ฆ, IQR์์ 1.5๋ฅผ ๊ณฑํ์ฌ Q3์ ๋ํด์ฃผ๊ณ , IQR์์ 1.5๋ฅผ ๊ณฑํด์ Q1์ ๋นผ์ค๋๋ค. ์ด๋, Q3์ ๋ํด์ค ๊ฐ์ ์ต๋๊ฐ, Q1์ ๋นผ์ค ๊ฐ์ ์ต์๊ฐ์ด๋ผ๊ณ ํฉ๋๋ค. ์ฌ๊ธฐ์, ์ต๋๊ฐ๋ณด๋ค ํฐ ๊ฐ ๊ทธ๋ฆฌ๊ณ ์ต์๊ฐ๋ณด๋ค ์์ ๊ฐ์ โ์ด์์นโ๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
์ฌ์ฅ๋ง๋น ๋ฐ์ดํฐ์ ํผ์ฒ๋ค์ ๋ถํฌ๋ฅผ ๋ณด์๋ฉด ์๋์ ๊ฐ์ด Boxplot ์ธ์ ์ ๋ค์ด ์๋ ๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค. ์ด ์ ๋ค์ โ์ด์์นโ๋ผ๊ณ ํ๋๋ฐ์! ์์์ ๋ฐฐ์ด iqr๋ฐฉ์์ ์ด์ฉํ์ฌ ์ด์์น๋ฅผ ์ ๊ฑฐํด์ฃผ๋ฉด ๋ฉ๋๋ค.
๊ฒฐ์ธก์น ์ ๊ฑฐํ๊ธฐ
๊ฒฐ์ธก์น, ์ฆ Null๊ฐ์ ๋จธ์ ๋ฌ๋์์ ํ์ฉ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ์ Null๊ฐ์ด ์์ ๊ฒฝ์ฐ ์์ ์ ๊ฑฐ๋ฅผ ํ๊ฑฐ๋ ํผ์ฒ์ ํ๊ท ๊ฐ, ์ค๊ฐ๊ฐ ๋ฑ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ณํํด์ฃผ๋ ์์
์ด ํ์ํฉ๋๋ค
๋ง์ฝ์ Null๊ฐ์ด ๋๋ถ๋ถ์ด๋ผ๋ฉด ์ด๋กํ๋์?
๋ฐ์ดํฐ์ ๊ฒฐ์ธก์น๋ฅผ ํ์ธํ์ ๋ Null๊ฐ์ด ๋๋ถ๋ถ์ด๋ผ๋ฉด ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋์ฒดํ๋ ๊ฒ๋ณด๋ค ์คํ๋ ค ํด๋น ํผ์ฒ๋ ๋๋ํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค!
์ฌ์ฅ๋ง๋น ๋ฐ์ดํฐ์ ๊ฐ์ด Null๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ด ๊ณผ์ ์ ๊ฑด๋๋ฐ์
๋ ๋ฉ๋๋ค!
์ธ์ฝ๋ฉ
์ฌ์ดํท๋ฐ์ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฌธ์์ด ๊ฐ์ ๋ํด ์ ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํผ์ฒ๋ค์ ์๋ฃํ์ ํ์ธํ์ ๋ ๋ฌธ์ฅํ, ์ฆ objectํ ํผ์ฒ๊ฐ ์์ ๊ฒฝ์ฐ ์ด๋ค์ ์ซ์ํ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ์์
์ด ํ์ํฉ๋๋ค. ๋จธ์ ๋ฌ๋์ ๋ํ์ ์ธ ์ธ์ฝ๋ฉ ๋ฐฉ์์๋ โ๋ ์ด๋ธ ์ธ์ฝ๋ฉโ๊ณผ โ์-ํซ ์ธ์ฝ๋ฉโ์ด ์์ต๋๋ค.
๋ ์ด๋ธ ์ธ์ฝ๋ฉ? ์-ํซ ์ธ์ฝ๋ฉ?
์นดํ
๊ณ ๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ํ ์ซ์ ๊ฐ์ผ๋ก ๋ณํํด์ฃผ๋ ์์
์ ๋ ์ด๋ธ ์ธ์ฝ๋ฉ์ด๋ผ๊ณ ํ๊ณ , ๋ฐ์ดํฐ์ ์ ํ์ ๋ฐ๋ผ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ์ฌ ๊ณ ์ ๊ฐ์ ํด๋นํ๋ ์นผ๋ผ์๋ง 1์ ํ์ํ๊ณ ๋๋จธ์ง ์นผ๋ผ์๋ 0์ผ๋ก ํ์ํ๋ ๋ฐฉ๋ฒ์ ์-ํซ ์ธ์ฝ๋ฉ์ด๋ผ๊ณ ํฉ๋๋ค.
์ฆ, ๋ ์ด๋ธ ์ธ์ฝ๋ฉ์ ์ ์ฉํ ๊ฒฝ์ฐ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๋ฌธ์ํ์ผ๋ก ๋์ด์๋ ํผ์ฒ๊ฐ ์ซ์ํ์ผ๋ก ๋ณํ์ด ๋ฉ๋๋ค. TV๋ 1, ๋์ฅ๊ณ ๋ 2์ ๊ฐ์ด ๊ฐ๊ฐ์ ํญ๋ชฉ์ ๊ณ ์ ๋ฒํธ๊ฐ ๋ถ์ฌ๋์์์ ํ์ธํ ์ ์์ต๋๋ค.
์-ํซ ์ธ์ฝ๋ฉ์ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ์ด๋ค์ ๊ณ ์ ๊ฐ์ ์ฐจ์์ ๋ณํํ ๋ค, ํด๋นํ๋ ์นผ๋ผ์๋ง 1์ ํ์, ๋๋จธ์ง์๋ 0์ ํ์ํด์ค๋๋ค. ์ด๋, ํ๋ค์ค์ get_dummies ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ซ์ํ ๊ฐ ๋ณํ์์ด ์-ํซ ์ธ์ฝ๋ฉ์ ์ฝ๊ฒ ๊ตฌํ ํ ์ ์์ต๋๋ค.
์ด๋ ์ ์ํ ์ ์ ๋ ์ด๋ธ ์ธ์ฝ๋ฉ์ ํตํด ํผ์ฒ๊ฐ๋ค์ ์ธ์ฝ๋ฉํ ๋ ๊ฐ ํผ์ฒ๋ง๋ค ์์ฐจ์ ์ผ๋ก ์ซ์๊ฐ ๋ถ์ฌ๋๊ธฐ ๋๋ฌธ์ ํผ์ฒ๋ค๋ง๋ค ๋ถ์ฌ๋ ์ซ์๊ฐ ๋ค๋ฅด๊ฒ ๋ฉ๋๋ค. ์ด๋ด ๊ฒฝ์ฐ ํน์ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์์ ๊ฐ์ค์น๊ฐ ๋ ๋ถ์ฌ๋๊ฑฐ๋ ๋ ์ค์ํ๊ฒ ์ธ์๋ ๊ฐ๋ฅ์ฑ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ๋ ์๊ธฐ ๋๋ฌธ์ ๋ ์ด๋ธ ์ธ์ฝ๋ฉ์ ์ ํํ๊ท์ ๊ฐ์ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ์ง ์์์ผ ํฉ๋๋ค
์์ ๊ฐ์ ์ด์ ๋ก ์ฌ์ฅ๋ง๋น ๋ฐ์ดํฐ์ ๋ํด์๋ ๋ ์ด๋ธ ์ธ์ฝ๋ฉ์ด ์๋ ์-ํซ ์ธ์ฝ๋ฉ์ ์ ์ฉํ์๋๋ฐ์! ์-ํซ ์ธ์ฝ๋ฉ์ ์ ์ฉํ๋ ์๋ณธ ๋ฐ์ดํฐ์ ๋นํด ํผ์ฒ๋ค์ด ์๋นํ ๋ง์์ก์์ ํ์ธํ ์ ์์ต๋๋ค.
์์ ๊ฐ์ด ํผ์ฒ๋ค์ด ๋ง์ ๊ฒฝ์ฐ ๋์ค์ ๋ชจ๋ธ์ ํ์ต์ํฌ ๋, ๊ณผ์ ํฉ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์๋ ์์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ํผ์ฒ๋ค์ ์ฐจ์์ ์ถ์์ํค๋, ์ฆ ์ฐจ์์ถ์๋ฅผ ํด์ฃผ๋ ๊ฒ์ด ์ข์ต๋๋ค
ํผ์ฒ ์ค์ผ์ผ๋ง
์๋ก ๋ค๋ฅธ ๋ณ์์ ๊ฐ ๋ฒ์๋ฅผ ์ผ์ ํ ์์ค์ผ๋ก ๋ง์ถ๋ ์์
์ โํผ์ฒ ์ค์ผ์ผ๋งโ์ด๋ผ๊ณ ํฉ๋๋ค. ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ ํ์คํ์ ์ ๊ทํ๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ์ ํ์คํ์ ์ ๊ทํ์ ๊ฐ๋
์ ๊ฐ๋จํ ์ค๋ช
ํด๋๋ฆฌ์๋ฉด
ํ์คํ๋? ํ๊ท ์ด 0์ด๊ณ ๋ถ์ฐ์ด 1์ธ, ์ฆ โ๊ฐ์ฐ์์ ์ ๊ท ๋ถํฌโ๋ฅผ ๊ฐ์ง ๊ฐ์ผ๋ก ๋ณํํด์ฃผ๋ ์์
์ ํ์คํ๋ผ๊ณ ํฉ๋๋ค.
ํ์คํ๋ฅผ ํตํด ๋ณํ๋ ํผ์ฒ x์ ์๋ก์ด i๋ฒ์งธ ๋ฐ์ดํฐ๋ฅผ ๋ผ๊ณ ํ๋ค๋ฉด ์ด ๊ฐ์ ์๋ ๊ฐ์์ ํผ์ฒ x์ ํ๊ท ์ ๋บ ๊ฐ์ ํผ์ฒ x์ ํ์คํธ์ฐจ๋ก ๋๋ ๊ฐ์ผ๋ก ๊ณ์ฐํ ์ ์์ต๋๋ค.
๋จธ์ ๋ฌ๋์์๋ ํ์คํ๋ฅผ ์ฝ๊ฒ ์ง์ํ๊ธฐ ์ํด ํด๋์ค๋ฅผ ์ ๊ณตํ๋๋ฐ, ๋ํ์ ์ผ๋ก StandardScaler๊ฐ ์์ต๋๋ค. StandardScaler๋ ๊ฐ๋ณ ํผ์ฒ๋ฅผ ํ๊ท ์ด 0์ด๊ณ , ๋ถ์ฐ์ด 1์ธ ๊ฐ์ผ๋ก ๋ณํํด์ค๋๋ค. ์ฆ ๋ฐ์ดํฐ๋ค์ด ๊ฐ์ฐ์์ ์ ๊ท ๋ถํฌ๋ฅผ ๊ฐ์ง ์ ์๋๋ก ๋ณํํด์ฃผ๋ ์ค์ํ ์ญํ ์ ์ํํฉ๋๋ค.
ํ์คํ๋ฅผ ํด์ฃผ๋ ๊ฒ์ด ์ ์ค์ํ๊ฐ์?
์ ํํ๊ท๋ ๋ก์ง์คํฑ ํ๊ท๋ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฐ์์ ๋ถํฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ๊ตฌํ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ ์ ํ์คํ๋ฅผ ์ ์ฉํ๋ ๊ฒ์ ์์ธก ์ฑ๋ฅ ํฅ์์ ์ค์ํ ์์๊ฐ ๋ฉ๋๋ค.
์ฌ์ฅ๋ง๋น ๋ฐ์ดํฐ๊ฐ์ ๊ฒฝ์ฐ์๋ StandardScaler๋ฅผ ์ด์ฉํ์ฌ ํ์คํ๋ฅผ ์งํํ์๋๋ฐ์. ์๋ ์ผ์ชฝ ๊ทธ๋ฆผ์ ํ์คํ๋ฅผ ํ๊ธฐ ์ , ์ค๋ฅธ์ชฝ์ ํ์คํ๋ฅผ ์งํํ๊ณ ๋์์ ๋ถํฌ๋ฅผ ์๊ฐํ ํ ๊ฒ์
๋๋ค.
x์ถ์ ๋ณด์๋ฉด ํ์คํ๋ฅผ ์งํํ๊ธฐ ์ ๊ณผ ๋น๊ตํ์ ๋ ์งํํ ํ์ x์ถ ๋ฒ์๊ฐ 0์ ๊ธฐ์ค์ผ๋ก ๋ค์ง์ด์ง ์ข
๋ชจ์์ด ๋ ๊ฒ์ ๋ณด์ ํ์คํ๊ฐ ์ ์ํ์ด ๋์์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
์ ๊ทํ๋? ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ ๋ฐ์ดํฐ๋ค์ด ์์ ๋, ์ด๋ค์ ํฌ๊ธฐ๋ฅผ ํต์ผํ๊ธฐ ์ํด ํฌ๊ธฐ๋ฅผ ๋ณํํด์ฃผ๋ ์์
์ ์ ๊ทํ๋ผ๊ณ ํฉ๋๋ค. ์ฆ, ๊ฐ๋ณ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ๋ชจ๋ ๋๊ฐ์ ๋จ์๋ก ๋ณ๊ฒฝํด์ฃผ๋ ๊ฒ์
๋๋ค.
์๋ก์ด ๋ฐ์ดํฐ ๋ ์๋ ๊ฐ์์ ํผ์ฒ x์ ์ต์๊ฐ์ ๋บ ๊ฐ์ ํผ์ฒ x์ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ์ฐจ์ด๋ก ๋๋ ๊ฐ์ผ๋ก ๋ณํํ ์ ์์ต๋๋ค.
ํ์คํ๋ฟ๋ง ์๋๋ผ ์ ๊ทํ๋ฅผ ์ฝ๊ฒ ์ง์ํ๊ธฐ ์ํด ๋จธ์ ๋ฌ๋์์๋ ํด๋์ค๋ฅผ ์ ๊ณตํ๋๋ฐ, ๋ํ์ ์ผ๋ก MinMaxScaler๊ฐ ์์ต๋๋ค.
MinMaxScaler๋ ๋ฐ์ดํฐ ๊ฐ์ 0๊ณผ 1์ฌ์ด์ ๋ฒ์ ๊ฐ์ผ๋ก ๋ณํํด์ค๋๋ค. ๋ง์ฝ ๋ฐ์ดํฐ์ ๋ถํฌ๊ฐ ๊ฐ์ฐ์์ ๋ถํฌ๊ฐ ์๋ ๊ฒฝ์ฐ์ MinMaxScaler๋ฅผ ์ ์ฉํด ๋ณผ ์ ์์ต๋๋ค.
ํผ์ฒ ์ค์ผ์ผ๋ง์ ํ ๋ ์ ์ํด์ผ ํ ์ ์ด ์์ต๋๋ค. Scaler๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ํ์ต ๋ฐ์ดํฐ ์ธํธ๋ก fit()๊ณผ transform()์ ์ ์ฉํ๋ฉด ํ
์คํธ ๋ฐ์ดํฐ ์ธํธ๋ก๋ ๋ค์ fit()์ ์ํํ์ง ์๊ณ ํ์ต ๋ฐ์ดํฐ ์ธํธ๋ก fit()์ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ์ด์ฉํด transform()๋ณํ์ ์ ์ฉํด์ผ ํฉ๋๋ค.
์ฆ, ํ์ต ๋ฐ์ดํฐ๋ก fit()์ด ์ ์ฉ๋ ์ค์ผ์ผ๋ง ๊ธฐ์ค ์ ๋ณด๋ฅผ ๊ทธ๋๋ก ํ
์คํธ ๋ฐ์ดํฐ ์ธํธ์ ์ ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ธ๋ฐ, ์ ๊ทธ๋์ผ ํ ๊น์?
๋งจ ์ฒ์์ ๋งํ๋ฏ์ด ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ์ต ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ต๋๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ํ
์คํธ ๋ฐ์ดํฐ๋ ํ์ต ๋ฐ์ดํฐ์ ์ค์ผ์ผ๋ง ๊ธฐ์ค์ ๋ฐ๋ผ์ผ ํฉ๋๋ค
๋ง์ฝ์ ํ
์คํธ ๋ฐ์ดํฐ๋ก ๋ค์ ์๋ก์ด ์ค์ผ์ผ๋ง ๊ธฐ์ค ์ ๋ณด๋ฅผ ๋ง๋ค๊ฒ ๋๋ฉด ํ์ต ๋ฐ์ดํฐ์ ํ
์คํธ ๋ฐ์ดํฐ์ ์ค์ผ์ผ๋ง ๊ธฐ์ค ์ ๋ณด๊ฐ ์๋ก ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ฌ๋ฐ๋ฅผ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ์ง ๋ชป ํ ์ ์์ต๋๋ค
์ ์ด๋ก์จ ๋ฐ์ดํฐ ์๊ฐํ, ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ฅผ ๋ชจ๋ ๋ง์ณค์ต๋๋ค. ๋ค์๋ถํฐ๋ ๋ชจ๋ธ๋ง์ ๋ํด์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Chapter 3. ๋ชจ๋ธ๋ง
๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ํ์ต ๋ฐฉ๋ฒ์ ํฌ๊ฒ ์ง๋ ํ์ต, ๋น์ง๋ ํ์ต, ๊ฐํ ํ์ต์ผ๋ก ๋๋ ์ง๋๋ค. ๊ฐ์ ๋ฐ์ดํฐ๋ก ํ์ตํ๋๋ผ๋ ์ด๋ค ๋ชจ๋ธ์ ์ฌ์ฉํ๋๋์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๋งํผ์ด๋ ์ด๋ค ๋ชจ๋ธ์ ์ ํํ๊ณ ์ด๋ป๊ฒ ํ์ต์ํฌ ๊ฒ์ธ์ง๊ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค!
๋ฐ์ดํฐ ๋ถํฌ์์ ํ์ธํ๋ฏ์ด, ์ ๋ต ๋ ์ด๋ธ์ธ โ์ฌ์ฅ๋ง๋น ๋ฐ๋ณ ์ฌ๋ถโ ๋ฐ์ดํฐ๋ฅผ ์๊ณ ์์ผ๋ฏ๋ก โ์ง๋ ํ์ตโ ๋ฐฉ๋ฒ์ ์ ํํ์ฌ ํ์ต์ ์งํํ๊ฒ ์ต๋๋ค.
์ง๋ํ์ต์ด ๋ญ๊ฐ์?
์ง๋ ํ์ต์ด๋ ์ฌ๋ฌ ๋ฌธ์ ์ ๋ต์ ๊ฐ์ดย ํ์ตํจ์ผ๋ก์จ ๋ฏธ์ง์ ๋ฌธ์ ์ ๋ํ ์ฌ๋ฐ๋ฅธ ๋ต์ ์์ธกํ๊ณ ์ ํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ์ฆ, ์ ๋ต์ด ์๋ ์ฌ๋ก๋ค์ ํ์ตํ์ฌ ๋ชจ๋ธ์ ์์ฑํ๊ณ , ๊ทธ ๋ชจ๋ธ์ ์ด์ฉํด ์ ๋ต์ด ์๋ ๋ฌธ์ ์ ์ ๋ต์ ์์๋ด๊ณ ์ ํ๋ ํ์ต๋ฐฉ๋ฒ์
๋๋ค.
์ง๋ํ์ต์ ํฌ๊ฒ ํ๊ท๋ฌธ์ ์ ๋ถ๋ฅ๋ฌธ์ ๋ก ๋๋ ์ ์์ต๋๋ค. ์์ธกํ๊ณ ์ถ์ ์ ๋ต ๊ฐ์ด ์ฐ์ํ ์ซ์์ผ ๋ ํ๊ท๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๊ณ , ๋ถ๋ฅ๋ ๋ง ๊ทธ๋๋ก ์ด๋ ์ ๋ต์ ์ํ๋์ง โ๋ถ๋ฅโํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
์ฌ์ฅ๋ง๋น ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ, ์ ๋ต ๊ฐ์ด 0๊ณผ 1๋ก ์ด๋ค์ง ์ด์ค๋ถ๋ฅ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์, ๋ถ๋ฅ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๋จธ์ ๋ฌ๋ ๋ชจ๋ธ๋ง์ ์์์ ์ฌ์ฉํ ๋ชจ๋ธ์ ์ ์ ํ๋ ๊ฒ์ผ๋ก๋ถํฐ ์์ํฉ๋๋ค.
์ด ๋, ๋ฐ์ดํฐ์ ๋ถํฌ์ ํ์ฉ ๋ชฉ์ ์ ๋ฐ๋ผ ๋ชจ๋ธ ์ข
๋ฅ๋ฅผ ์ ์ ์ ํด์ผ๋ง ๋์ ์ ํ๋์ ์ ์๋ฏธํ ์ ๋ณด๋ฅผ ์ ๋ฌํด์ฃผ๋ ๋ชจ๋ธ์ ์ป์ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ์์ฑํ ๋ชจ๋ธ์ ๋ฐ๋ก ์ฌ์ฉํด๋ ๋์ง๋ง, โํ์ดํผ ํ๋ผ๋ฏธํฐ ํ๋โ์ ๊ฑฐ์น๋ฉด ๋์ฑ ์์ฑ๋ ์๋ ๋ชจ๋ธ์ ๋ง๋ค ์ ์์ต๋๋ค.
ํ์ดํผ ํ๋ผ๋ฏธํฐ ํ๋์ด ๋ญ๊ฐ์?
ํ์ดํผ ํ๋ผ๋ฏธํฐ ํ๋์ ์ฝ๊ฒ ๋งํ์๋ฉด ๋ชจ๋ธ์ ๊พธ๋ฉฐ์ฃผ๋ ์์
์
๋๋ค. ๊ฐ ๋ชจ๋ธ์ ๋
ํนํ ๋ณ์๊ฐ๋ค์ ์กฐ์ ํด์ฃผ๋ฉด์ ๋ชจ๋ธ์ ์ ํ๋์ ๊ณผ์ ํฉ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํด๋๊ฐ๋ ์์
์
๋๋ค. ์์ ๊ณผ์ ์ ํตํด ์์ฑํ ๋ชจ๋ธ์ train, test ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด ์์ธก์ ์งํํ๋ฉด ๋ชจ๋ธ๋ง ์์
์ด ๋ง๋ฌด๋ฆฌ ๋ฉ๋๋ค!
์ฌ์ฅ๋ง๋น ์์ธก ๋ชจ๋ธ๋ง์๋ ์ด 3๊ฐ์ง ๋ชจ๋ธ์ด ์ฌ์ฉ๋์ต๋๋ค. DecisionTree, RandomForest, XGBoost๋ ๊ฐ์๋ง์ ๊ณ ์ ํ ์ฅ์ ๋๋ฌธ์ ์ค์ ํ์
์์๋ ์์ฃผ ์ฌ์ฉ๋๋ ๋ชจ๋ธ๋ค์
๋๋ค. ๊ทธ๋ผ ์ง๊ธ๋ถํฐ ๊ฐ ๋ชจ๋ธ๋ค์ ํ๋์ฉ ์ดํด๋ณด๋ฉฐ ๋ชจ๋ธ๋ง ๊ณผ์ ์ ์ดํดํด๋ณด๊ฒ ์ต๋๋ค!
DecisionTree
์ฒซ ๋ฒ ์งธ ๋ชจ๋ธ์ธ DecisionTree์
๋๋ค. ํ๊ตญ๋ง๋ก๋ โ์์ฌ๊ฒฐ์ ํธ๋ฆฌโ ๋ชจ๋ธ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฝ๋๋ค.
์ด๋ฆ๋ง ๋ณด๊ณ ๋ ์ด๋ค ํํ์ธ์ง ๊ฐ์ด ์ค์ค๊น์?
๋ค, ๋ง์ต๋๋ค. ๋ฐ๋ก Tree, ์ฆ ๋๋ฌด ํํ์ ๋ชจ๋ธ์
๋๋ค.
DecisionTree ๋ชจ๋ธ์ ์ค๊ธฐ์์ ๋๋ญ๊ฐ์ง๊ฐ ๋ป์ด๋๊ฐ๋ฏ์ด ๋ถ๋ฅ๋ฅผ ์งํํฉ๋๋ค. ์ด ๋์ ๋ถ๋ฅ ๊ธฐ์ค์ ์ ๋ณด์ โ๊ท ์ผ๋โ์ธ๋ฐ์. ์ฝ๊ฒ ๋งํด, ๋ถ๋ฅ๊ฐ ์ฌ์ด ๊ธฐ์ค ์์๋๋ก ๋ถ๋ฅ๋ฅผ ์งํํ๋ค๋ ๊ฒ์
๋๋ค.
์ ๋ณด๊ท ์ผ๋์ ๋ํด์ ์์ธํ ์ค๋ช
ํด์ฃผ์ธ์!
์์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ํ์๊ณต 5๊ฐ, ๊ฒ์๊ณต 5๊ฐ๊ฐ ๋ค์ด์๋ ๋ฐ์ค A์ ํ์๊ณต 9๊ฐ ๊ฒ์๊ณต 1๊ฐ๊ฐ ๋ค์ด์๋ ๋ฐ์ค B๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค. ๊ฐ๋ น ๋์ ๊ฐ๋ฆฐ์ฑ ๋ฐ์ค B์์ ๊ณต์ ๋ฝ์์ ๋๋, ๋ฐ์ดํฐ์ ๋ํ ์ ๋ณด๊ฐ ๋ง์ด ์์ด๋ ํ์์๊ณต์ด๋ผ๊ณ ์ฝ๊ฒ ์์ธกํ ์ ์์ต๋๋ค. ํ์ง๋ง A์ ๊ฒฝ์ฐ์๋ ์์ธก์ ์ํด์ ๋ ๋ง์ ๋ฐ์ดํฐ์ ์กฐ๊ฑด์ด ํ์ํฉ๋๋ค. ์ด ๋, ์ฐ๋ฆฌ๋ ๋ฐ์ค A๋ฅผ ์ ๋ณด์ ๊ท ์ผ๋๊ฐ ๋ฎ๋ค๊ณ ๋งํ๊ณ ๋ฐ์ค B๋ฅผ ์ ๋ณด์ ๊ท ์ผ๋๊ฐ ๋๋ค๊ณ ๋งํฉ๋๋ค.
DecisionTree์ ์ฅ์ ์ ์๊ณ ๋ฆฌ์ฆ์ด ๋งค์ฐ ์ฝ๊ณ ์ง๊ด์ ์ด๋ผ๋ ๊ฒ์
๋๋ค. ๋ถ๋ฅ ๊ธฐ์ค์ด ๋งค์ฐ ๋ช
ํํ๊ธฐ์ ์๊ฐํ๋ฅผ ํตํด์ ์ด๋ค ์์๊ฐ ๋ถ๋ฅ์ ํฌ๊ฒ ์ํฅ์ ์ฃผ๋์ง ํ์
ํ ์ ์์ต๋๋ค. ๋ค๋ง, ๋ถ๋ฅ ๊ธฐ์ค์ด ์ฌ์ด๋งํผ ๊ณผ์ ํฉ ๋ฌธ์ ๋ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก max_depth๋ฅผ ๋น๋กฏํ ๋ค์ํ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ฅผ ์กฐ์ ํ์ฌ ๋ฐ์ดํฐ์ ๋ํด ๊ณผ๋ํ ํ์ต์ ํ์ง ๋ชปํ๋๋ก ๊ท์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฌ์ฅ๋ง๋น ๋ชจ๋ธ๋ง์์๋ max_depth(๋ถ๋ฅ๋ฅผ ์งํํ๋ ์ต๋ ์ธต์ ์ ํํด์ฃผ๋ ํ๋ผ๋ฏธํฐ)๋ฅผ ํ์ฉํ์ฌ ๊ณผ์ ํฉ์ ์ ์ดํ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ, ์ ํ๋๋ ์ฝ 75% ์ ๋๋ก ๋น๊ต์ ๋ฎ์ ์์น๋ฅผ ๋ณด์์ต๋๋ค.
์์ผ๋ก ์๊ฐํ ๋๋จธ์ง ๋ ๋ชจ๋ธ์ ๋ชจ๋ โ์์๋ธโ ๋ชจ๋ธ์ ์ํฉ๋๋ค. ์์๋ธ ๋ชจ๋ธ์ ์ฌ๋ฌ ๋ชจ๋ธ๋ค์ ํจ๊ป ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์์ฑํ๋ ๊ธฐ๋ฒ์ผ๋ก, ๊ฐ๋ณ ๋ชจ๋ธ์ ์ฅ์ ์ ์ด๋ฆฌ๊ณ ๋จ์ ์ ๋ณด์ํ๋ ๋ฐฉ์์ ์ฑ์ฉํ์ฌ ๋์ ์ ํ๋์ ์ฑ๋ฅ์ ์๋ํฉ๋๋ค.
์ฌ์ฅ๋ง๋น ์์ธก ๋ชจ๋ธ๋ง์์๋ Bagging ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ RandomForest ๋ชจ๋ธ๊ณผ Boosting ๊ธฐ๋ฒ์ ์ฌ์ฉํ XGBoost ๋ชจ๋ธ์ ์ฌ์ฉํ์ต๋๋ค.
RandomForest
์ฒซ ๋ฒ์งธ ์์๋ธ ๋ชจ๋ธ์ธ RandomForest ๋ชจ๋ธ์
๋๋ค. RandomForest๋ Bagging ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ๋ชจ๋ธ ์ค ํ๋์
๋๋ค
Bagging์ด ๋ฌด์์ ์๋ฏธํ๋ ๊ฑด๊ฐ์?
Bagging์ด๋, ์ฝ๊ฒ ๋งํด ์ฌ๋ฌ ๋ฒ ์ํ๋งํ์ฌ ํ์ต์ ์งํํ๋ค๋ ์๋ฏธ์
๋๋ค. N๊ฐ์ ์ํ์ N๋ฒ ๋ณต์์ถ์ถํ์ฌ ๋ฝ์๋ธ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ๊ฐ๋ณ ๋ชจ๋ธ์ ํ์ต ์ํค๊ณ , ๋์จ ๊ฐ๋ณ ์์ธก๊ฐ๋ค์ ํฉ์ณ ์ต์ข
์์ธก์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
๊ทธ๋ ๋ค๋ฉด, RandomForest๋ ์ด๋ค ์ข
๋ฅ์ ๊ฐ๋ณ ๋ชจ๋ธ์ ์ฌ์ฉํ ๊น์??
์ด๋ฆ์์ ๋์น์ฑ์
จ๊ฒ ์ง๋ง, ๋ฐ๋ก ์์์ ์ค๋ช
๋๋ฆฐ DecisionTree๋ฅผ ๊ฐ๋ณ ๋ชจ๋ธ๋ก ์ฌ์ฉํฉ๋๋ค.
RandomForest๋ ๋น ๋ฅธ ์๋, ๋์ ์์ธก ์ฑ๋ฅ์ผ๋ก ์ค์ ์์๋ ์์ฃผ ์ฌ์ฉ๋๋ ๋ชจ๋ธ์
๋๋ค. ํ์ง๋ง, ์ํ์ ๋๋ค์ผ๋ก ๊ณ์ ์ถ์ถํ๋ค๋ณด๋ฉด ๋น์ทํ ๋ฐ์ดํฐ๊ฐ ๋ง๋ค์ด์ง ํ๋ฅ ์ด ๋์์ง๋๋ค. ์ด๋ ๊ณผ์ ํฉ์ ์ด๋ํ ์ ์์ผ๋ฏ๋ก ์ํ๊ณผ feature๋ ๊ฐ์ด ์ํ๋งํ๊ฑฐ๋, ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ฅผ ํ๋ํ์ฌ ์ด์ ๋๋นํ๊ณค ํฉ๋๋ค.
๊ณผ์ ํฉ์ด ๋ฌด์์ธ๊ฐ์?
๊ณผ์ ํฉ์ด๋, ๋ชจ๋ธ์ด ํ์ต ๋ฐ์ดํฐ๋ฅผ ์ง๋์น๊ฒ ํ์ตํ์ ๋ ๋ฐ์ํฉ๋๋ค. ํ์ต ๋ฐ์ดํฐ์ ํน์ง์ ๊ณผ๋ํ๊ฒ ๋ฐ์ํ์ฌ ๋ชจ๋ธ์ ์์ฑํ๋ฉด, ํ์ต ๋ฐ์ดํฐ์๋ง ํนํ๋ ๋ชจ๋ธ์ด ์์ฑ๋์ด ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด์์ ๋ ๋ชจ๋ธ ์ฑ๋ฅ์ด ์ข์ง ์๊ฒ ๋์ฌ ์ ์์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด, ๋ชจ๋ธ์ ์์ฑํ๋ ๊ณผ์ ์์ ๋ค์ํ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ค์ ์กฐ์ ํ๊ณค ํฉ๋๋ค.
์ฌ์ฅ๋ง๋น ์์ธก์์๋ ๊ณผ์ ํฉ ์ ์ด๋ฅผ ์ํด ๋ค์ํ ํ๋ผ๋ฏธํฐ๋ค์ ํ๋ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ 83%์ ์ ํ๋๋ฅผ ๋ณด์์ต๋๋ค. DecisionTree์ ๋นํด ์๋นํ ๋์ ์ ํ๋๋ฅผ ๋ณด์ด๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
XGBoost
๋ง์ง๋ง ๋ชจ๋ธ์ธ XGBoost ๋ชจ๋ธ์
๋๋ค. Boosting ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ ๋ชจ๋ธ๋ก, ๋งค์ฐ ์ฐ์ํ ์ฑ๋ฅ๊ณผ ์๋ ๋๋ฌธ์ DACON, Kaggle๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๋ถ์ ๋ํ๋ค์์ ์ฃผ๋ชฉ๋ฐ๊ณ ์๋ ๋ชจ๋ธ์
๋๋ค. ๋น ๋ฅธ ์๋์ ์ข์ ์ฑ๋ฅ์ XGBoost๊ฐ ์ฌ์ฉํ๋ Boosting ๊ธฐ๋ฒ์์ ๊ธฐ์ธํฉ๋๋ค.
Boosting์ด ๋ญ๊ฐ์?
Boosting์ ์์ธก ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ฌ ๋ค์ ํ์ตํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ์ด๋ป๊ฒ ๊ฐ์ค์น ๊ฐ์ ์กฐ์ ํด์ฃผ๋๋์ ๋ฐ๋ผ ๋ชจ๋ธ ์๋์ ์ฑ๋ฅ์ด ๋ฌ๋ผ์ง๋๋ค.
๊ทธ๋ฌ๋ฉด XGBoost๋ ์ด๋ป๊ฒ ๊ฐ์ค์น ๊ฐ์ ์กฐ์ ํ๋์?
XGBoost๋ง์ ๊ฐ์ค์น ์กฐ์ ๋ฐฉ๋ฒ์ ์ดํดํ๊ธฐ ์ํด์๋, ๊ฒฝ์ฌ ํ๊ฐ๋ฒ(Gradient Descent)์ ๋จผ์ ์์์ผ ํฉ๋๋ค.
๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ๊ฐ๋จํ ๋งํด ๊ธฐ์ธ๊ธฐ๋ฅผ ํ์ฉํด ์ต์ ์ค์ฐจ์ ๋๋ฌํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๊ธฐ์ธ๊ธฐ๊ฐ ๋ฎ์ ์ชฝ์ผ๋ก ๊ณ์ ์ด๋์์ผ ์ต์ข
์ ์ผ๋ก ๊ทน๊ฐ(์ต์๊ฐ)์ ๋๋ฌํ ๋ ๋ฉ์ถ๊ฒ ๋ฉ๋๋ค. XGBoost๋ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ(Gradient Descent)๋ฅผ ํ์ฉํ์ฌ ๊ฐ์ค์น๋ฅผ ๊ตฌํ๊ณ ๊ณ์ฐ์ ํ์ฉํฉ๋๋ค. ์ด ๋, ๊ณ์ฐ ๊ฒฐ๊ณผ๊ฐ์ด ๋ ์ด์ ๋์์ง์ง ์๋๋ค๊ณ ํ๋จํ๋ฉด ๊ณ์ฐ์ ๋ฉ์ถ๋, ์กฐ๊ธฐ ๋ฉ์ถค ๊ธฐ๋ฅ๊น์ง ํ์ฌํ์ฌ ๊ณผ์ ํฉ ๋ฌธ์ ์ ๊ณ์ฐ ์๋ ๋ฌธ์ ๋ฅผ ๋ชจ๋ ๊ณ ๋ คํ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ํธ๋ฆฌ ๊ธฐ๋ฐ ๋ชจ๋ธ์ด๊ธฐ์ DecisionTree์ ๊ฐ์ด ํ์ต ๊ณผ์ ์ ์๊ฐํ ํ ์๋ ์๋ ๋ค์ฌ๋ค๋ฅํ ๋ชจ๋ธ์ด๋ผ๊ณ ํ ์ ์๊ฒ ์ต๋๋ค.
ํ์ดํผ ํ๋ผ๋ฏธํฐ ํ๋ ๊ฒฐ๊ณผ, ๊ฐ์ฅ ๋์ ์ ํ๋์ธ 89%๋ฅผ ๋ณด์์ต๋๋ค.
์ญ์ ๋ฏฟ๊ณ ์ฐ๋ XGBoost์
๋๋ค
Chapter 4. ๊ฒฐ๊ณผ ๋ถ์
๋๋์ดโฆ๋๊ทผ๋๊ทผ ์บ๊ธ ๋ฐ์ดํฐ ๋ถ์ ํํ ๋ฆฌ์ผ์ ๋ง์ง๋ง ๋จ๊ณ์ธ โ๊ฒฐ๊ณผ ๋ถ์ ์ฑํฐโ์ ๋๋ฌํ์ต๋๋ค!! ์ฌ๊ธฐ๊น์ง ์ค์๋๋ผ ์ ๋ง ์๊ณ ๋ง์ผ์
จ์ต๋๋ค. ๊ฒฐ๊ณผ ๋ถ์ ๋จ๊ณ๋ ์ด๋ฒ ํํ ๋ฆฌ์ผ์ ๊ฝ์ด๋ผ๊ณ ๋ ํ ์ ์๋๋ฐ์. ์ด ๋จ๊ณ๋ ์ฌ์ค ์๋ ค๋๋ฆด๊ฒ ์์ต๋๋ค!
์์ ์ง์ ํ์ธ์..! ์๋ ค๋๋ฆฌ๊ธฐ ์ซ์ ๊ฑด ์๋๊ณ โฆ์ง์ง ์๋ ค๋๋ฆด ๊ฒ ์์ต๋๋ค! ๊ฒฐ๊ณผ ๋ถ์ ๋จ๊ณ์์๋ ๋ถ์ ๋ชฉ์ ์ ๋ฐ๋ผ ๊ทธ ๋ฐฉ๋ฒ์ด ์ฒ์ฐจ๋ง๋ณ์
๋๋ค. EDA ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์๋ ์๊ณ , ๋ชจ๋ธ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ๋ถ์์ ์งํํ ์๋ ์์ต๋๋ค! ๊ทธ๋ ๊ธฐ์ ๊ฐ์์ ํ์์ ๋ง๊ฒ ๋ง๋๋ก ๋ฐ์ดํฐ ๋ถ์์ ์งํํ๋..๋
ผ๋ฆฌ์ ์ธ ๊ทผ๊ฑฐ์ ์ ํํ ๋ฐ์ดํฐ ๋ถ์์ ๊ธฐ๋ฐ์ผ๋ก ํด์ผ ๋๋ค๋ ๊ฒ์ ์์ผ์์ง๋ง ์์ผ๋ฉด ๋ฉ๋๋ค!
์์๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์์ ๊ทธ๋ฆผ์ XGBoost ๋ชจ๋ธ์์ ์ ๊ณตํ๋ ์๊ฐํ ๊ธฐ๋ฅ์ธ feature_importance์ธ๋ฐ์, ๊ฐ ํผ์ฒ๋ค์ด ๋ถ๋ฅ ๊ฒฐ๊ณผ์ ์ผ๋ง๋ ์ํฅ์ ๋ฏธ์ณค๋์ง ์๊ฐํํ์ฌ ์๋ ค์ฃผ๋ ๊ธฐ๋ฅ์
๋๋ค. ๋ถ๋ฅ ๊ฒฐ๊ณผ์ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์น ํผ์ฒ์ธ โcholโ๋ ์ฝ๋ ์คํ
๋กค ์์น๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฌ์ฅ๋ง๋น ๋ฐ๋ณ๋ฅ ๊ณผ ์ฝ๋ ์คํ
๋กค ์์น๊ฐ ์ฐ๊ด ์๋ค๋ ์ฌ์ค์ ๋ณดํธ์ ์ผ๋ก ์๋ ค์ ธ ์๋ ์ฌ์ค์
๋๋ค. ๋ํ ๋ ๋ฒ์งธ ํผ์ฒ์ธ โoldpeakโ๋ ์ํ ์ฉ์ด๋ผ์ ์ฌ๊ธฐ์ ์์ธํ ์ค๋ช
๋๋ฆฌ์ง ์๊ฒ ์ต๋๋ค๋ง, ์์ ๊ฒฐ๊ณผ๋ฅผ ํตํด ์ง์ํด๋ดค์ ๋ ์ฌ์ฅ๋ง๋น ๋ฐ๋ณ ์ํ๋๋ฅผ ์ธก์ ํ ๋ ํ์์ โoldpeakโ์ ์ค์ํ๊ฒ ๋ณด๋ ๊ฒ์ด ์ข๋ค๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํด๋ผ ์๋ ์๊ฒ ๋ค์!
III. Outro
ํํ ๋ฆฌ์ผ์ ๋ง์น๋ฉฐโฆ
ํํ ๋ฆฌ์ผ์ ๋๋ด์ ์๊ฐ์ด ์ด๋ ์ ๊ฐ์?! ๋จธ์ ๋ฌ๋ ๋ง์คํฐโฆ๊ทธ๋ ๊ฒ ์ด๋ ค์ ๋ณด์ด์ง ์์ง ์๋์??
๋๊ทผ๋๊ทผ ๋ฐ์ดํฐ ๋ถ์ ํํ ๋ฆฌ์ผ์ ๋จธ์ ๋ฌ๋ ์
๋ฌธ์ ๋ถ๋ค๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ์ฝ๋๋ฅผ ์ต์ํํ๊ณ , ๋ฐ์ดํฐ ๋ถ์ ๊ณผ์ ์ ๋ฐ์ ์ดํด๋ณด์ค ์ ์๋๋ก ์์ฑํ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ์ด ์ํฐํด์ ์๋ฒฝํ ์ํํ์
จ๋ค๋ฉด, ์บ๊ธ ๋ฐ์ดํฐ ๋ถ์์ ์ ๋ฐ์ ์ธ ํ๋ฆ์ ์๋ฒฝํ ํ์
ํ์ ๊ฒ์ด๋ผ๊ณ ํ ์ ์๊ฒ ๋ค์!
๊ธด ๊ธ ์ฝ์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค! ์ด์ ์ค๋ฌผ ๋ท, ์ค๋ฌผ ๋ ํ์ โ๋๊ทผ๋๊ทผ ์บ๊ธ ๋ฐ์ดํฐ ๋ถ์ ํํ ๋ฆฌ์ผโ์ ๋ง์น๊ฒ ์ต๋๋ค! ๋จธ์ ๋ฌ๋ ๋ง์คํฐ๊ฐ ๋๋ ๊ทธ๋ ๊น์งโฆ๋ชจ๋ ํ์ดํ
!!!!