Path: blob/master/site/ko/tutorials/structured_data/imbalanced_data.ipynb
25118 views
Copyright 2019 The TensorFlow Authors.
๋ถ๊ท ํ ๋ฐ์ดํฐ ๋ถ๋ฅ
์ด ํํ ๋ฆฌ์ผ์์๋ ํ ํด๋์ค์ ์์์ ์๊ฐ ๋ค๋ฅธ ํด๋์ค๋ณด๋ค ํจ์ฌ ๋ง์ ๋งค์ฐ ๋ถ๊ท ํ์ ์ธ ๋ฐ์ดํฐ์ธํธ๋ฅผ ๋ถ๋ฅํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค. Kaggle์์ ํธ์คํ ๋๋ ์ ์ฉ ์นด๋ ๋ถ์ ํ์ ํ์ง ๋ฐ์ดํฐ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด 284,807๊ฑด์ ๊ฑฐ๋์์ 492๊ฑด์ ๋ถ์ ๊ฑฐ๋๋ฅผ ํ์งํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. Keras๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ๋ฐ ํด๋์ค ๊ฐ์ค์น๋ฅผ ์ ์ํ์ฌ ๋ถ๊ท ํ ๋ฐ์ดํฐ์์ ๋ชจ๋ธ์ ํ์ต์์ผ ๋ณด๊ฒ ์ต๋๋ค.
์ด ํํ ๋ฆฌ์ผ์๋ ๋ค์์ ์ํํ๊ธฐ ์ํ ์์ ํ ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
Pandas๋ฅผ ์ฌ์ฉํ์ฌ CSV ํ์ผ ๋ก๋.
ํ์ต, ๊ฒ์ฆ ๋ฐ ํ ์คํธ์ธํธ ์์ฑ.
Keras๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์ ์ํ๊ณ ํ์ต(ํด๋์ค ๊ฐ์ค์น ์ค์ ํฌํจ)
๋ค์ํ ์ธก์ ๊ธฐ์ค(์ ๋ฐ๋ ๋ฐ ์ฌํ์จ ํฌํจ)์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ํ๊ฐ
๋ค์๊ณผ ๊ฐ์ ๋ถ๊ท ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ๊ธฐ์ ์ฌ์ฉ
ํด๋์ค ๊ฐ์ค์น
์ค๋ฒ์ํ๋ง
์ค์
๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ํ์
Kaggle ์ ์ฉ ์นด๋ ๋ถ์ ํ์ ๋ฐ์ดํฐ ์ธํธ
Pandas๋ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ ์ฒ๋ฆฌํ๋ ๋ฐ ์ ์ฉํ ์ฌ๋ฌ ์ ํธ๋ฆฌํฐ๊ฐ ํฌํจ๋ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. CSV๋ฅผ Pandas ๋ฐ์ดํฐ ํ๋ ์์ผ๋ก ๋ค์ด๋ก๋ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฐธ๊ณ : ์ด ๋ฐ์ดํฐ์ธํธ๋ ๋น ๋ฐ์ดํฐ ๋ง์ด๋ ๋ฐ ๋ถ์ ํ์ ๊ฐ์ง์ ๋ํ Worldline๊ณผ ULB(Universitรฉ Libre de Bruxelles) Machine Learning Group์ ์ฐ๊ตฌ ํ์ ์ ํตํด ์์ง ๋ฐ ๋ถ์๋์์ต๋๋ค. ๊ด๋ จ ์ฃผ์ ์ ๊ดํ ํ์ฌ ๋ฐ ๊ณผ๊ฑฐ ํ๋ก์ ํธ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ๊ฑฐ๋ DefeatFraud ํ๋ก์ ํธ ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค.
ํด๋์ค ๋ ์ด๋ธ ๋ถ๊ท ํ ๊ฒ์ฌ
๋ฐ์ดํฐ์ธํธ ๋ถ๊ท ํ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.:
์ด๋ฅผ ํตํด ์์ฑ ์ํ ์ผ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์ ๋ฆฌ, ๋ถํ ๋ฐ ์ ๊ทํ
์์ ๋ฐ์ดํฐ์๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋จผ์ Time
๋ฐ Amount
์ด์ด ๋งค์ฐ ๊ฐ๋ณ์ ์ด๋ฏ๋ก ์ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค. (์๋ฏธ๊ฐ ๋ช
ํํ์ง ์์ผ๋ฏ๋ก) Time
์ด์ ์ญ์ ํ๊ณ Amount
์ด์ ๋ก๊ทธ๋ฅผ ๊ฐ์ ธ์ ๋ฒ์๋ฅผ ์ค์
๋๋ค.
๋ฐ์ดํฐ์ธํธ๋ฅผ ํ์ต, ๊ฒ์ฆ ๋ฐ ํ ์คํธ ์ธํธ๋ก ๋ถํ ํฉ๋๋ค. ๊ฒ์ฆ ์ธํธ๋ ๋ชจ๋ธ ํผํ ์ค์ ์ฌ์ฉ๋์ด ์์ค ๋ฐ ๋ฉํธ๋ฆญ์ ํ๊ฐํ์ง๋ง ํด๋น ๋ชจ๋ธ์ ์ด ๋ฐ์ดํฐ์ ์ ํฉํ์ง ์์ต๋๋ค. ํ ์คํธ ์ธํธ๋ ํ๋ จ ๋จ๊ณ์์๋ ์ ํ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ๋ง์ง๋ง์๋ง ์ฌ์ฉ๋์ด ๋ชจ๋ธ์ด ์ ๋ฐ์ดํฐ๋ก ์ผ๋ฐํ๋๋ ์ ๋๋ฅผ ํ๊ฐํฉ๋๋ค. ์ด๋ ํ๋ จ ๋ฐ์ดํฐ๊ฐ ๋ถ์กฑํ์ฌ ๊ณผ๋์ ํฉ์ด ํฌ๊ฒ ๋ฌธ์ ๊ฐ ๋๋ ๋ถ๊ท ํ ๋ฐ์ดํฐ์ธํธ์์ ํนํ ์ค์ํฉ๋๋ค.
sklearn StandardScaler๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ํน์ฑ์ ์ ๊ทํํ๋ฉด ํ๊ท ์ 0์ผ๋ก, ํ์ค ํธ์ฐจ๋ 1๋ก ์ค์ ๋ฉ๋๋ค.
์ฐธ๊ณ : StandardScaler
๋ ๋ชจ๋ธ์ด ์ ํจ์ฑ ๊ฒ์ฌ ๋๋ ํ
์คํธ ์ธํธ๋ฅผ ์ฐธ๊ณ ํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด train_features
๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ์ ํฉํฉ๋๋ค.
์ฃผ์: ๋ชจ๋ธ์ ๋ฐฐํฌํ๋ ค๋ฉด ์ ์ฒ๋ฆฌ ๊ณ์ฐ์ ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ ์ด์ด๋ก ๊ตฌํํ๊ณ ๋ด๋ณด๋ด๊ธฐ ์ ์ ๋ชจ๋ธ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋๋ค.
๋ฐ์ดํฐ ๋ถํฌ ์ดํด๋ณด๊ธฐ
๋ค์์ผ๋ก ๋ช ๊ฐ์ง ํน์ฑ์ ๋ํ ์ ๋ฐ ์์ ์์ ๋ถํฌ๋ฅผ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ ์ค์ค๋ก ๊ฒํ ํ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด์ ๊ฐ์ ๋ถํฌ๊ฐ ํฉ๋ฆฌ์ ์ธ๊ฐ?
์, ์ด๋ฏธ ์ ๋ ฅ์ ์ ๊ทํํ์ผ๋ฉฐ ๋๋ถ๋ถ
+/- 2
๋ฒ์์ ์ง์ค๋์ด ์์ต๋๋ค.
๋ถํฌ ๊ฐ ์ฐจ์ด๋ฅผ ์ ์ ์์ต๋๊น?
์, ์์ ์์๋ ๊ทน๋จ์ ๊ฐ์ ๋น์จ์ด ํจ์ฌ ๋์ต๋๋ค.
๋ชจ๋ธ ๋ฐ ๋ฉํธ๋ฆญ ์ ์
์กฐ๋ฐํ๊ฒ ์ฐ๊ฒฐ๋ ์จ๊ฒจ์ง ๋ ์ด์ด, ๊ณผ๋์ ํฉ์ ์ค์ด๊ธฐ ์ํ ๋๋กญ์์ ๋ ์ด์ด, ๊ฑฐ๋ ์ฌ๊ธฐ ๊ฐ๋ฅ์ฑ์ ๋ฐํํ๋ ์๊ทธ๋ชจ์ด๋ ์ถ๋ ฅ ๋ ์ด์ด๋ก ๊ฐ๋จํ ์ ๊ฒฝ๋ง์ ์์ฑํ๋ ํจ์๋ฅผ ์ ์ํฉ๋๋ค.
์ ์ฉํ ๋ฉํธ๋ฆญ ์ดํดํ๊ธฐ
์์์ ์ ์ํ ๋ช ๊ฐ์ง ๋ฉํธ๋ฆญ์ ๋ชจ๋ธ์ ํตํด ๊ณ์ฐํ ์ ์์ผ๋ฉฐ ์ฑ๋ฅ์ ํ๊ฐํ ๋ ์ ์ฉํฉ๋๋ค.
ํ์ ์์ฑ๊ณผ ํ์ ์์ฑ์ ์๋ชป ๋ถ๋ฅ๋ ์ํ์ ๋๋ค.
์ค์ ์์ฑ๊ณผ ์ค์ ์์ฑ์ ์ฌ๋ฐ๋ก ๋ถ๋ฅ๋ ์ํ์ ๋๋ค.
์ ํ๋๋ ์ฌ๋ฐ๋ก ๋ถ๋ฅ๋ ์์ ๋น์จ์ ๋๋ค.
์ ๋ฐ๋๋ ์ฌ๋ฐ๋ฅด๊ฒ ๋ถ๋ฅ๋ ์์ธก ์์ฑ์ ๋น์จ์ ๋๋ค.
์ฌํ์จ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ถ๋ฅ๋ ์ค์ ์์ฑ์ ๋น์จ์ ๋๋ค.
AUC๋ ROC-AUC(Area Under the Curve of a Receiver Operating Characteristic) ๊ณก์ ์ ์๋ฏธํฉ๋๋ค. ์ด ๋ฉํธ๋ฆญ์ ๋ถ๋ฅ์๊ฐ ์์์ ์์ฑ ์ํ ์์๋ฅผ ์์์ ์์ฑ ์ํ ์์๋ณด๋ค ๋๊ฒ ์ง์ ํ ํ๋ฅ ๊ณผ ๊ฐ์ต๋๋ค.
AUPRC๋ PR curve AUC๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด ๋ฉํธ๋ฆญ์ ๋ค์ํ ํ๋ฅ ์๊ณ๊ฐ์ ๋ํ ์ ๋ฐ๋-์ฌํ์จ ์์ ๊ณ์ฐํฉ๋๋ค.
์ฐธ๊ณ : ์ ํ๋๋ ์ด ์์ ์ ์ ์ฉํ ๋ฉํธ๋ฆญ์ด ์๋๋๋ค. ํญ์ False๋ฅผ ์์ธกํด์ผ ์ด ์์ ์์ 99.8% ์ด์์ ์ ํ๋๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋ ์ฝ์ด๋ณด๊ธฐ:
๊ธฐ์ค ๋ชจ๋ธ
๋ชจ๋ธ ๊ตฌ์ถ
์ด์ ์์ ์ ์ํ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ง๋ค๊ณ ํ์ตํด ๋ณด๊ฒ ์ต๋๋ค. ๋ชจ๋ธ์ ๊ธฐ๋ณธ ๋ฐฐ์น ํฌ๊ธฐ์ธ 2048๋ณด๋ค ํฐ ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ฐ ๋ฐฐ์น์์ ์์ฑ ์ํ์ ์ผ๋ถ ํฌํจ์์ผ ์ ์ ํ ๊ธฐํ๋ฅผ ์ป๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ฐฐ์น ํฌ๊ธฐ๊ฐ ๋๋ฌด ์์ผ๋ฉด ๋ถ์ ๊ฑฐ๋ ์์๋ฅผ ์ ๋๋ก ํ์ตํ ์ ์์ต๋๋ค.
์ฐธ๊ณ : ์ด ๋ชจ๋ธ์ ํด๋์ค์ ๋ถ๊ท ํ์ ์ ๋ค๋ฃจ์ง ๋ชปํฉ๋๋ค. ์ด๋ฅผ ์ด ํํ ๋ฆฌ์ผ์ ๋ท๋ถ๋ถ์์ ๊ฐ์ ํ๊ฒ ๋ ๊ฒ๋๋ค.
๋ชจ๋ธ์ ์คํํ์ฌ ํ ์คํธํด๋ณด๊ฒ ์ต๋๋ค.
์ ํ์ฌํญ: ์ด๊ธฐ ๋ฐ์ด์ด์ค๋ฅผ ์ฌ๋ฐ๋ก ์ค์ ํฉ๋๋ค.
์ด์ ๊ฐ์ ์ด๊ธฐ ์ถ์ธก์ ์ ์ ํ์ง ์์ต๋๋ค. ๋ฐ์ดํฐ์ธํธ๊ฐ ๋ถ๊ท ํํ๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋๊น์. ์ถ๋ ฅ ๋ ์ด์ด์ ๋ฐ์ด์ด์ค๋ฅผ ์ค์ ํ์ฌ ํด๋น ๋ฐ์ดํฐ์ธํธ๋ฅผ ๋ฐ์ํ๋ฉด(์ฐธ์กฐ: ์ ๊ฒฝ๋ง ํ๋ จ ๋ฐฉ๋ฒ: "init well") ์ด๊ธฐ ์๋ ด์ ์ ์ฉํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ๋ฐ์ด์ด์ค ์ด๊ธฐํ๋ฅผ ์ฌ์ฉํ๋ฉด ์์ค์ ์ฝ math.log(2) = 0.69314
์ฌ๋ฐ๋ฅธ ๋ฐ์ด์ด์ค ์ค์ ์ ๋ค์์์ ๊ฐ๋ฅํฉ๋๋ค.
์ด๋ฅผ ์ด๊ธฐ ๋ฐ์ด์ด์ค๋ก ์ค์ ํ๋ฉด ๋ชจ๋ธ์ ํจ์ฌ ๋ ํฉ๋ฆฌ์ ์ผ๋ก ์ด๊ธฐ ์ถ์ธก์ ํ ์ ์์ต๋๋ค.
pos/total = 0.0018
์ ๊ฐ๊น์ธ ๊ฒ์
๋๋ค.
์ด ์ด๊ธฐํ๋ฅผ ํตํด์ ์ด๊ธฐ ์์ค์ ๋๋ต ๋ค์๊ณผ ๊ฐ์์ผํฉ๋๋ค.:
์ด ์ด๊ธฐ ์์ค์ ๋จ์ํ ์ํ์ ์ด๊ธฐํ์์ ๋ฐ์ํ์ ๋ ๋ณด๋ค ์ฝ 50๋ฐฐ ์ ์ต๋๋ค.
์ด๋ฐ ์์ผ๋ก ๋ชจ๋ธ์ ์ฒ์ ๋ช epoch๋ฅผ ์ฐ๋ฉฐ ์์ฑ ์์๊ฐ ๊ฑฐ์ ์๋ค๋ ๊ฒ์ ํ์ตํ ํ์๋ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ์ต์ ํ๋ฉด์ ์์ค๋ ํ๋กฏ์ ๋ ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
์ด๊ธฐ ๊ฐ์ค์น ์ฒดํฌ ํฌ์ธํธ
๋ค์ํ ํ์ต ๊ณผ์ ์ ๋น๊ตํ๋ ค๋ฉด ์ด ์ด๊ธฐ ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ์ฒดํฌํฌ์ธํธ ํ์ผ์ ๋ณด๊ดํ๊ณ ํ์ต ์ ์ ๊ฐ ๋ชจ๋ธ์ ๋ก๋ํฉ๋๋ค.
๋ฐ์ด์ด์ค ์์ ์ด ๋์์ด ๋๋์ง ํ์ธํ๊ธฐ
๊ณ์ ์งํํ๊ธฐ ์ ์ ์กฐ์ฌ์ค๋ฌ์ด ๋ฐ์ด์ด์ค ์ด๊ธฐํ๊ฐ ์ค์ ๋ก ๋์์ด ๋์๋์ง ๋น ๋ฅด๊ฒ ํ์ธํ์ญ์์ค
์ ๊ตํ ์ด๊ธฐํ๋ฅผ ํ ๋ชจ๋ธ๊ณผ ํ์ง ์์ ๋ชจ๋ธ์ 20 epoch ํ์ต์ํค๊ณ ์์ค์ ๋น๊ตํฉ๋๋ค.
์์ ๊ทธ๋ฆผ์์ ๋ช ํํ ์ ์ ์๋ฏ์ด, ๊ฒ์ฆ ์์ค ์ธก๋ฉด์์ ์ด์ ๊ฐ์ ์ ๊ตํ ์ด๊ธฐํ์๋ ๋ถ๋ช ํ ์ด์ ์ด ์์ต๋๋ค.
๋ชจ๋ธ ํ์ต
ํ์ต ์ด๋ ฅ ํ์ธ
์ด ์น์ ์์๋ ํ๋ จ ๋ฐ ๊ฒ์ฆ ์ธํธ์์ ๋ชจ๋ธ์ ์ ํ๋ ๋ฐ ์์ค์ ๋ํ ํ๋กฏ์ ์์ฑํฉ๋๋ค. ์ด๋ ๊ณผ๋์ ํฉ ํ์ธ์ ์ ์ฉํ๋ฉฐ ๊ณผ๋์ ํฉ ๋ฐ ๊ณผ์์ ํฉ ํํ ๋ฆฌ์ผ์์ ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค.
๋ํ, ์์์ ๋ง๋ ๋ชจ๋ ๋ฉํธ๋ฆญ์ ๋ํด ๋ค์๊ณผ ๊ฐ์ ํ๋กฏ์ ์์ฑํ ์ ์์ต๋๋ค. ๊ฑฐ์ง ์์ฑ์ด ์์์ ํฌํจ๋์ด ์์ต๋๋ค.
์ฐธ๊ณ : ๊ฒ์ฆ ๊ณก์ ์ ์ผ๋ฐ์ ์ผ๋ก ํ๋ จ ๊ณก์ ๋ณด๋ค ์ฑ๋ฅ์ด ์ข์ต๋๋ค. ์ด๋ ์ฃผ๋ก ๋ชจ๋ธ์ ํ๊ฐํ ๋ drop out ๋ ์ด์ด๊ฐ ํ์ฑํ ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค.
๋ฉํธ๋ฆญ ํ๊ฐ
ํผ๋ ํ๋ ฌ์ ์ฌ์ฉํ์ฌ ์ค์ ๋ ์ด๋ธ๊ณผ ์์ธก ๋ ์ด๋ธ์ ์์ฝํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ X์ถ์ ์์ธก ๋ ์ด๋ธ์ด๊ณ Y์ถ์ ์ค์ ๋ ์ด๋ธ์ ๋๋ค.
ํ ์คํธ ๋ฐ์ดํฐ์ธํธ์์ ๋ชจ๋ธ์ ํ๊ฐํ๊ณ ์์์ ์์ฑํ ๋ฉํธ๋ฆญ ๊ฒฐ๊ณผ๋ฅผ ํ์ํฉ๋๋ค.
๋ง์ฝ ๋ชจ๋ธ์ด ๋ชจ๋ ์๋ฒฝํ๊ฒ ์์ธกํ๋ค๋ฉด ๋๊ฐํ๋ ฌ์ด ๋์ด ์์ธก ์ค๋ฅ๋ฅผ ๋ณด์ฌ์ฃผ๋ฉฐ ๋๊ฐ์ ๊ฐ์ 0์ด ๋ฉ๋๋ค. ์ด์ ๊ฐ์ ๊ฒฝ์ฐ, ๋งคํธ๋ฆญ์ ๊ฑฐ์ง ์์ฑ์ด ์๋์ ์ผ๋ก ๋ฎ์์ ํ์ธํ ์ ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด ํ๋๊ทธ๊ฐ ์๋ชป ์ง์ ๋ ํฉ๋ฒ์ ์ธ ๊ฑฐ๋๊ฐ ์๋์ ์ผ๋ก ์ ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฑฐ์ง ์์ฑ ์๋ฅผ ๋๋ฆฌ๋๋ผ๋ ๊ฑฐ์ง ์์ฑ์ ๋ ๋ฎ์ถ๊ณ ์ถ์ ์ ์์ต๋๋ค. ๊ฑฐ์ง ์์ฑ์ ๋ถ์ ๊ฑฐ๋๊ฐ ๋ฐ์ํ ์ ์์ง๋ง, ๊ฑฐ์ง ์์ฑ์ ๊ณ ๊ฐ์๊ฒ ์ด๋ฉ์ผ์ ๋ณด๋ด ์นด๋ ํ๋ ํ์ธ์ ์์ฒญํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ง ์์ฑ์ ๋ฎ์ถ๋ ๊ฒ์ด ๋ ๋ฐ๋์งํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
ROC ํ๋กํ
์ด์ ROC์ ํ๋กํ ํ์ญ์์ค. ์ด ๊ทธ๋ํ๋ ์ถ๋ ฅ ์๊ณ๊ฐ์ ์กฐ์ ํ๊ธฐ๋ง ํด๋ ๋ชจ๋ธ์ด ๋๋ฌํ ์ ์๋ ์ฑ๋ฅ ๋ฒ์๋ฅผ ํ๋์ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ์ ์ฉํฉ๋๋ค.
AUPRC ํ๋กํ
์ด์ AUPRC๋ฅผ ํ๋กํ ํ๊ฒ ์ต๋๋ค. ๋ณด๊ฐ๋ ์ ๋ฐ๋-์ฌํ์จ ๊ณก์ ์๋ ์์ญ์ผ๋ก, ๋ถ๋ฅ ์๊ณ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ ๋ํ (์ฌํ์จ, ์ ๋ฐ๋) ์ ์ ํ๋กํ ํ์ฌ ์ป์ต๋๋ค. ๊ณ์ฐ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ PR AUC๋ ๋ชจ๋ธ์ ํ๊ท ์ ๋ฐ๋์ ๋์ผํ ์ ์์ต๋๋ค.
์ ๋ฐ๋๊ฐ ๋น๊ต์ ๋์ ๊ฒ ๊ฐ์ง๋ง ์ฌํ์จ๊ณผ ROC ๊ณก์ (AUC) ์๋ ๋ฉด์ ์ด ๋์ง ์์ต๋๋ค. ๋ถ๋ฅ์๊ฐ ์ ๋ฐ๋์ ์ฌํ์จ ๋ชจ๋๋ฅผ ์ต๋ํํ๋ ค๊ณ ํ๋ฉด ์ข ์ข ์ด๋ ค์์ ์ง๋ฉดํ๋๋ฐ, ๋ถ๊ท ํ ๋ฐ์ดํฐ์ธํธ๋ก ์์ ํ ๋ ํนํ ๊ทธ๋ ์ต๋๋ค. ๊ด์ฌ์๋ ๋ฌธ์ ์ ๋งฅ๋ฝ์์ ๋ค๋ฅธ ์ ํ์ ์ค๋ฅ ๋น์ฉ์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด ์์์์ ๊ฑฐ์ง ์์ฑ(๋ถ์ ๊ฑฐ๋๋ฅผ ๋์น ๊ฒฝ์ฐ)์ ๊ธ์ ์ ๋น์ฉ์ด ๋ค ์ ์์ง๋ง , ๊ฑฐ์ง ์์ฑ(๊ฑฐ๋๊ฐ ์ฌ๊ธฐ ํ์๋ก ์๋ชป ํ์๋จ)์ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ๊ฐ์์ํฌ ์ ์์ต๋๋ค.
ํด๋์ค ๊ฐ์ค์น
ํด๋์ค ๊ฐ์ค์น ๊ณ์ฐ
๋ชฉํ๋ ๋ถ์ ๊ฑฐ๋๋ฅผ ์๋ณํ๋ ๊ฒ์ด์ง๋ง, ์์ ํ ์ ์๋ ์์ฑ ์ํ์ด ๋ง์ง ์์ง ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ฅ์๋ ์ด์ฉ ๊ฐ๋ฅํ ๋ช ๊ฐ์ง ์์ ๊ฐ์ค์น๋ฅผ ๋๊ณ ์ ํ ๊ฒ์ ๋๋ค. ๋งค๊ฐ ๋ณ์๋ฅผ ํตํด ๊ฐ ํด๋์ค์ ๋ํ Keras ๊ฐ์ค์น๋ฅผ ์ ๋ฌํ๋ค๋ฉด ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ๋ชจ๋ธ์ ๋ ์ ์ ํด๋์ค ์์์ "๋ ๋ง์ ๊ด์ฌ์ ๊ธฐ์ธ์ผ" ์ ์์ต๋๋ค.
ํด๋์ค ๊ฐ์ค์น๋ก ๋ชจ๋ธ ๊ต์ก
์ด์ ํด๋น ๋ชจ๋ธ์ด ์์ธก์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ํ์ธํ๊ธฐ ์ํ์ฌ ํด๋์ค ๊ฐ์ค์น๋ก ๋ชจ๋ธ์ ์ฌ ๊ต์กํ๊ณ ํ๊ฐํด ๋ณด์ญ์์ค.
์ฐธ๊ณ : class_weights
๋ฅผ ์ฌ์ฉํ๋ฉด ์์ค ๋ฒ์๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด๋ ์ตํฐ๋ง์ด์ ์ ๋ฐ๋ผ ํ๋ จ์ ์์ ์ฑ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. tf.keras.optimizers.SGD
์ ๊ฐ์ด ๋จ๊ณ ํฌ๊ธฐ๊ฐ ๊ทธ๋๋์ธํธ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ์ตํฐ๋ง์ด์ ๋ ์คํจํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ฌ์ฉ๋ ์ตํฐ๋ง์ด์ ์ธ tf.keras.optimizers.Adam
์ ์ค์ผ์ผ๋ง ๋ณ๊ฒฝ์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ๋ํ, ๊ฐ์ค์น๋ก ์ธํด ์ด ์์ค์ ๋ ๋ชจ๋ธ ๊ฐ์ ๋น๊ตํ ์ ์์ต๋๋ค.
ํ์ต ์ด๋ ฅ ์กฐํ
๋งคํธ๋ฆญ ํ๊ฐ
์ฌ๊ธฐ์ ํด๋์ค ๊ฐ์ค์น๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฑฐ์ง ์์ฑ์ด ๋ ๋ง๊ธฐ ๋๋ฌธ์ ์ ํ๋์ ์ ๋ฐ๋๋ ๋ ๋ฎ์ง๋ง, ๋ฐ๋๋ก ์ฐธ ์์ฑ์ด ๋ง์ผ๋ฏ๋ก ์ฌํ์จ๊ณผ AUC๋ ๋ ๋๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ ํ๋๊ฐ ๋ฎ์์๋ ๋ถ๊ตฌํ๊ณ ์ด ๋ชจ๋ธ์ ์ฌํ์จ์ด ๋ ๋์ต๋๋ค(๋ ๋ง์ ๋ถ์ ๊ฑฐ๋ ์๋ณ). ๋ฌผ๋ก ๋ ๊ฐ์ง ์ ํ์ ์ค๋ฅ ๋ชจ๋ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค(๋ง์ ํฉ๋ฒ ๊ฑฐ๋๋ฅผ ์ฌ๊ธฐ๋ก ํ์ํ์ฌ ์ฌ์ฉ์๋ฅผ ๋ฒ๊ฑฐ๋กญ๊ฒ ํ๋ ๊ฒ์ ๋ฐ๋์งํ์ง ์์ผ๋ฏ๋ก). ๋ฐ๋ผ์, ์ฌ๋ฌ ์ ํ ์ค๋ฅ ๊ฐ ์ ์ถฉ ์ฌํญ์ ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
ROC ํ๋กํ
AUPRC ํ๋กํ
์ค๋ฒ์ํ๋ง
์์ ๊ณ๊ธ ๊ณผ๋ ํ๋ณธ
๊ด๋ จ๋ ์ ๊ทผ ๋ฐฉ์์ ์์ ํด๋์ค๋ฅผ ์ค๋ฒ ์ํ๋ง ํ์ฌ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ฆฌ ์ํ๋ง ํ๋ ๊ฒ์ ๋๋ค.
NumPy ์ฌ์ฉ
๊ธ์ ์ ์ธ ์์์ ์ ์ ํ ์์ ์์ ์ธ๋ฑ์ค๋ฅผ ์ ํํ์ฌ ๋ฐ์ดํฐ ์ธํธ์ ๊ท ํ์ ์๋์ผ๋ก ์กฐ์ ํ ์ ์์ต๋๋ค.:
tf.data
์ฌ์ฉ
tf.data
๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ท ํ์๋ ์๋ฅผ ์์ฑํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ positive
์ negative
๋ฐ์ดํฐ์ธํธ๋ก ์์ํ์ฌ ์ด๋ค์ ๋ณํฉํ๋ ๊ฒ์
๋๋ค. tf.data guide์์ ๋ ๋ง์ ์๋ฅผ ์ฐธ์กฐํ์๊ธฐ ๋ฐ๋๋๋ค.
๊ฐ ๋ฐ์ดํฐ ์ธํธ๋ (feature, label)
์์ผ๋ก ๋์ด ์์ต๋๋ค.
tf.data.Dataset.sample_from_datasets
๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋์ ๋ณํฉํฉ๋๋ค.
์ด ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด epoch๋น ์คํ ์๊ฐ ํ์ํฉ๋๋ค.
์ด ๊ฒฝ์ฐ "epoch"์ ์ ์๋ ๋ช ํํ์ง ์์ต๋๋ค. ๊ฐ ์์ฑ ์์๋ฅผ ํ ๋ฒ ๋ณผ ๋ ํ์ํ ๋ฐฐ์น ์๋ผ๊ณ ํด๋ด ์๋ค.
์ค๋ฒ ์ํ๋ง ๋ ๋ฐ์ดํฐ์ ๋ํ ํ์ต
์ด์ ํด๋์ค ๊ฐ์ค์น๋ฅผ ์ฌ์ฉํ๋ ๋์ ๋ฆฌ ์ํ๋ง ๋ ๋ฐ์ดํฐ ์ธํธ๋ก ๋ชจ๋ธ์ ํ์ตํ์ฌ ์ด๋ฌํ ๋ฐฉ๋ฒ์ด ์ด๋ป๊ฒ ๋น๊ต๋๋์ง ํ์ธํ์ญ์์ค.
์ฐธ๊ณ : ๊ธ์ ์ ์ธ ์๋ฅผ ๋ณต์ ํ์ฌ ๋ฐ์ดํฐ๊ฐ ๊ท ํ์ ์ด๋ฃจ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฐ์ดํฐ ์ธํธ ํฌ๊ธฐ๊ฐ ๋ ํฌ๊ณ ๊ฐ ์ธ๋๊ฐ ๋ ๋ง์ ํ์ต ๋จ๊ณ๋ฅผ ์ํด ์คํ๋ฉ๋๋ค.
๋ง์ฝ ํ๋ จ ํ๋ก์ธ์ค๊ฐ ๊ฐ ๊ธฐ์ธ๊ธฐ ์ ๋ฐ์ดํธ์์ ์ ์ฒด ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๊ณ ๋ คํ๋ ๊ฒฝ์ฐ, ์ด ์ค๋ฒ ์ํ๋ง์ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋์ค ๊ฐ์ค์น์ ๋์ผํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฌ๊ธฐ์์์ ๊ฐ์ด, ๋ชจ๋ธ์ ๋ฐฐ์น๋ณ๋ก ํ๋ จํ ๋ ์ค๋ฒ์ํ๋ง๋ ๋ฐ์ดํฐ๋ ๋ ๋ถ๋๋ฌ์ด ๊ทธ๋๋์ธํธ ์ ํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ ์์ฑ ์์๊ฐ ํ๋์ ๋ฐฐ์น์์ ํฐ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง๊ธฐ๋ณด๋ค, ๋งค๋ฒ ์ฌ๋ฌ ๋ฐฐ์น์์ ์์ ๊ฐ์ค์น๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด ๋ถ๋๋ฌ์ด ๊ธฐ์ธ๊ธฐ ์ ํธ๋ ๋ชจ๋ธ์ ๋ ์ฝ๊ฒ ํ๋ จ ํ ์ ์์ต๋๋ค.
๊ต์ก ์ด๋ ฅ ํ์ธ
ํ์ต ๋ฐ์ดํฐ์ ๋ถํฌ๊ฐ ๊ฒ์ฆ ๋ฐ ํ ์คํธ ๋ฐ์ดํฐ์ ์์ ํ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์ธก์ ํญ๋ชฉ์ ๋ถํฌ๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค.
์ฌ๊ต์ก
๊ท ํ ์กํ ๋ฐ์ดํฐ์ ๋ํ ํ๋ จ์ด ๋ ์ฝ๊ธฐ ๋๋ฌธ์ ์์ ํ๋ จ ์ ์ฐจ๊ฐ ๋น ๋ฅด๊ฒ ๊ณผ์ ํฉ ๋ ์ ์์ต๋๋ค.
epoch๋ฅผ ๋๋์ด tf.keras.callbacks.EarlyStopping
๋ฅผ ๋ณด๋ค ์ธ๋ฐํ๊ฒ ์ ์ดํ์ฌ ํ๋ จ ์ค๋จ ์์ ์ ์ ํฉ๋๋ค.
ํ๋ จ ์ด๋ ฅ ์ฌํ์ธ
๋ฉํธ๋ฆญ ํ๊ฐ
ROC ํ๋กํ
AUPRC ํ๋กํ
ํํ ๋ฆฌ์ผ์ ์ด ๋ฌธ์ ์ ์ ์ฉ
๋ถ๊ท ํ ๋ฐ์ดํฐ ๋ถ๋ฅ๋ ํ์ต ํ ์ํ์ด ๋๋ฌด ์ ๊ธฐ ๋๋ฌธ์ ๋ณธ์ง์ ์ผ๋ก ์ด๋ ค์ด ์์ ์ ๋๋ค. ํญ์ ๋ฐ์ดํฐ๋ถํฐ ์์ํ์ฌ ๊ฐ๋ฅํ ํ ๋ง์ ์ํ์ ์์งํ๊ณ ๋ชจ๋ธ์ด ์์ ํด๋์ค๋ฅผ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ์ด๋ค ๊ธฐ๋ฅ์ด ๊ด๋ จ ๋ ์ ์๋์ง์ ๋ํด ์ค์ง์ ์ธ ์๊ฐ์ ํ๋๋ก ์ต์ ์ ๋คํด์ผ ํฉ๋๋ค. ์ด๋ค ์์ ์์ ๋ชจ๋ธ์ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ํ๊ณ ์ฐ์ถํ๋๋ฐ ์ด๋ ค์์ ๊ฒช์ ์ ์์ผ๋ฏ๋ก ๋ฌธ์ ์ ์ปจํ ์คํธ์ ๋ค์ํ ์ ํ์ ์ค๋ฅ ๊ฐ์ ๊ท ํ์ ์ผ๋์ ๋๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.