목차
1. 데이터 전처리의 중요성
1-1 데이터 전처리란
1-2 데이터 전처리의 중요성
2. 데이터의 유형
2-1 정형 데이터(Structured Data)
2-2 비정형 데이터(Unstructured Data)
2-3 반정형 데이터(Semi-Structured Data)
3. 데이터 전처리 과정
3-1 데이터 수집
3-2 데이터 정제
3-3 데이터 변환
3-4 데이터 통합
1. 데이터 전처리의 중요성
1-1 데이터 전처리란
데이터를 분석하거나 머신러닝 모델에 사용하기 전에 깨끗하고 유용한 상태로 준비하는 과정이다.
데이터 수집 후 비어 있는 값(결측값), 잘못된 값(오류 데이터), 불필요한 값(중복 데이터)이 존재할 수 있다.
즉, 데이터 전처리는 이를 수정하고 정리하는 과정이다.
데이터 전처리 과정을 거치지 않으면, 분석 결과가 엉뚱하게 나올 수 있다.
1-2 데이터 전처리의 중요성
- 데이터 품질은 결과에 영향을 미친다
- 예) 고객 나이 데이터에 잘못된 값(150세 등)이 포함되어 있다면 분석 결과가 왜곡될 수 있다.
- 모델 성능에 영향을 미친다.
- 예) 결측값이 많은 데이터를 그대로 모델이 입력하면, 모델이 제대로 학습하지 못하거나 성능이 크게 떨어질 수 있다.
- 시간과 비용을 절약한다.
- 예) 중복 데이터를 미리 제거하면, 데이터 처리 속도가 빨라지고 저장 비용도 줄일 수 있다.
- 의사결정의 정확성이 향상된다.
- 예) 정확하게 정제된 판매 데이터를 기반으로 매출 분석을 수행하면, 보다 신뢰할 수 있는 비즈니스 의사결정을 할 수 있다.
즉, 데이터 전처리는 데이터의 품질을 높이고, 분석이나 모델링의 결과를 신뢰할 수 있게 한다.
데이터를 잘 정리하지 않으면 잘못된 결과를 초래하고, 시간과 비용이 낭비될 수 있다.
전처리는 단순한 작업이 아니라, 성공적인 데이터 프로젝트의 필수적인 단계이다.
2. 데이터의 유형
2-1 정형 데이터(Structured Data)
정형 데이터는 행(row)과 열(column)로 구성되어 있는, 잘 정리된 데이터를 의미한다.(= Table 형식)
예를 들어, 데이터베이스, 엑셀 파일 등이 정형 데이터에 속한다.
특징
- 데이터가 표처럼 정렬 되어 있다.
- 각 열에 이름(필드명)과 데이터 유형(숫자, 문자열 등)이 정해져 있다.
| 고객 ID | 이름 | 나이 | 구매금액 |
| 101 | Alice | 29 | 15000 |
| 102 | Bob | 36 | 20000 |
이와 같이 행(row)과 열(column)로 구성된 표형태의 데이터가 정형 데이터이다.
예) 은행 고객 정보 데이터베이스, 온라인 쇼핑몰 주문 데이터 등
2-2 비정형 데이터(Unstructured Data)
비정형 데이터는 고정된 구조가 없는, 정리되지 않은 데이터를 의미한다.
예를 들어, 이미지, 동영상, 텍스트 파일 등이 비정형 데이터에 속한다.
특징
- 데이터의 모양이나 구조가 일정하지 않다.
- 분석하려면 먼저 데이터를 가공해야 한다.
예) SNS 게시글, 뉴스 기사 텍스트, 이미지 파일, 영상 파일 등
예를 들어, SNS 감성 분석(Sentiment Analysis)에서는 사용자가 작성한 텍스트 데이터를 분석하여 긍정 또는 부정 감정을 분류하기도 한다.
2-3 반정형 데이터(Semi-Structured Data)
반정형 데이터는 정형 데이터와 비정형 데이터의 중간 단계로 데이터에 구조는 있지만, 정형 데이터처럼 엄격하지 않다.
대표적으로 JSON과 XML 같은 파일이 반정형 데이터에 속한다.
특징
- 데이터가 구조가 있지만, 형태가 유연하다.
- 사람이 읽을 수 있으며, 컴퓨터도 처리할 수 있다.
예) JSON 데이터
{
"name": "Alice",
"age": 30,
"city": "New York"
}
예) 웹 API에서 데이터를 가져올 때 대부분 JSON 형태의 반정형 데이터로 제공된다.
3. 데이터 전처리 과정
데이터 전처리는 다음과 같은 순서로 진행된다.
각 단계는 데이터의 품질과 활용도를 높이는 데 초점이 맞춰져 있다.
데이터 수집 → 정제 → 변환 → 통합
3-1 데이터 수집
데이터를 가져올 출처를 결정하고, 필요한 데이터를 수집한다.
데이터가 불완전하거나, 오류가 있을 수 있기 때문에 수집한 데이터의 품질을 확인해야 한다.
주로 데이터는 다음과 같은 곳에서 수집할 수 있다.
- 데이터베이스
- API
- 웹 크롤링
- 센서 데이터
예)
- 공공데이터 API를 통해 교통 데이터를 수집
- 웹 크롤링을 통해 뉴스 기사 데이터 수집
- IoT 센서를 통해 환경 데이터 수집
3-2 데이터 정제(Cleaning)
수집한 데이터는 불완전하거나 오류가 있을 수 있기 때문에 데이터 정제 단계를 거쳐야 한다.
데이터 정제는 위와 같은 문제를 해결하여 데이터를 깨끗하게 만드는 단계이다.
데이터를 정제하지 않으면, 이후 단계에서 잘못된 결과를 얻을 가능성이 높아진다.
예) 학생 성적 데이터에서 점수가 10점이나 200점처럼 비정상적인 값이 있다면, 이를 수정하거나 제거해야 한다.
주로 데이터 정제는 다음과 같은 작업을 거친다.
이런 처리들은 다 pandas를 통해 처리할 수 있다.
- 결측 값 처리 : 데이터에 비어 있는 값(.NaN, Null)이 있을 경우 처리한다.
- 예) 평균값, 중앙값으로 채우기 or 해당 데이터 삭제하기
- pandas 메서드 - 채우기 : fillna() 삭제하기 : dropna(), isnull() : 결측값 여부 확
- 오류 수정 : 잘못된 데이터(오타, 잘못된 값 등)을 수정한다.
- 예) 성별 데이터 Male, male, M... 등 같은 의미의 데이터가 서로 다른 형태로 존재할 경우, 하나의 형태로 통일해야 한다.
- 중복 제거 : 동일한 데이터가 여러 번 나타나는 경우 삭제한다.
- 예) 정보가 중복되어 있는 경우 하나만 남기기
- pandas 메서드
- duplicated(subset=...) : 특정 컬럼 기준 중복 여부 확인
- drop_duplicates(subset=..., keep=...) : 특정 컬럼 기준 중복 행 삭제
- 이상치 제거 : 너무 크거나 작은 값 등 정상적이지 않은 값을 처리한다.
- 예) 평균 키가 170cm인 데이터에서 300cm와 같은 값이 있다면 이상치로 판단할 수 있다.
- pandas 메서드
- .quantile() : IQR 계산을 위한 사분위수(Q1, Q3) 계산
- loc[] : 조건에 맞는 데이터 선택 및 수정
3-3 데이터 변환(Transformation)
데이터 변환은 정제된 데이터를 분석과 모델링에 적합한 형태로 변환하는 단계이다.
이 과정을 통해 데이터를 해석하기 쉽게 하고, 모델링 과정에서 성능을 향상시킨다.
예) '남성', '여성'과 같은 텍스트 데이터를 0과 1 같은 숫자 값으로 변환하여 머신러닝 모델이 학습할 수 있도록 만든다.
주로 데이터 변환은 다음과 같은 작업을 거친다.
- 형태 변환 : 데이터를 사용 목적에 맞게 바꾼다.
- 예) 텍스트 데이터를 숫자로 인코딩
- scikit-learn 라이브러리에서 Label Encoding, One-Hot Encoding 등의 기능을 사용할 수 있다.
- 정규화(Normalization) : 데이터 범위를 일정하게 조정한다.
- 예) 가격 데이터를 0~1사이로 변환하여 비교 가능하게 만들기
- scikit-learn의 preprocessing 모듈에 MinMaxScaler, StandardScaler와 같은 클래스가 제공된다.
- 집계(Aggregation) : 데이터를 요약하거나 그룹화한다.
- 예) 일별 데이터를 월별로 집계하기
- 차원 축소 : 불필요한 데이터를 제거하여 데이터 크기를 줄인다.
- 예) 머신러닝 모델에서 중요하지 않은 열 제거하기
데이터 처리 단계에서 자주 사용하는 라이브러리
데이터 수집 : requests, selenium
데이터 정제 : pandas
데이터 변환 : scikit-learn
3-4 데이터 통합(Integration)
데이터 통합은 다양한 데이터 자원에서 수집한 데이터를 하나로 합치는 과정이다.
데이터가 여러 개의 테이블, 파일, 시스템에 분산되어 있을 수 있기 때문에, 통합 과정이 필요하다.
단, 데이터의 의미와 관계를 잘 이해하지 않으면, 잘못된 결합이 발생할 수 있다.
데이터를 결합하는 방식은 2가지가 있다.
1) 데이터를 옆으로 결합하는 방식
- 연관관계가 있는 두 개의 테이블을 연결하는 방식
- SQL의 JOIN과 유사
- pandas에서는 merge() 함수 사용
2) 데이터를 아래로 결합하는 방식
- 데이터셋을 행(row) 기준으로 연결하는 방식
- pandas에서는 concat() 함수 사
주로 데이터 통합은 다음과 같은 작업을 거친다.
- 데이터 병합(Merging) : 두 개 이상의 데이터셋을 결합한다.
- 예) 고객 정보와 구매 데이터를 연결
- 일관성 유지 : 서로 다른 데이터의 포맷과 구조를 맞춘다.
- 예) 날짜 포맷은 'YYYY-MM-DD' 형식으로 통일
- 중복 제거 : 통합된 데이터에서 중복된 항목을 제거한다.
예를 들어 고객 정보 데이터와 구매 데이터를 결합하면, 고객별 구매 내역을 분석할 수 있는 데이터셋을 만들 수 있다.
'머신러닝&딥러닝' 카테고리의 다른 글
| 머신러닝 & 딥러닝 기초 8편 | 데이터 변환 및 스케일링 (0) | 2026.03.13 |
|---|---|
| 머신러닝 & 딥러닝 기초 7편 | 데이터 정제(결측치, 이상치 처리 등) (1) | 2026.03.12 |
| 머신러닝 & 딥러닝 기초 5편 | 데이터 저장 방법 (CSV, Excel, JSON, SQLite) (0) | 2026.03.12 |
| 머신러닝 & 딥러닝 기초 4편 | API를 활용한 데이터 수집 (REST API) (1) | 2026.03.11 |
| 머신러닝 & 딥러닝 기초 3편 | 웹 스크래핑 기초: HTML, BeautifulSoup (0) | 2026.03.11 |