머신러닝을 위한 데이터와 문제 정의
머신러닝(Machine Learning, ML) 모델을 만들기 위해서는 데이터를 사람이 이해하는 자연어, 이미지, 소리 형태에서 숫자 형태로 변환해야 합니다. 즉, 모델이 이해할 수 있는 벡터, 행렬, 텐서 형태로 표현하는 과정이 필요합니다.
- Input (입력): 모델이 학습할 데이터 → 숫자 벡터/행렬/텐서 형태
- Output (출력, 레이블): 예측하고자 하는 목표 → 숫자나 범주 형태
머신러닝의 핵심은 결국 데이터를 적절한 형태로 변환하고, 그 데이터에서 패턴을 찾아내는 것입니다.
데이터의 다양한 형태
정형 데이터 (Structured Data)
정형 데이터는 열과 행으로 구성된 테이블 형태로, 각 변수(feature)가 의미 있는 값을 갖는 경우를 말합니다.
- 주로 엑셀, CSV(Comma-Separated Values) 파일 형태
- 데이터베이스에 저장된 테이블도 포함
수치형 변수 (Quantitative / Numerical)
- 연속형 변수(Continuous): 특정 범위 내에서 무한히 많은 값을 가질 수 있는 변수
- 이산형 변수(Discrete): 특정 값만 가질 수 있는 변수
범주형 변수 (Categorical / Qualitative)
- 명목형 변수(Nominal): 순서가 없는 범주
- 예: 성별(여/남), 혈액형(A/B/O/AB)
- 순위형 변수(Ordinal): 순서가 있는 범주
- 예: 만족도(불만족 < 보통 < 만족), 학년(1학년 < 2학년 < 3학년)
비정형 데이터 (Unstructured Data)
비정형 데이터는 고정된 구조가 없는 데이터로, 일반적으로 텍스트, 이미지, 동영상, 음성 등 사람에게 친숙한 형태를 가집니다.
- 텍스트 데이터 → NLP (Natural Language Processing)
- 이미지, 동영상 → CV (Computer Vision)
- 음성, 음악 → Speech/Audio Processing
도메인별 데이터 처리 방법
범주형 데이터의 인덱싱
범주형 데이터를 머신러닝에서 처리하기 위해 숫자 인덱스로 변환합니다.
예시는 다음과 같습니다:
| 변수 | 변환 예시 |
|---|
| 성별 | 여성(0), 남성(1) |
| 거주지역 | 서울(0), 경기(1), 강원(2) |
| 알파벳 | a(0), b(1), c(2), … |
주의: 단순 인덱싱은 모델이 순서를 학습할 수 있으므로, 순서가 없는 범주형 변수에는 One-Hot Encoding을 사용하는 것이 안전합니다.
텍스트 데이터의 인덱싱
글자 수준(Char-level) 인덱싱
텍스트를 글자 단위로 숫자로 변환
- 예: a(0), b(1), c(2), …
- "cat" → [2,0,19]
- "Hello" → [33,4,11,11,14]
단어 수준(Word-level) 인덱싱
텍스트를 단어 단위로 숫자로 변환
- "Hello World" → [101, 2057] (예시: 토크나이저를 통한 인덱싱)
- NLP 모델은 보통 단어 수준, 서브워드 수준, 혹은 문장 수준 인코딩 사용
텍스트를 숫자로 변환함으로써, 문장이나 단어를 벡터로 표현하고 모델이 의미를 학습할 수 있습니다.
이미지 데이터의 처리
이미지는 RGB(Red, Green, Blue) 색상 채널을 통해 숫자로 표현합니다.
- 각 색상 채널: 0~255 사이 값
- 이미지 한 픽셀 → [R, G, B] 벡터
- 전체 이미지 → (높이 × 너비 × 3) 형태의 행렬
예: 28×28 흑백 이미지 → 28×28 행렬 (값 0~255)
동영상은 이미지 프레임을 시간 순서대로 쌓아 3차원 이상의 텐서로 표현할 수 있습니다.
음성 데이터 처리
1) Raw Wave
- 마이크 입력 신호를 일정 주기로 샘플링 → 연속된 숫자 벡터로 변환
- 샘플링 주파수: 44,100 Hz, 48,000 Hz 등
2) 스펙트로그램
- 푸리에 변환(FFT)으로 시간-주파수 영역에서 음성을 시각화
- 주파수 대역별 강도를 색이나 밝기로 표현
- 음성 인식, 음악 장르 분류 등에서 활용
음성 처리 분야를 Speech Processing / Audio ML이라고 합니다.
추천 시스템 데이터 처리
추천 시스템은 정형과 비정형 데이터를 모두 활용합니다.
- 정형 데이터: 평점, 구매 기록, 방문 기록
- 비정형 데이터: 리뷰 텍스트, 상품 이미지, 동영상 등
- 목표: 사용자가 관심 가질 콘텐츠를 예측하고 추천