- '๋ท์ฟต', '๊ณต๊ฐ' ,'ใทใ
' ๋ฑ์ผ๋ก ๋ถ๋ฆฌ์ฐ๋ ๋ณดํ ์ฌ๊ธฐ, ์ง๋ 2019๋
๊ธฐ์ค ํผํด์ก์ 8090์ต์(์ถ์ฒ:๊ธ์ต๊ฐ๋
์)์ ๋ฌํฉ๋๋ค.
๋ ํฐ์นด ์ฌ๊ณ ๋ ๋ ํฐ์นด ์ ์ฒด์ ๋ณดํ๋ฃ๋ง ์ฌ๋ผ๊ฐ๊ณ , ๊ฐํด์์ ์์ฐจ ๋ณดํ๋ฃ์๋ ์๋ฌด๋ฐ ํผํด๋ฅผ ์ฃผ์ง์๋ ์ ๋๋ฌธ์ ๋ ํฐ์นด๊ฐ ๋ฒํ์ ์๋จ์ด ๋๊ณ ์์ต๋๋ค.
๋ณธ ํ์ 13000์ฌ๊ฐ์ ์ฌ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ์ฌ ๋ณดํ ์ฌ๊ธฐ ์ฌ๊ณ ๋ฅผ ์์ธกํ์ต๋๋ค. - ํด๋น ๋ฐ์ดํฐ ์ ์ ๋ ํด๋์ค๊ฐ 1:379 (fraud-34:normal-12879)์ ๋น์จ๋ก ์์ง๋ ๋ฐ์ดํฐ๋ก, ๋ถ๊ท ํ์ ๋ฐ์ดํฐ ์ ์ ๋๋ค.
- ์์ธํ ๋๋ฉ์ธ ์กฐ์ฌ ๋ฐ EDA๋ฅผ ํตํ feature engineering, ํฉ๋ฆฌ์ ์ธ feature selection, fraud ๋ฐ์ดํฐ ์ ์ ์ ํฉํ Sampling ์๊ณ ๋ฆฌ์ฆ ๊ตฌ์ถ, ์ต์ ์ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ ํ๋, fraud ๋ฐ์ดํฐ ํ์ต ์ฌ๋ก ๋ถ์์ ์ง์คํ์ฌ ๊ณผ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
Fraud Detection, Re-Sampling, Imbalanced Data, Clustering
- [๊น๊ฒฝํ]
- EDA / feature select ์๊ณ ๋ฆฌ์ฆ ๊ตฌ์ถ / train model & tuning : prediction 2 / ๋ฐํ
- https://github.com/darenkim
- [์๊ธฐํ]
- EDA / ๋๋ฉ์ธ research / train model & tuning : prediction 1 / ๋ฐํ
- https://github.com/seogihyun
- [์ฅํ์]
- EDA / fraud ๋ฐ์ดํฐ ํ์ต ์ฌ๋ก ๋ถ์ / train model & tuning : prediction 3 / ๋ฐํ ๋ฐ Readme ์์ฑ
- https://github.com/hannmnnah.
- [์ ํ์] : Advisor | FastCampus project manager
- [์กฐ์ฉํ] : Advisor | FastCampus project manager
- ๋ฌธ์ ์ ์
- ๊ตฌ์กฐ
- Kick Insight
- ๋ชจ๋ธ ์ฑ๋ฅ ๊ฒฐ๊ณผ ๋ถ์
- ๋ฐฐ์ด ์
- ์ฐธ๊ณ ๋ฌธํ
-
๋ ํฐ์นด ๋ณดํ์ฌ๊ธฐ ํผํด๊ธ์ก 8,090์ต์?
๋ ํฐ์นด ๋ณดํ์ฌ๊ธฐ๋ ๋ณดํ๊ธ, ํฉ์๊ธ์ ์ป์ ๋ชฉ์ ์ผ๋ก ๋ ํฐ์นด๋ฅผ ์ด์ฉํ์ฌ ๊ณ ์ ์ฌ๊ณ ๋ฅผ ๋ด๋ ํ์์ ๋๋ค. 2016๋ ๋ถํฐ ๊พธ์คํ 8๋ง์ฌ๋ช ์ฉ ์ ๋ฐ๋๋ค๊ฐ , ์ง๋ 2019๋ ์๋ 9.3๋ง๋ช ์ผ๋ก ์ญ๋ ์ต๊ณ ์น ๊ธฐ๋ก(์ถ์ฒ:๊ธ์ต๊ฐ๋ ์, ๋ณดํ ์ฌ๊ธฐ ์ ์ฒด ๊ธฐ์ค)ํ์์ต๋๋ค. ์ ๋ฐ ๊ธ์ก์ 2019๋ ๊ธฐ์ค 8,090์ต์์ผ๋ก ํผํด์ก์ด ์๋นํฉ๋๋ค.
๋ณดํ ์ฌ๊ธฐ๋ฅผ ์ ๋ฐํ์ง ๋ชปํ์ฌ ํด๋น ์ฌ๊ธฐ๊ฑด๋ง๋ค ๋ณดํ๋ฃ๊ฐ ์ง๊ธ๋ ์ ์ ์ฒด ๋ณดํ ๊ฐ์ ์์ ๋ณดํ๋ฃ๊ฐ ์ฌ๋ผ๊ฐ๋ ๋ฑ, ์๋นํ ๊ธ์ก์ ํผํด๊ฐ ์์๋ฉ๋๋ค.
Socar์ ๋ฌดํํ ์๋ ๊ณผ ํ์์ ์ํด ๋ ํฐ์นด ์์ฝ ๋ฐ์ดํฐ๋ฅผ ํตํด ๋ณดํ ์ฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์์ธกํ๊ฑฐ๋, ์ฌ๊ณ ํ ์ง๊ณ๋ ๋ฐ์ดํฐ๋ฅผ ํตํด ๋ณดํ ์ฌ๊ณ ๋ฅผ ๋ฐ๊ฒฌํ๋ ๋ชจ๋ธ์ ๋ณดํ ์ฌ๊ธฐ์ ๋์ํ๊ธฐ ์ํ ๊ธฐ๋ฐ์ ๋ง๋ค์ด์ค๋๋ค.
-
Fraud Detection Model
๊ธ์ต ์ฌ๊ธฐ, ๋ณดํ ์ฌ๊ธฐ ๋ฑ์ ๋ฐ์ดํฐ๋ ํ ๊ฐ์ง ๊ณตํต๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ผ๋ฐ ๊ฑฐ๋ ๋ฐ์ดํฐ์ ์ฌ๊ธฐ ๊ฑฐ๋ ๋ฐ์ดํฐ์ ๋น์จ์ด ์ฌํ๊ฒ ์น์ฐ์น ๋ถ๊ท ํํ ๋ฐ์ดํฐ ์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค.
๋ณธ ํ์ด ๋ถ์ํ ๋ฐ์ดํฐ ์ ์ ํธ๋ ์ธ ๋ฐ์ดํฐ ์ ํด๋์ค ๋น์จ์ด 1:379 (fraud-34:normal-12875)์ธ ๋ถ๊ท ํ ๋ฐ์ดํฐ ์ ์ ๋๋ค. fraud ํด๋์ค์ ์๊ฐ ํ์ ํ ์์ ๋ชจ๋ธ์ด ํ์ต ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ ์ค๋ฒ ์ํ๋ง์ ํฌํจํ์ฌ ์ ์ ํ Re-Sampling ๋ชจ๋ธ์ ์ ํํ์ฌ ๋ ํด๋์ค ๊ฐ์ ๊ท ํ์ ๋ง์ถฐ์ฃผ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
-
'34๊ฐ์ train-fraud ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ํ์ต์ํฌ ๊ฒ์ธ๊ฐ'
- EDA๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋ ธ์ด์ฆ, ์์๋ผ์ด์ด ๋ฑ์ ํ์ ํด์ผํฉ๋๋ค. ๋ ธ์ด์ฆ๋ผ๊ณ ํ๋จ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ ์ ํจ๊ณผ์ ์ธ under sampling์ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
- ๋ํ EDA๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์๋ฏธ๋ฅผ ๋ค์ ํ์ ํ๊ณ , ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก customํ ๋ฐฉ๋ฒ์ ๋ชจ์ํฉ๋๋ค. ์ฐ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๊ฐ์ ๋๋ ๋ช ๋ชฉํ์ผ๋ก ๋ฐ๊พธ๋ ์๋๊ฐ ์ด์ ์ํฉ๋๋ค.
- ๋ค์ํ Resampling model์ ์ ์ฉํ๊ณ , ๋ถ์ํ์ฌ ๋ฐ์ดํฐ ์ ์ ์ต์ ํ๋ Resampling ๋ชจ๋ธ์ ์ฐพ์์ผํฉ๋๋ค.
- ๋๋ฉ์ธ ์กฐ์ฌ, EDA, ๊ด๋ จ ์ฌ๋ก ๋ถ์๊ณผ ๊ฐ์ ์ ํ์ ์๋ฃ์กฐ์ฌ ๋ฟ๋ง ์๋๋ผ, ๋ชจ๋ธ๋ง ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํ์ฌ ๋ฐ์ดํฐ ์ ์ ํน์ง์ ํ์ ํ๋ ๊ฒฝํ์ ๋ถ์์ด ์๊ตฌ๋ฉ๋๋ค. raw ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๊ฒ์ด ์๋๋ผ, ์ค๋ฒ ์ํ๋ง๋ ๋ฐ์ดํฐ์ ์ ํ์ต์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ์ํ๋ง๋ ๋ฐ์ดํฐ ์ ์ด raw ๋ฐ์ดํฐ๋ฅผ ์ ํํ ๋ฐ์ํ๋์ง, ์ํ๋ง ๊ณผ์ ์์ ๋ฐ์ดํฐ์ ๋ ธ์ด์ฆ๊ฐ ์๊ธฐ์ง ์์๋์ง ๋ฑ์ ๊ฒฐ๊ณผ๋ถ์์ ํตํด ํ์ธํด์ผํฉ๋๋ค.
* recall : ์์ธก ๋ณดํ ์ฌ๊ธฐ / ์ค์ ๋ณดํ ์ฌ๊ธฐ
* accuracy : ์์ธกํ ๋ณดํ ์ฌ๊ธฐ + ์์ธกํ ์ผ๋ฐ ์ฌ๊ณ / ์ ์ฒด ๋ฐ์ดํฐ
๋ณดํต ๋ถ๊ท ํํ ์ ๋๊ฐ ์ฌํ ๋ฐ์ดํฐ์์ ์ฌ์ฉํ๋ ๋ชจ๋ธ ์ฑ๋ฅ ํ๊ฐ ์งํ๋ recall ์
๋๋ค.
์ ๋ถ ๋ค normal ์ฌ๊ณ ๋ผ๊ณ ์์ธกํด๋ accuracy๋ 1์ ๊ฐ๊น์ด ๊ฐ์ด ๋์ค๋ ํ์
๋๋ค.
๋ฐ๋ผ์, ์์ ํด๋์ค์ธ ๊ด๊ณ๋ก ๋ชจ๋ธ์ด ํ์ตํ๊ธฐ ์ด๋ ค์ด fraud ๋ฐ์ดํฐ ์
์ ํ์ต์์ผ fraud๋ฅผ ์์ธกํด๋ด๊ณ , Recall์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ์ฒซ๋ฒ์งธ ๋ชฉํ์
๋๋ค.
Recall์ ๋ฌ์ฑํ ํ, normal, fraud ๋ ํด๋์ค์ ์์ธก๋ฅ ์ ๋ชจ๋ ๋์ด๊ธฐ ์ํด ์ฌ์ธํ Data Cleaning, Data Sampling, ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ ์กฐ์ ์ด ํ์ํฉ๋๋ค.
์ด๋ฅผ ํ๊ฐํ๋ ์งํ๋ก accuracy๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ถ๊ทน์ ์ผ๋ก ๋์ recall๊ณผ ๋์์ ๋์ accuracy๋ฅผ ๋ฌ์ฑํ๋ ๊ฒ์ด ๋ณธ ํ์ ๋ชฉํ์ ๋๋ค.
fraud ๋ฐ์ดํฐ ์
๋ง EDA ํ์ ๋, ๋๋ถ๋ถ์ ์ฌ๊ธฐ ๋ฐ์ดํฐ๋ 20๋, ์์นด๋ฅผ ์ฒ์ ์ด์ฉํ๋ ์ด์ฉ์, ๋ฒ์ธ์ด ์๋ ๊ฐ์ธ ๋ฑ์ ๋ชจ์ต์ ๋ณด์ธ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด 20๋ ์ด์ฉ์๋ ๋๋ถ๋ถ fraud๋ผ๊ณ ๋ถ์ํด๋ ๋ ๊น์? ์๋๋๋ค. ๋ค์์ countplot์ ๋ณด๋ฉด, fraud์ ํน์ฑ์ด normal์ ํน์ฑ์ด๊ธฐ๋ ํ ๋ชจ์ต์ ๋ณผ ์ ์์ต๋๋ค.
feature 14๊ฐ๊ฐ ์ ์ฌํ ๋ชจ์ต์ ๋ณด์
๋๋ค.
์ฆ, '์ ์ฒด ์ด์ฉ์์ ์ฌ๊ณ ๊ฒฝํฅ'๊ณผ 'fraud์ ๊ฒฝํฅ'์ด ์ ์ฌํฉ๋๋ค.
3-2.์ผ๋ฐ ์ด์ฉ์์ ์ฌ๊ณ ์ fraud ์ด์ฉ์์ ์ฌ๊ณ ๊ฐ ์๋นํ ์ ์ฌํ ๋ชจ์ต์ ๋ณด์ด๋ ๋ฐ์ดํฐ ์ , ์ด๋ค ์ํ๋ง์ ์ฌ์ฉํด์ผํ ๊น?
์ฐ๋ฆฐ EDA๋ฅผ ํตํด normal ๋ฐ์ดํฐ ์ ๊ณผ fraud ๋ฐ์ดํฐ ์ ์ ํน์ฑ์ด ์ ์ฌํ ๋ชจ์ต์ ๋ณด์ธ๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
๋๋ฌธ์, Over-Sampling, Combined-Sampling์ ์ํ ๋ค์ํ ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํด๋ณธ ๊ฒฐ๊ณผ, fraud ๋ฐ์ดํฐ ์
๊ณผ normal ๋ฐ์ดํฐ ์
์ ๊ฒฝ๊ณ๋ฅผ ์ ๋ฆฌํด์ฃผ๋ ์ํ๋ง ๋ชจ๋ธ์ด ๊ฐ์ฅ ์ ํฉํ์ต๋๋ค.
BorderlineSmote์ TomekLinks, EditedNearestNeighbours์ด ๊ทธ์ ํด๋นํฉ๋๋ค. ๋ค์์ scatterplot์ ๋ณธ ํ์ ๋ชจ๋ธ์์ ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์๋ ์ํ๋ง ๋ชจ๋ธ์ ์์ฝํฉ๋๋ค.
SMOTE(random_state=13, k_neighbors=26, sampling_strategy=1)๋ fraud ๋ฐ์ดํฐ ๊ฐ์ ๊ฐ๊ฒฉ์ ์ฑ์ฐ๋ ๋ฐฉ์์ผ๋ก ์ํ๋ง ๋์ด, ์ ๋ฐ์ดํฐ์๋ ๋ค๋ฅธ ์์์ ๋ณด์
๋๋ค.
๋ฐ๋ฉด BorderlineSMOTE(random_state=13, k_neighbors=10,sampling_strategy=1)์ ๊ฒฝ์ฐ ๋ณธ ๋ฐ์ดํฐ ์
์ fraud์ ๊ฐ์ฅ ์ ์ฌํ๊ฒ ์ํ๋ง๋์๋ค๋ ์ ์ ์ ์ ์์ต๋๋ค.
๋ ์ํ๋ง ๋ฐฉ๋ฒ์ ๋ชจ๋ธ๋ง ๊ฒฐ๊ณผ๋ fraud ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ์ ์ฌํ๊ฒ ์ํ๋งํ๋ ๋ฐฉ๋ฒ์ด ์์ธก๋ฅ ์ ๋์ด๋ ๋ฐฉ๋ฒ์์ ํ์ธํ์ต๋๋ค.
- {SMOTE : [DecisonTreeClassifier | acc : 0.85, recall : 0.14]}
- {BorderlineSMOTE : [Logistic Regression | acc : 0.65, recall : 0.85]}
๋ค์์ scatterplot์ BorderSmote์ Under-Sampling๋ชจ๋ธ์ ํผํฉํ์ฌ ์ฌ์ฉํ ๊ฒฐ๊ณผ๋ฅผ ์์ฝํฉ๋๋ค.
BorderlineSMOTE๋ก ์ค๋ฒ์ํ๋ง๋ง ํ์ ๋๋ณด๋ค, accuracy๊ฐ ์ฌ๋ผ๊ฐ ๊ฒ์ ๋ณด์, fraud ์ธ์ ์ normal ์ฌ๊ณ ๋ฅผ ์ธ๋์ํ๋งํด์ฃผ๋ ๊ฒ์ด ๋ชจ๋ธ์ ์์ธก๋ฅ ์ ๋์ธ๋ค๋ ์ฌ์ค์ ํ์ธํ์์ต๋๋ค.
- {Tomek_all : [Logistic Regression | acc : 0.74, recall : 0.71]}
- {Tomek : [Logistic Regression | acc : 0.67, recall : 0.85]}
- {ENN_12 : [Logistic Regression | acc : 0.71, recall : 0.71]}
- {ENN_13 : [Logistic Regression | acc : 0.66, recall : 0.85]}
์๋ boxplot๊ณผ jointplot์ ๋จ์๋ 1000๋ง์์ ๋๋ค.
๋ฒ์๋ 0~1์ต์ด์ง๋ง, s14์ s15์ jointplot์ ๋ณด์์ ๋ ๋๋ถ๋ถ์ ๋ฐ์ดํฐ ์ ์ด 100๋ง์ ์ดํ์ ๋ชฐ๋ ค์๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๋ณดํต ํฐ ์ฌ๊ณ ๋ ์ผ์ด๋์ง์์ผ๋ฉฐ, ํนํ fraud์ผ ๋๋ ๋์ฑ ๋ ํฐ ์ฌ๊ณ ๋ฅผ ๊ณํํ์ง ์๋๋ค๊ณ ํด์ํ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํฐ์ ๋ ธ์ด์ฆ๋ฅผ ์ค์ด๊ณ ์๋ฏธ๋ฅผ ๋ช ํํ ํ๊ธฐ ์ํด ์ฐ์ํ ๋ณ์๋ค์ 3๊ฐ(๊ฒฝ๋ฏธํ ์ฌ๊ณ =0,๋ณดํต ์ฌ๊ณ <=125๋ง,๋ํ ์ฌ๊ณ >125๋ง)๊ตฌ๊ฐ์ผ๋ก ๋๋ ๋ช ๋ชฉํ ๋ณ์๋ก customํ์์ต๋๋ค.
๊ฐ์ ๋ฐ์ดํฐ ์ ๊ธฐ์ค, ๋ช ๋ชฉํ custom ์ฌ๋ถ์ ๋ํ ๋ชจ๋ธ ๊ฒฐ๊ณผ ์งํ๋ฅผ ๋ณด์์ ๋, ์ฑ๋ฅ์ด ํ์ฐํ ์ข์์ก๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
- {original : [DecisionTreeClassifier | acc : 0.95, recall : 0.0]}
- {๋ช
๋ชฉํ์ผ๋ก custom : [DecisionTreeClassifier | acc : 0.77, recall : 0.85]}
train-fraud ๋ฐ์ดํฐ์ ์์๋ผ์ด์ด๋ฅผ ์ด๋ป๊ฒ ๋ค๋ค์ผํ ๊น ๊ณ ๋ฏผํ์์ต๋๋ค.
34๊ฐ ๋ฐ์ดํฐ ์ค์ 3~5๊ฐ๋ ๋ณดํต์ fraud ๋ฐ์ดํฐ์ ๋จ์ด์ง ์์๋ผ์ด์ด์์ต๋๋ค.
์ด๋ฅผ ๊ณ ๋ คํ์ง์๊ณ ์ํ๋งํ๋ค๋ฉด, ์์ ํด๋์ค์ '์์'์ธ ์์๋ผ์ด์ด๋ ์ํ๋ง ๋ชจ๋ธ์ด ํ์ตํ์ง ๋ชปํฉ๋๋ค.
SMOTE๋ฅผ ํตํด fraud ๋ฐ์ดํฐ ์
์ 34๊ฐ์์ 12845๊ฐ๋ก ์ค๋ฒ์ํ๋งํ ๋, train-fraud์ ์์๋ผ์ด์ด์ธ 's3'=5์ธ ๋ฐ์ดํฐ๋ ์ํ๋ง ์ดํ์๋ 1๊ฐ์ธ ๊ฒฐ๊ณผ๊ฐ ์ด๋ฅผ ๋งํด์ค๋๋ค.
fraud data set์ ๋ค๋ฃจ๋ ์ฌ๋ก ๋ ผ๋ฌธ๋ค์ ์กฐ์ฌํ ๊ฒฐ๊ณผ SCUT ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํด๋ณด๊ธฐ๋ก ํ์์ต๋๋ค.
* SCUT Algorithm
- ๋น์ง๋ ํ์ต์ธ ๊ตฐ์ง ๋ชจ๋ธ๋ง์ ๋ฐํ์ผ๋ก ์ํ๋ง ํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
- Multi-Class Imbalanced Data Classification using SMOTE and Cluster-based Undersampling Technic
๊ธฐ์กด์ fraud, normal ๋ ํด๋์ค๋ก ๋๋ ์ก๋ ๋ผ๋ฒจ ๋์ K-means clustering์ ํตํด ํ์ตํ ๊ตฐ์ง 0:fraud, 1:fraud, 2:fraud, 3:normal ๋ค ํด๋์ค์ ๋ผ๋ฒจ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ๋งํฉ๋๋ค.
SMOTE ์ํ๋ง ์ ์์ ํด๋์ค ๋ด์์์ ์์, ์ฆ train-fraud ๋ฐ์ดํฐ๋ฅผ ํ์ตํ์ง ๋ชปํ๋ ๋ฌธ์ ๋ฅผ ๋ณด์ํฉ๋๋ค.
K-means clustering์ ํตํด ์์ ํด๋์ค์์์ ๋ค์, ์์ ํด๋์ค์์์ ์์1, ์์ ํด๋์ค์์์ ์์2 ์ด๋ ๊ฒ 3๊ฐ์ง ํด๋์ค๋ก ๋ถ๋ฆฌํ์ฌ ์์ ํด๋์ค์ '์์'ํด๋์ค ์ญ์ ํ์ต ๊ฐ๋ฅํด์ง๋๋ค.
์ผ๋ก๋ก ๋จ์ SMOTE๋ก ์ํ๋ง ์์๋ ์ํ๋ง ์ดํ์๋ 1๊ฐ์๋ train-fraud ๋ฐ์ดํฐ์ ์์๋ผ์ด์ด 's3'=5 ๋ฐ์ดํฐ๊ฐ, SCUT์ ์ ์ฉํ ๋์๋ 2869๊ฐ๋ก ์ค๋ฒ ์ํ๋ง๋ฉ๋๋ค. ํด๋์ค๋ฅผ ๋๋ ์ค์ผ๋ก์จ SMOTE ๋ชจ๋ธ์ด train-fraud ๋ฐ์ดํฐ์ ์์๋ผ์ด์ด๋ฅผ ํ์ต ๊ฐ๋ฅํด์ก๊ธฐ ๋๋ฌธ์ ๋๋ค.
accuracy๊ฐ ๋ํญ ์์นํ๋ค๋ ์ ์์ ์ ์๋ฏธํฉ๋๋ค. fraud ๋ฐ์ดํฐ์ ์์๋ผ์ด์ด๋ฅผ ํ์ตํจ์ผ๋ก์จ normal ์ฌ๊ณ ์์ธก ์ ํ๋๊ฐ ๋์์ง ๊ฒ์ผ๋ก ์ถ์ ํฉ๋๋ค.
- {๋จ์ SMOTE : [Logistic Regression | acc : 0.57, recall : 0.42]}
- {SCUT : [DecisionTreeClassifier | acc : 0.81, recall : 0.42]}
- ๋ณธ ํ์ ์ธ์ฌ์ดํธ๋ฅผ ์ข ํฉํ์ฌ ์ต๊ณ ์ ๋ชจ๋ธ์ ์ ์ ํ์์ต๋๋ค.
| model name | train accuracy | train precision | train recall | test accuracy | test precision | test recall |
|---|---|---|---|---|---|---|
| DecisionTreeClassifier | 0.825259 | 0.0006611 | 0.515151 | 0.77399 | 0.00930 | 0.81541 |
- Feature Selection : ๋๋ฉ์ธ ์ง์ + EDA ๊ธฐ๋ฐ
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ : 1) ๋ถํ์ ํ๋จ ์ปฌ๋ผ ์ ๊ฑฐ , 2) noise ํ๋จ ๋ฐ์ดํฐ ๋ถ๋ถ ์ ๊ฑฐ, 3) ๋ช ๋ชฉํ ๋ณํ, 4) OneHotEncoding
- Parameter Tuning : Decision Tree | random_state=13, max_depth=6
test set์ ๋ํ ์์ธ
ํ๋ก์ ํธ ์งํ ์ ๋ฐ์ดํฐ์ ๋
ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ์ฌ ํ์ต ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ๋ฐ์ดํฐ ์
์ ์์๋ผ์ด์ด๋ฅผ ์ ๊ฑฐํ๋ ์์์ ์ธ Under-Sampling์ ์งํํ์์ต๋๋ค.
์ด ๊ณผ์ ์์ test set์ ์ ์คํ๋ ์ผ์ด ๋ฐ์ํ์์ต๋๋ค.
ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ฉฐ ์ต์ข
๋ฐํ๋ฅผ ํ ๋ test set์ ๋ฌด์จ ์ผ์ด ์์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ์คํ๊ฑฐ๋ ๊ณผํ๊ฒ ๋ณํ๋๋ ์ผ์ด ๋ฐ์ํ๋ฉด ์๋๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ์์ต๋๋ค.
์ด๋ฅผ ํตํด test set์ ๋ํ ์์ธ๋ฅผ ๋ฐฐ์ ์ต๋๋ค.
์ถํ ํ๋ก์ ํธ ๋ณด์์ ํตํ์ฌ test set์ ์ ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ๋ชจ๋ธ์ ์ ์ฉํ์์ต๋๋ค.
์์ผ๋ก test set์ ๋ฐ์ดํฐ๋ ์ ์ค๋๋ ์ผ์ด ์๋๋ก ๋์ฑ ๋ ๊ณ๊ธฐ๊ฐ ๋์์ต๋๋ค.
1. Imbalanced data์ ๋ํ ๋ค์ํ Sampling ๊ธฐ๋ฒ
-
imblearn ํจํค์ง :
- imblearn ํจํค์ง์ Over-Sampling(SMOTE, BorderlineSMOTE, ADASYN, Random-OverSampling) , Under-Sampling(ENN, CNN, Nearmiss, RandomUnderSampling, Tomeklinks), ๊ทธ๋ฆฌ๊ณ pipeline์ ํตํ Combined-Sampling๊น์ง ๋ฐ์ดํฐ ์ ์ ์ต์ ํ๋ ์ํ๋ง ๋ชจ๋ธ์ ์ฐพ๊ธฐ์ํด ๊ฐ ๋ชจ๋ธ๋ค์ ๊ณต๋ถํ๊ณ ์ ์ฉํ์์ต๋๋ค. -
๋ฐ์ดํฐ ๋ด ๋ ธ์ด์ฆ, Outlier ์ ๊ฑฐ๋ฅผ ํตํ Under-Sampling
-
SCUT : ์์ ํด๋์ค๋ฅผ K-means Clustering ๋ฐฉ๋ฒ์ ํตํด multi class๋ก ๋ถ๋ฆฌํ๊ณ , ์ํ๋งํ๋ ๋ฐฉ๋ฒ
2. Feature Selection ๊ธฐ์ค์ ๋ํ ๋ค์ํ ์ ๊ทผ๋ฒ
-
EDA ๋ฐ ๋๋ฉ์ธ ์กฐ์ฌ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ Feature Seletion
-
Feature ๋๋ค drop ์คํ์ ํตํ Feature ๊ฐ ์๊ด๊ด๊ณ ๋ถ์
3. ๋ค์ํ ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ์ ๋ํ ๊ฒฝํ์ ์ง์
-
Decision Tree๊ฐ ์ฑ๋ฅ์ด ์ข์๋ฐ RandomForest๋ ์ ์ฑ๋ฅ์ด ์์ข์๊น?
- ์์ฌ๊ฒฐ์ ๋๋ฌด๋ฅผ ์๊ฐํํด๋ณธ ๊ฒฐ๊ณผ, ๋ ๋ชจ๋ธ์ ๋๋ฌด๋ ๋ค๋ฅธ feature๋ฅผ ์ ์ ํ์ฌ ํด๋์ค๋ฅผ ๋ถ๋ฅํ์์ต๋๋ค.
- Imbalanced data set์ ๋ชจ๋ธ๋ง ๊ณผ์ ์์ ๋ฐ์ํ ํ์์ด๋, ๋น์ ์์ ์ธ ํ์์ ์๋๋ผ๊ณ ํ ์ ์์ต๋๋ค.
- ์ดํ, DecisionTreeClassifier์์ ์ฌ์ฉํ feature๋ค๋ง RandomForest์ ๋ฃ์์ ๋๋ DecisionTreeClassifier์ ์ ์ฌํ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค.
-
Multi-Classes ๋ถ๋ฅ์ผ ๋, Support Vector Machine Classifier ์ปค๋ ๋ฌดํ ๋ก๋ฉ ๋ฌธ์
- ๋ณดํต SVC๊ฐ ์ฐ์ฐ๋์ด ๋ง์ ์๊ฐ ์์๊ฐ ๋๋ ๋ชจ๋ธ์ด๋ผ๋ ์ ์ ๊ฐ์ํด๋, ๊ณผํ๊ฒ ์ค๋ ๊ฑธ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
- ์ฐ์ฐ๋์ ์ค์ด์ฃผ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ ์ค์ผ์ผ๋ง์ ์ ์ฉํ์๋๋, ๋น๊ต์ ์งง์ ์๊ฐ์ ๋ชจ๋ธ ์ฑ๋ฅ์ ํ์ธํ ์ ์์์ต๋๋ค.
- ๋๋ถ์ด, SVC๋ณด๋ค ์ฐ์ฐ๋์ด ์ ์ SVR ๋ชจ๋ธ์ ์ ์ฉํ์๋๋, ์ด ์ญ์ ๋น๊ต์ ์งง์ ์๊ฐ์ ๋ชจ๋ธ ์ฑ๋ฅ์ ํ์ธํ ์ ์์์ต๋๋ค.
-
Support Vector Machine : randomseed์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ๋ง์ด ๋ฌ๋ผ์ง๋ ํ์
- ๋ฐ์ดํฐ ์ , ๋ชจ๋ธ๋ง๋ค randomseed์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ๋ง์ด ๋ฌ๋ผ์ง๋ ํ์์ด ์กด์ฌํ ์ ์๋ค๋ ์ ์ ํ์ตํ์์ต๋๋ค.
4. Imbalanced Data Set ๋ชจ๋ธ ์ฑ๋ฅ ์งํ ํด์ ๋ฐ ํ๊ฐ
-
Imbalanced Data Set์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ ์ ๊ณผ ๋ฌ๋ฆฌ Recall์ ํ๋ณดํด์ผํฉ๋๋ค.
- ๋ค์ ํด๋์ค๋ก ๋ชฐ๋ฆฐ ์์ธก์ ํด๋, ๋ฐ์ดํฐ ์
์ ๋๋ถ๋ถ์ด ๋ค์ ํด๋์ค์ด๊ธฐ ๋๋ฌธ์ accuracy๊ฐ ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ฐ๋ผ์ Imbalanced Data set์ ๊ฒฝ์ฐ, ๋์ recall๊ณผ ๋์์ ๋์ accuracy๋ฅผ ํ๋ณดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ๋ค์ ํด๋์ค๋ก ๋ชฐ๋ฆฐ ์์ธก์ ํด๋, ๋ฐ์ดํฐ ์
์ ๋๋ถ๋ถ์ด ๋ค์ ํด๋์ค์ด๊ธฐ ๋๋ฌธ์ accuracy๊ฐ ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
5. ๋น๋๋ฉด ์ ๋ฌด ์ ์์ฌ์ํต ๋ฐฉ๋ฒ
- discord๋ฅผ ํตํด ๋งค์ผ ์ค์ ์ ์์ ๊ณํ์ ๊ณต์ ํ๊ณ , ๋ฐค 10์ ๊ฒฝ์ zoom ํ์๋ฅผ ํตํด ์์ ๊ฒฐ๊ณผ ๊ณต์
- github์ ํ์ฉํ์ฌ ํ์ผ ๊ณต์ ๋ฐ ๊ฒฐ๊ณผ ์ ๋ฐ์ดํธ
-
- Jalal Ahammad, Nazia Hossain, January 2020, Credit Card Fraud Detection using Data Pre-processing on Imbalanced Data - both Oversampling and Undersampling(ICCA 2020: Proceedings of the International Conference on Computing Advancements,ย Article No.: 68,ย pp 1โ4)
- ์ ํ๋, ์ด์ ํ, ์ ์นํ,March 2010, ๋ถ๊ท ํ ์ด๋ถ ๋ฐ์ดํฐ ๋ถ๋ฅ๋ถ์์ ์ํ ๋ฐ์ดํฐ๋ง์ด๋ ์ ์ฐจ (ํฌํญ๊ณต๊ณผ๋ํ๊ต ์ฐ์ ๊ฒฝ์๊ณตํ๊ณผ, Journal of the Korean Institute of Industrial Engineers Vol. 36, No. 1, pp. 13-21)
- Astha Agrawal , Herna L. Viktor and Eric Paquet ,2015, SCUT: Multi-Class Imbalanced Data Classification using SMOTE and Cluster-based Undersampling (In Proceedings of the 7th International Joint Conference on Knowledge Discovery, Knowledge Engineering and Knowledge Management (IC3K 2015) - Volume 1: KDIR, pages 226-234 ISBN: 978-989-758-158-8)









