최근 인터넷과 전자 기기들의 발달로 매일 엄청난 양의 데이터가 생성되고 있습니다.
그리고 자연스럽게 관련 기술인 인공지능, 머신러닝, 딥러닝 등이 주목받게 되었습니다.
실제로 많은 조직에서 이를 사용해서 큰 수익을 얻은 사례가 있는 만큼 더 이상 기업에서 무시할 수 없게 되면서 데이터 과학자, 엔지니어 등의 직업군을 채용하고 있습니다.
동시에 데이터 분석에 관한 강의, 수업, 책도 쏟아져 나오고 있습니다.
대부분의 매체에서 '데이터 분석의 8할은 전처리가 차지한다'라고 얘기할 만큼 데이터 전처리 과정에 대한 중요성을 언급하고 있습니다.
전처리가 충분히 이루어지지 않은 상태에서는 어떤 모델도 좋은 성능을 발휘하지 못합니다.
많은 머신러닝, 딥러닝 모델들이 패키지로 나와 사용하기 편하게 되었지만 유독 전처리만큼은 자동화된 툴을 찾아보기 어렵습니다.
많은 요인들이 있겠지만 가장 큰 이유는 데이터의 다양성으로 인해 하나로 일반화시키기 어렵기 때문입니다.
전처리는 대부분 현장에서 끊임없는 시도에 의해 이루어 집니다.
그렇기 때문에 데이터 과학자가 현장에서 상황에 맞는 전처리를 하기 위해서는 전처리에 관한 충분한 지식이 필요합니다.
이번 Data preprocessing에서는 데이터 전처리과 어떤 과정으로 진행되는지 그리고 각 과정에서 어떤 기술이 존재하는지를 python과 함께 알려드리려고 합니다.
오늘은 데이터 전처리에 관한 간단한 내용만 말씀드리려고 합니다.
1. 데이터
먼저 데이터의 종류에 대해 살펴보겠습니다.
주요 데이터 타입은 크게 다음과 같이 나눌 수 있습니다.
1-1. 데이터 타입
데이터 레코드
데이터 레코드란 서로 다른 자료형(수치, 문자 등)의 값을 하나로 묶음 데이터 묶음입니다.
행에 해당하는 부분이 레코드 하나이며 다양한 데이터 타입으로 이루어져 있습니다.
반대로 열에 해당하는 부분은 같은 자료형으로 이루어져 있습니다.
앞으로의 내용에서는 주로 데이터 레코드의 전처리에 대해 다루도록 하겠습니다.
멀티미디어 데이터
멀티미디어 데이터는 음성, 영상, 이미지 등의 데이터를 의미합니다.
기존에는 데이터 레코드에 대한 데이터 분석이 대부분이었지만 딥러닝의 등장으로 멀티미디어 데이터도 분석에 활용되기 시작했습니다.
그래프 데이터
그래프 데이터는 데이터 사이의 연결을 나타냅니다.
소셜 서비스가 발전하면서 한때 많은 주목을 받기도 했지만 일부 상황을 제외하고는 사용할 경우가 적어 아직 활용도가 높지는 않습니다.
1-2. 자료형
자료형이란 문자형 혹은 수치 등의 데이터 타입을 의미합니다.
데이터 타입에는 다양한 종류가 있으며 표기가 같아도 실제로는 다른 자료형인 경우도 있습니다.
Ex. binary data와 categorical data 저장 방식에는 차이가 존재합니다.
특히 전처리를 수행할 때는 행과 열의 개념이 중요합니다.
행 단위 전처리는 서로 다른 자료형을 하나로 묶어서 처리하게 됩니다.
반면에 열 단위 전처리는 특정 자료형에 대한 전처리가 이루어집니다.
2. 전처리의 역할
전처리란 어떠한 데이터 분석에 앞서 준비하기 위한 처리를 의미합니다.
데이터 분석 대상은 크게 3가지로 나눌 수 있습니다.
지표, 표, 그래프 작성용 전처리
표나 그래프로 쉽게 변환할 수 있는 데이터를 준비하기 위한 전처리 과정으로 필요한 범위만큼 존재하는 데이터를 추출합니다.
지도학습용 전처리
지도학습 모델이 이용할 학습데이터(검증 데이터 포함), 테스트 데이터를 준비하는 것이 목적입니다.
여기서 학습 데이터와 검증 데이터는 같은 데이터이기 때문에 동일한 전처리를 해주고 나누게 됩니다.
또한 특정 모델이 이용할 수 있도록 알맞은 처리를 해주어야 합니다.
비지도학습용 전처리
비지도학습 모델이 이용할 설명 변수를 가진 데이터를 준비하는 전처리 과정입니다.
여기서도 사용할 모델에 맞는 특별한 처리가 있다면 해주어야 합니다.
Ex. 정규화
3. 전처리의 흐름
데이터 구조 대상의 전처리
데이터 구조 대상의 전처리는 여러 행에 걸쳐 데이터 전체를 아우르는 처리입니다.
대부분 많은 양의 데이터를 다루며, 비교적 빠른 단계에서 진행됩니다.
특정 데이터를 추출하거나 결합, 늘리기 등을 합니다.
데이터 내용의 전처리
데이터 내용 대상의 전처리는 데이터 행에 대한 처리입니다.
행 단위로 독립적인 처리가 가능한 소규모 데이터를 다룹니다.
따라서 전처기 과정 중 후반에 주로 구현하며, 조건을 변경하여 반복 검증하는 일이 많습니다.
일별 데이터를 월별 데이터로 변환하거나 숫자 데이터의 열을 조합해 새로운 숫자 열을 생성합니다.
이번 시간에는 데이터 타입과 전처리 과정에 대해 간단하게 살펴보았습니다.
앞으로의 내용 중에 실제로 업무에서 진행하는 동안 쓰이지 않을 기법도 많이 등장할 수 있습니다.
하지만 위에서 언급드렸던 것처럼 데이터와 상황이 다양한 만큼 전처리의 방향도 다양합니다.
따라서 알아두면 꼭 써먹을 일이 있을 수 있으니 이번 기회에 전처리에 대해서 집중적으로 공부해 보시면 좋을 것 같습니다.
포스팅 내용 중 다른 생각이 있는 분 혹은 수정해야 할 부분이 있으시면 댓글을 통해 그 의견을 나눠보면 너무 좋을 것 같습니다.
※ 본 포스팅의 내용은 데이터 전처리 대전을 참고하였습니다.
'Data preprocessing' 카테고리의 다른 글
[데이터 전처리#6] 데이터 구조 전처리 - 전개 (0) | 2023.07.10 |
---|---|
[데이터 전처리#5] 데이터 구조 전처리 - 생성 (1) | 2023.07.10 |
[데이터 전처리#4] 데이터 구조 전처리 - 결합 (0) | 2023.07.04 |
[데이터 전처리#3] 데이터 구조 전처리 - 집약 (0) | 2023.07.04 |
[데이터 전처리#2] 데이터 구조 전처리 - 추출 (0) | 2023.07.02 |