기간 : 9/8 ~ 9/12
머신러닝 파트의 시작으로 본격적인 AI 과정에 돌입한 한 주
📕 4주차 리뷰
머신러닝에 대한 이론적인 내용은 초면이 아니었기에 받아들이는 과정이 어렵진 않았다. 다만 코드로 작성 시 헷갈리는 부분이 많아 실습 코드를 많이 들여다볼 필요가 있다.
강의 중에는 시간관계상 수학적인 백그라운드를 생략하고 실무적인 스킬 위주로 배우고 있지만, 행렬과 벡터의 이해가 수반되는 과정이라 혼자서 간만에 수학 공부를 좀 하고 있다.
✅ Keep
머신러닝 개요
캠프에 들어오기 전에도 개인적으로 머신러닝 관련 글을 많이 읽어둔게 의외로 이론적인 부분에서 많은 뒷받침이 되어주고 있다. 대학 때 AI로 프로젝트를 했던 경험이 새록새록 떠오른다. 학생 때 나를 많이도 괴롭혔던 SVM과 RF 알고리즘을 다시 공부하게 된다. 이제는 학부생이 아니라 실무자가 되어야 할 때다.
선형대수학
졸업하면 절대 쓸 일 없을 줄 알았던, 2학년 때 배웠던 선형대수 수업자료를 몇 년만에 다시 꺼내들었다. 대학 때 공부한 자료를 모아놓은게 정말 잘한 행동이었다. 선형변환과 벡터 부분 개념만 다듬기로 하고, 심화적인 이해에는 매달리지 않으려 한다.
💥 Problem
디테일한 부분은 헷갈리기도 하고 처음 아는 내용도 많다. 지난 한 주간 배운 것 중 나에게 유효했던 것들 몇 가지를 짚어본다.
1. 결측값 대체
누락된 값을 전체 데이터의 평균값 혹은 일정 범주 내 난수로 채우는 방법
df.isna().sum()
df.isna()
# 대표값으로 결측치 대체
# - 평균값, 기본값, 최빈값, ...
df['Phone'] = df['Phone'].fillna('010-0000-0000') # 기본값
df['Phone'] = df['Phone'].fillna('010-2345-6789') # 최빈값
df['Phone'].value_counts()
2. 데이터 정규화 & 표준화
변수마다의 숫자 단위를 통일하여 일관성 있고 직관적인 분석으로 효율성 증대
- MinMaxScaler : 0과 1 사이의 값으로 축척 조정
- Z-Score : 데이터를 표준정규분포 Z값으로 변환
정규화
- 데이터들을 보기 쉬운 범위로 재조정
- 데이터 간 상대적 거리는 유지되므로 이상치가 존재할 경우 스케일이 망가질 수 있음
- 값을 특정 범위로 지정해야 할 때 ex) KNN, K-Means, 이미지 처리
표준화
- 임의의 평균값을 기준으로 데이터들의 분포를 고르게 정렬
- 데이터의 격차와 단위가 통일되므로 공정한 비교 가능
- 정규성 또는 선형결합을 가정해야 할 때 ex) 선형회귀, 로지스틱 회귀, SVM, PCA
3. 머신러닝의 절차
- 데이터 정제(결측치, 이상치 처리)
- EDA : 데이터 파악
- 데이터 전처리 : 레이블 인코딩, 원핫 인코딩, 스케일링
- 학습/테스트 데이터 분류
- 모델 선정
- 평가
- 피드백
4. 스케일링 시 주의점
StandardScaler는 fit을 통해 데이터의 평균, 분산, 표준편차 등의 통계량을 내부적으로 저장하고, transform을 통해 그것을 원본 데이터에 적용한다.
테스트 데이터에 fit을 해버릴 경우 컴퓨터는 자신이 테스트받을 데이터의 정보를 미리 보게 되어 데이터 누설(data leakage)이 발생하고, 이는 공정한 테스트를 오염시킨다. (정답지 유출)
때문에 fit은 학습 데이터에만 해야 하고, 그것을 기준으로 테스트 데이터에는 transform만 적용해야 한다.
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test) # 테스트 데이터엔 transform만
🚩 Try
- 9/24 PCCP 대비 문제풀이 감 유지하기
- 공부는 수업내용 위주로 하되 궁금하거나 호기심 등은 모르는 채로 넘기지 않기
- 9/22 ADsP 접수 시작
- 수업내용 정리 방법 고민...
- 원래는 복습한 내용을 블로그에 투고하는 식으로 했으나 티스토리 특유의 불편함과 '형식적인 투고'가 될 우려 때문에 이 방법은 그만하기로 했다. 현재는 노션에 정리하고 있는데, 슬슬 공부량이 많아져 내 나름대로 가지치기를 할 때가 된듯하다.
- 메서드의 종류 같은 단순 암기의 영역은 어차피 수업 소스코드에 담겨있으니 별도 정리를 하지 않는다.
- 새로운 인사이트를 담은 내용이나 '이해'가 필요한 부분을 중점으로 노션에 담을 생각이다.
'SKN 19기' 카테고리의 다른 글
| [플레이데이터 SK네트웍스 Family AI 캠프 19기] 6주차 회고 (0) | 2025.09.28 |
|---|---|
| [플레이데이터 SK네트웍스 Family AI 캠프 19기] 5주차 회고 (0) | 2025.09.24 |
| [플레이데이터 SK네트웍스 Family AI 캠프 19기] 3주차 프로젝트 회고 (0) | 2025.09.06 |
| [플레이데이터 SK네트웍스 Family AI 캠프 19기] 2주차 회고 (0) | 2025.08.31 |
| [플레이데이터 SK네트웍스 Family AI 캠프 19기] 1주차 회고 (0) | 2025.08.24 |