내일배움캠프(QA,QC_5기)

[내일배움캠프] QA/QC_5기 ( 31일차 )

lshxkwh 2026. 4. 20. 20:23

[ML 기초]

 

1. 데이터 수집:  (챕터 1-1)

  • 어디서 가져오나? 회사 안에 이미 데이터 마트나 웨어하우스가 있다면 SQL이나 Python으로 추출
  • 외부 수집 기술: 직접 CSV/Excel을 다운받거나, 공공데이터포털 같은 곳에서 API를 호출하거나, 최후의 수단으로 웹 페이지를 긁어오는 크롤링을 활용.
  • 꿀팁: 데이터 분석가는 이미 쌓인 데이터를 잘 요리하는 역할이 큼.

2. EDA(탐색적 분석):(챕터 1-2, 1-3).

  • Boxplot: 데이터의 '사분위수'를 보여주는데, 이상치를 한눈에 보여줌.
  • Histogram: 데이터가 어디에 바글바글 모여있는지(분포) 확인하기 좋음.
  • Scatter Plot: 두 변수가 서로 친한지(상관관계) 점을 찍어봄.
  • 실습 핵심: tips.describe(include='all') 한 줄이면 수치형뿐만 아니라 범주형 데이터의 특징까지 싹 훑을 수 있다

3. 이상치(Outlier):  (챕터 1-4)

평균을 갉아먹는 '튀는 값'들을 처리하는 법.

  • ESD(Extreme Studentized Deviation): 평균에서 표준편차의 3배 이상 떨어진 값을 범인으로 간주
  • IQR(Inter Quantile Range): 상자 그림(Boxplot)의 원리를 이용
  • 해결법: 무조건 지우기보다는 로그 변환을 통해 진정시키거나 다른 값으로 바꿀 수도 있다.

4. 결측치(Missing Value):  (챕터 1-5)

데이터에 구멍(NaN)이 있으면 모델이 학습을 거부.

  • 수치형: 보통 평균(Mean)으로 채우지만, 이상치가 너무 많을 땐 중앙값(Median)이 더 정확
  • 범주형: 가장 많이 등장하는 최빈값(Mode)으로 채움.
  • 도구: 파이썬의 fillna()나 SimpleImputer를 쓰면 마법처럼 구멍이 메워짐.

5. 인코딩(Encoding):  (챕터 1-6)

컴퓨터는 '빨강', '1등급' 같은 말을 못 알아듣는다. 오직 0과 1뿐!

  • 레이블 인코딩(Label Encoding): 글자를 숫자(0, 1, 2...)로 바꿈. 간단하지만, 모델이 2가 0보다 크니까 더 중요하네라고 착각할 수 있다는 게 치명적 단점!
  • 원-핫 인코딩(One-Hot Encoding): 각 범주를 새로운 컬럼으로 만들고 해당되면 1, 아니면 0을 줌. 모델이 헷갈릴 일이 없어서 가장 많이 쓰임.
  • 실습 도구: LabelEncoder와 OneHotEncoder를 활용해 데이터를 변신.

 


[머신러닝 기초 실시간 세션]

 

1. 데이터 수집 (Chapter 1-1) 

  • 데이터 소스 파악: 회사 내부에 OLTP DB나 로그 데이터가 있는지 먼저 확인함.
  • 수집 경로: 
    • 내부 데이터: SQL이나 Python을 써서 데이터 마트에서 직접 추출함.
    • 외부 데이터: API를 호출하거나 웹 크롤링(Crawling)을 통해 데이터를 생성함. CSV/Excel 파일 다운로드도 흔한 방법임.
  • 구조: 데이터 레이크(Raw) -> 데이터 웨어하우스(정제) -> 데이터 마트(목적별 가공) 순으로 흐름.

2. EDA(탐색적 데이터 분석) (Chapter 1-2, 1-3) 

  • 기술통계: tips.describe(include='all')로 전체적인 수치와 범주형 데이터 분포를 한눈에 파악함.
  • 시각화 (Seaborn 활용):
    • Boxplot: 사분위수를 통해 데이터 분포를 보고, 특히 이상치를 잡아내는 데 최고임.
    • Histogram: 연속형 데이터가 어느 구간에 집중되어 있는지 빈도를 확인함.
    • Scatter Plot: 두 수치형 변수 사이의 상관관계를 점으로 찍어서 확인 함.

3. 이상치(Outlier) (Chapter 1-4) 

범위에서 심하게 벗어난 값은 모델 학습을 방해함.

  • ESD 방식: 평균에서 표준편차 3배 이상 떨어진 값을 찾음. (정규분포일 때 유용함)
  • IQR 방식: Q1(25%)과 Q3(75%) 사이 거리인 IQR을 기준으로 범위를 정함. 박스플롯의 수염 바깥쪽 값들을 이상치로 봄.
  • 처리 팁: 무조건 지우기보다 데이터가 비대칭이면 Log 변환 등을 통해 완화하기도 함.

4. 결측치(Missing Value) (Chapter 1-5) 

데이터가 비어 있으면(NaN) 모델이 돌아가지 않음.

  • 수치형 대치:
    • 평균(Mean): 가장 일반적이지만 이상치에 취약함.
    • 중앙값(Median): 이상치가 많을 때 더 대표성이 있음. (예: 특정 고소득자가 평균 연봉을 확 올리는 경우 중앙값이 유리함)
  • 범주형 대치: 가장 자주 등장하는 최빈값(Mode)을 넣어줌.
  • 실행: fillna() 함수나 SimpleImputer 알고리즘을 사용해 깔끔하게 메움.

5. 인코딩(Encoding) (Chapter 1-6) 

컴퓨터는 숫자로만 대화함. '글자'를 '숫자'로 바꾸는 과정임.

  • 레이블 인코딩(Label Encoding): 범주를 0, 1, 2 등 숫자로 바꿈. 순서가 있는 데이터에 적합하지만, 모델이 숫자의 크기를 중요도로 오해할 위험이 있음.
  • 원-핫 인코딩(One-Hot Encoding): 각 항목을 컬럼으로 만들고 해당하면 1, 아니면 0을 줌. 모델이 오해할 틈이 없어서 실무에서 가장 선호함.
  • 메소드: fit으로 학습하고 transform으로 변환함. 한 번에 하려면 fit_transform을 씀.