[✍🏻슀크랩] κ΄€μ‹¬μ΄μŠˆ 기둝

[슀크랩]데이터 μ‚¬μ΄μ–ΈμŠ€μ˜ Challenge - Data Leakage

seapearl 2025. 5. 14. 13:23

였늘 κ³΅λΆ€ν•œ μ£Όμ œλŠ” λ°”λ‘œ 데이터 λˆ„μˆ˜ ν˜„μƒ(data leakage)μž…λ‹ˆλ‹€. 

 

μœ„ ν˜„μƒμ€ 데이터 μ‚¬μ΄μ–ΈμŠ€ λΆ„μ•Όμ˜ ν•œκ³„λ‘œλ„ μ•Œλ €μ§„ ν˜„μƒμž…λ‹ˆλ‹€. 

기사 좜처

 

https://towardsdatascience.com/will-you-spot-the-leaks-a-data-science-challenge/

 

Will You Spot the Leaks? A Data Science Challenge | Towards Data Science

When models fly too high: A perilous journey through data leakage

towardsdatascience.com

데이터 λˆ„μˆ˜ν˜„μƒμ΄λž€? 

 

  • 데이터 λˆ„μˆ˜λŠ” λͺ¨λΈ ν›ˆλ ¨ μ‹œμ μ—λŠ” μ‚¬μš©ν•  수 μžˆμ§€λ§Œ, μ‹€μ œ 예츑 μ‹œμ μ—λŠ” μ‚¬μš©ν•  수 μ—†λŠ” 정보가 λͺ¨λΈμ— ν¬ν•¨λ˜μ–΄ κ³Όλ„ν•˜κ²Œ 높은 μ„±λŠ₯을 λ³΄μ΄λŠ” ν˜„μƒμ„ λ§ν•©λ‹ˆλ‹€.
  • μ΄λŠ” λͺ¨λΈμ˜ μ‹€μ œ μ„±λŠ₯을 κ³ΌλŒ€ν‰κ°€ν•˜κ²Œ λ§Œλ“€λ©°, μ‹€μ „μ—μ„œμ˜ 예츑 정확도λ₯Ό λ–¨μ–΄λœ¨λ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.
데이터 λˆ„μˆ˜ ν˜„μƒμ˜ μ’…λ₯˜

 

1. Target (Label) Leakage

μ˜ˆμΈ‘ν•˜λ €λŠ” μ •λ‹΅(타깃 λ³€μˆ˜)에 λŒ€ν•œ 정보가 νŠΉμ§•(feature) μ•ˆμ— 직접적 λ˜λŠ” κ°„μ ‘μ μœΌλ‘œ ν¬ν•¨λ˜μ–΄ μžˆμ„ λ•Œ λ°œμƒν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.

 

β‘  직접 λˆ„μˆ˜ (Direct Leakage)

  • 타깃 λ³€μˆ˜μ—μ„œ 직접 κ³„μ‚°λœ νŠΉμ§• μ‚¬μš©
  • ❗ μ˜ˆμ‹œ: “μ—°μ²΄λœ λ‚ μ§œ 수”λ₯Ό μ΄μš©ν•΄ λŒ€μΆœ 뢀도λ₯Ό 예츑
  • βœ… ν•΄κ²°: ν•΄λ‹Ή νŠΉμ§• 제거

β‘‘ κ°„μ ‘ λˆ„μˆ˜ (Indirect Leakage)

  • 타깃을 우회적으둜 μ•Œλ €μ£ΌλŠ” λ³€μˆ˜ μ‚¬μš© (λŒ€λ¦¬ λ³€μˆ˜)
  • ❗ μ˜ˆμ‹œ: “λ³΄ν—˜κΈˆ μ§€κΈ‰μ•‘”을 μ‚¬μš©ν•΄ 병원 μž¬μž…μ›μ„ 예츑
  • βœ… ν•΄κ²°: ν•΄λ‹Ή νŠΉμ§• 제거

 β‘’ 사후 집계(Post-Event Aggregates)

  • 예츑 κΈ°μ€€ μ‹œμ  μ΄ν›„μ˜ 정보λ₯Ό μ‚¬μš©ν•˜λŠ” 경우
  • ❗ μ˜ˆμ‹œ: “κ°€μž… 첫 30일 λ™μ•ˆμ˜ 톡화 수”둜 7일 λ‚΄ μ΄νƒˆ μ—¬λΆ€ 예츑
  • βœ… ν•΄κ²°: μ§‘κ³„λŠ” μ‹€μ‹œκ°„ λ˜λŠ” 예츑 μ‹œμ  κΈ°μ€€μœΌλ‘œ μ¦‰μ„μ—μ„œ 계산

2. Train - Test(Split) Contaminaton 

ν…ŒμŠ€νŠΈ λ°μ΄ν„°μ˜ 정보가 ν›ˆλ ¨ 과정에 μ„žμ—¬ λ“€μ–΄κ°€λ©΄μ„œ, μ‹€μ œ μ„±λŠ₯이 κ³ΌλŒ€ν‰κ°€λ˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.

 

 β‘  데이터 뢄석 λˆ„μˆ˜ (Data Analysis Leakage)

  • πŸ”Ž 전체 데이터λ₯Ό 미리 λΆ„μ„ν•΄μ„œ μƒκΈ°λŠ” λˆ„μˆ˜μž…λ‹ˆλ‹€.
  • ❗ μ˜ˆμ‹œ: 데이터 λΆ„ν•  전에 전체 μƒκ΄€κ΄€κ³„λ‚˜ 곡뢄산을 λΆ„μ„ν•˜λŠ” 경우
  • βœ… ν•΄κ²°: 데이터λ₯Ό λ¨Όμ € λ‚˜λˆ„κ³ , 였직 ν›ˆλ ¨ λ°μ΄ν„°λ§Œ λΆ„μ„ν•˜μ„Έμš”.

 β‘‘ μ „μ²˜λ¦¬ λˆ„μˆ˜ (Preprocessing Leakage)

  • πŸ”§ μ „μ²˜λ¦¬λ₯Ό 전체 데이터에 λ¨Όμ € μˆ˜ν–‰ν•œ 경우 μƒκΉλ‹ˆλ‹€.
  • ❗ μ˜ˆμ‹œ: μ •κ·œν™”, μŠ€μΌ€μΌλ§, PCA 등을 전체 데이터에 μ μš©ν•œ λ’€ λΆ„ν• 
  • βœ… ν•΄κ²°: λΆ„ν•  λ¨Όμ €, μ „μ²˜λ¦¬λŠ” ν›ˆλ ¨ λ°μ΄ν„°μ—λ§Œ fit, ν…ŒμŠ€νŠΈμ—λŠ” transform만 적용

β‘’ μ‹œκ°„ λˆ„μˆ˜ (Temporal Leakage)

  • πŸ•°οΈ μ‹œκ³„μ—΄ λ°μ΄ν„°μ—μ„œ μ‹œκ°„ μˆœμ„œλ₯Ό λ¬΄μ‹œν•˜κ³  λ¬΄μž‘μœ„λ‘œ μ„žμœΌλ©΄ λ°œμƒν•©λ‹ˆλ‹€.
  • ❗ μ˜ˆμ‹œ: 미래 데이터λ₯Ό ν›ˆλ ¨μ— ν¬ν•¨μ‹œμΌœ κ³Όκ±°λ₯Ό μ˜ˆμΈ‘ν•˜λŠ” 경우
  • βœ… ν•΄κ²°: μ‹œκ°„ μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•˜μ—¬ λΆ„ν• ν•΄μ•Ό ν•©λ‹ˆλ‹€.

β‘£ 쀑볡 λˆ„μˆ˜ (Duplicate Leakage)

  • πŸ” 같은 κ°œμ²΄λ‚˜ μœ μ‚¬ν•œ 데이터가 ν›ˆλ ¨κ³Ό ν…ŒμŠ€νŠΈμ— λ‘˜ λ‹€ ν¬ν•¨λœ κ²½μš°μž…λ‹ˆλ‹€.
  • ❗ μ˜ˆμ‹œ: λ™μΌν•œ 고객의 데이터가 ν›ˆλ ¨κ³Ό ν…ŒμŠ€νŠΈμ— λͺ¨λ‘ 포함
  • βœ… ν•΄κ²°: ν•œ 개체(λ˜λŠ” μœ μ‚¬ν•œ ν•­λͺ©)λŠ” λ°˜λ“œμ‹œ ν•œμͺ½ μ„ΈνŠΈμ—λ§Œ λ“€μ–΄κ°€κ²Œ ν•˜μ„Έμš”.

β‘€ ꡐ차검증 λˆ„μˆ˜ (Cross-Validation Leakage)

  • πŸ§ͺ ꡐ차검증 μ‹œ, 데이터 μ „μ²˜λ¦¬λ‚˜ λ³€ν™˜ 과정이 ν΄λ“œ μ‚¬μ΄μ—μ„œ 곡유될 경우 λ°œμƒν•©λ‹ˆλ‹€.
  • ❗ μ˜ˆμ‹œ: ꡐ차검증 전에 μŠ€μΌ€μΌλ§μ„ 전체에 λ¨Όμ € 적용
  • βœ… ν•΄κ²°: 각 ꡐ차검증 ν΄λ“œ λ‚΄λΆ€μ—μ„œ μ „μ²˜λ¦¬λΆ€ν„° μ˜ˆμΈ‘κΉŒμ§€ λ…λ¦½μ μœΌλ‘œ 처리

 β‘₯ 개체 μ‹λ³„μž λˆ„μˆ˜ (Entity/Identifier Leakage)

  • 🧬 λͺ¨λΈμ΄ ID, 고유번호 λ“±μœΌλ‘œ 정닡을 μΆ”μΈ‘ν•΄λ²„λ¦¬λŠ” κ²½μš°μž…λ‹ˆλ‹€.
  • ❗ μ˜ˆμ‹œ: 고객 IDκ°€ 반볡되며 λͺ¨λΈμ΄ κ·Έκ²ƒλ§Œ 보고 예츑 κ°€λŠ₯ν•΄μ§€λŠ” 경우
  • βœ… ν•΄κ²°: ν•΄λ‹Ή μ»¬λŸΌμ€ μ œκ±°ν•˜κ±°λ‚˜ μ²˜λ¦¬ν•΄ μ£Όμ„Έμš”. (보톡 drop)

 

ν•΄λ‹Ή 기사에 λ“€μ–΄κ°€λ³΄μ‹œλ©΄ μ΄μ™€κ΄€λ ¨λœ μ‹€μŠ΅λ„ μ§„ν–‰ν•  수 μžˆμœΌλ‹ˆ μ°Έκ³ ν•΄λ³΄μ„Έμš” !!