Skip to Content

๋จธ์‹ ๋Ÿฌ๋‹

์‹ค๋ฌด์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๊ฐ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜, ์ดํƒˆ ์˜ˆ์ธก, ๋งค์ถœ ์˜ˆ์ธก ๋“ฑ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค.

๋จธ์‹ ๋Ÿฌ๋‹ vs ํ†ต๊ณ„

๊ด€์ ํ†ต๊ณ„๋จธ์‹ ๋Ÿฌ๋‹
๋ชฉ์ ์ถ”๋ก , ๊ฐ€์„ค ๊ฒ€์ฆ์˜ˆ์ธก, ํŒจํ„ด ๋ฐœ๊ฒฌ
ํ•ด์„๋ชจ๋ธ ํ•ด์„ ์ค‘์‹œ์˜ˆ์ธก ์„ฑ๋Šฅ ์ค‘์‹œ
๋ฐ์ดํ„ฐ์ž‘์€ ํ‘œ๋ณธ์—์„œ๋„ ์œ ํšจ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ํ•„์š”
์ ‘๊ทผ๋ฒ•๊ฐ€์ • ๊ธฐ๋ฐ˜๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜

์ปค๋ฆฌํ˜๋Ÿผ

1. ํด๋Ÿฌ์Šคํ„ฐ๋ง

์ค‘๊ธ‰

๋น„์ง€๋„ ํ•™์Šต์œผ๋กœ ๊ณ ๊ฐ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • K-Means ํด๋Ÿฌ์Šคํ„ฐ๋ง
  • ์ตœ์  ํด๋Ÿฌ์Šคํ„ฐ ์ˆ˜ ๊ฒฐ์ • (Elbow, Silhouette)
  • RFM ๊ธฐ๋ฐ˜ ๊ณ ๊ฐ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜
  • ํด๋Ÿฌ์Šคํ„ฐ ํ”„๋กœํŒŒ์ผ๋ง
  • DBSCAN (๋ฐ€๋„ ๊ธฐ๋ฐ˜ ํด๋Ÿฌ์Šคํ„ฐ๋ง)

ํด๋Ÿฌ์Šคํ„ฐ๋ง ์‹œ์ž‘ํ•˜๊ธฐ โ†’


2. ๋ถ„๋ฅ˜ ๋ชจ๋ธ

์ค‘๊ธ‰๊ณ ๊ธ‰

๊ณ ๊ฐ ์ดํƒˆ ์˜ˆ์ธก, ๊ตฌ๋งค ์˜ˆ์ธก ๋“ฑ ๋ถ„๋ฅ˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€
  • ๊ฒฐ์ • ํŠธ๋ฆฌ (Decision Tree)
  • ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ (Random Forest)
  • XGBoost
  • ๋ชจ๋ธ ํ‰๊ฐ€: ์ •ํ™•๋„, ์ •๋ฐ€๋„, ์žฌํ˜„์œจ, F1, AUC-ROC

๋ถ„๋ฅ˜ ๋ชจ๋ธ ์‹œ์ž‘ํ•˜๊ธฐ โ†’


3. ํšŒ๊ท€ ์˜ˆ์ธก

์ค‘๊ธ‰๊ณ ๊ธ‰

๊ณ ๊ฐ ์ƒ์• ๊ฐ€์น˜(CLV), ๋งค์ถœ ์˜ˆ์ธก ๋“ฑ ์—ฐ์†๊ฐ’์„ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.

  • ์„ ํ˜• ํšŒ๊ท€
  • ๋ฆฟ์ง€(Ridge), ๋ผ์˜(Lasso) ํšŒ๊ท€
  • ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ ํšŒ๊ท€
  • XGBoost ํšŒ๊ท€
  • ๋ชจ๋ธ ํ‰๊ฐ€: MAE, RMSE, Rยฒ

ํšŒ๊ท€ ์˜ˆ์ธก ์‹œ์ž‘ํ•˜๊ธฐ โ†’


4. ์‹œ๊ณ„์—ด ์˜ˆ์ธก

๊ณ ๊ธ‰

๋งค์ถœ, ์ˆ˜์š” ๋“ฑ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.

  • Prophet ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
  • ์ถ”์„ธ์™€ ๊ณ„์ ˆ์„ฑ ๋ชจ๋ธ๋ง
  • ํœด์ผ ํšจ๊ณผ ๋ฐ˜์˜
  • ์ด์ƒ์น˜ ํƒ์ง€
  • ๋‹ค์ค‘ ์‹œ๊ณ„์—ด ์˜ˆ์ธก

์‹œ๊ณ„์—ด ์˜ˆ์ธก ์‹œ์ž‘ํ•˜๊ธฐ โ†’


5. ์ถ”์ฒœ ์‹œ์Šคํ…œ

๊ณ ๊ธ‰

์ƒํ’ˆ ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • ํ˜‘์—… ํ•„ํ„ฐ๋ง (Collaborative Filtering)
  • ์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜ ํ•„ํ„ฐ๋ง (Content-Based)
  • ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ถ”์ฒœ
  • ํ‰๊ฐ€ ์ง€ํ‘œ: Precision@K, Recall@K, NDCG

์ถ”์ฒœ ์‹œ์Šคํ…œ ์‹œ์ž‘ํ•˜๊ธฐ โ†’

ML ์›Œํฌํ”Œ๋กœ์šฐ

1. ๋ฌธ์ œ ์ •์˜ โ””โ”€ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ๋ฅผ ML ๋ฌธ์ œ๋กœ ๋ณ€ํ™˜ โ†“ 2. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ํƒ์ƒ‰ (EDA) โ””โ”€ ๋ฐ์ดํ„ฐ ์ดํ•ด, ํ’ˆ์งˆ ํ™•์ธ โ†“ 3. ํ”ผ์ฒ˜ ์—”์ง€๋‹ˆ์–ด๋ง โ””โ”€ ์ƒˆ๋กœ์šด ํŠน์„ฑ ์ƒ์„ฑ, ๋ณ€ํ™˜ โ†“ 4. ๋ชจ๋ธ ํ•™์Šต โ””โ”€ ํ•™์Šต/๊ฒ€์ฆ ๋ฐ์ดํ„ฐ ๋ถ„๋ฆฌ โ””โ”€ ์—ฌ๋Ÿฌ ๋ชจ๋ธ ๋น„๊ต โ†“ 5. ๋ชจ๋ธ ํ‰๊ฐ€ โ””โ”€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ์„ฑ๋Šฅ ์ธก์ • โ†“ 6. ๋ฐฐํฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง โ””โ”€ ์‹ค์ œ ํ™˜๊ฒฝ์— ์ ์šฉ โ””โ”€ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง, ์žฌํ•™์Šต

์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

# ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ from sklearn.preprocessing import StandardScaler, LabelEncoder from sklearn.model_selection import train_test_split, cross_val_score # ๋ชจ๋ธ from sklearn.cluster import KMeans from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier from xgboost import XGBClassifier # ํ‰๊ฐ€ from sklearn.metrics import ( accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, classification_report, roc_auc_score ) # ์‹œ๊ณ„์—ด from prophet import Prophet
์‹คํ–‰ ๊ฒฐ๊ณผ
Error: No module named 'prophet'

๋ชจ๋ธ ์„ ํƒ ๊ฐ€์ด๋“œ

โ„น๏ธ
์–ด๋–ค ๋ชจ๋ธ์„ ์„ ํƒํ•ด์•ผ ํ• ๊นŒ?

๋ฐ์ดํ„ฐ๊ฐ€ ์ ์„ ๋•Œ (< 1,000๊ฑด)

  • ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€, ๊ฒฐ์ • ํŠธ๋ฆฌ
  • ๊ณผ์ ํ•ฉ ์ฃผ์˜, ๊ต์ฐจ๊ฒ€์ฆ ํ•„์ˆ˜

๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„ ๋•Œ (> 10,000๊ฑด)

  • ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ, XGBoost
  • ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹ ์ค‘์š”

ํ•ด์„์ด ์ค‘์š”ํ•  ๋•Œ

  • ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€, ๊ฒฐ์ • ํŠธ๋ฆฌ
  • ํ”ผ์ฒ˜ ์ค‘์š”๋„ ๋ถ„์„

์˜ˆ์ธก ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•  ๋•Œ

  • XGBoost, LightGBM
  • ์•™์ƒ๋ธ” ๊ธฐ๋ฒ•

์‹ค๋ฌด ํŒ

โš ๏ธ
ํ”ํ•œ ์‹ค์ˆ˜ ํ”ผํ•˜๊ธฐ
  1. ๋ฐ์ดํ„ฐ ๋ˆ„์ˆ˜(Data Leakage): ๋ฏธ๋ž˜ ์ •๋ณด๊ฐ€ ํ•™์Šต์— ํฌํ•จ๋˜์ง€ ์•Š๋„๋ก ์ฃผ์˜
  2. ํด๋ž˜์Šค ๋ถˆ๊ท ํ˜•: ์ดํƒˆ ์˜ˆ์ธก ์‹œ ์ดํƒˆ์ž๊ฐ€ ์ ์Œ โ†’ SMOTE, ๊ฐ€์ค‘์น˜ ์กฐ์ •
  3. ๊ณผ์ ํ•ฉ: ํ•™์Šต ์„ฑ๋Šฅ๋งŒ ์ข‹๊ณ  ์‹ค์ œ ์„ฑ๋Šฅ ๋‚˜์จ โ†’ ๊ต์ฐจ๊ฒ€์ฆ ํ•„์ˆ˜
  4. ํ”ผ์ฒ˜ ์Šค์ผ€์ผ๋ง: ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜ ์™ธ ๋ชจ๋ธ์€ ์ •๊ทœํ™”/ํ‘œ์ค€ํ™” ํ•„์š”
Last updated on

๐Ÿค–AI Mock InterviewPractice with real questions