데이터 전처리 필수 단계 중 하나가 ‘변수 속성 통일’입니다.
데이터 입력 단계부터 올바른 결과를 도출하려면 이 기본적인 과정을 무시할 수 없죠. 이 글에서는 왜 변수 속성을 통일해야 하는지, 그 이유와 방법을 살펴보겠습니다.
교육생들의 빈번한 실수
개인적으로 데이터 사이언스 교육을 진행하면서 있었던 경험입니다. 교육생들이 파이썬 프로그래밍 하면서 가장 많이 저지르는 실수가 있었는데요. 바로 변수의 속성을 일관되지 않게 처리하는 것입니다.
사실 알고리즘은 기계가 계산하기 때문에 숫자 형태로 알려줘야 합니다. 예를 들어, 텍스트로 제공되는 정보는 계가 이해할 수 있는 통일된 속성값으로 변환해야 합니다.
변수 속성 통일은 왜 해야 할까?
머신 러닝 모델을 효과적으로 훈련 시키려면 입력값 x를 주었을 때 원하는 출력값 y이 나오도록 하는 과정이 필수적입니다.
하지만 이 과정에서 Input이 기계가 이해하지 못하는 형태의 데이터가 들어간다면, 올바른 결과를 도출할 수 없습니다.
따라서 모든 데이터는 기계가 해석할 수 있도록 수치형 형태로 변환되어야 하며 이 과정에서 변수 속성의 일관성이 중요해집니다.
아래 그림에서 원시 데이터로부터 Input Data를 변형, 정제, 선택하는 과정을 피처 엔지니어링(Feature engineering)이라고 합니다.
숫자 타입 변수
숫자형 변수는 크게 수치형과 범주형으로 나뉘어집니다.
수치형 변수는 대소 관계를 이해하여 다양한 계산, 즉 평균이나 최대값 계산이 가능합니다. 예를 들어 연속적인 변수를 다루거나, 이산적 변수로 특정 이벤트의 횟수를 새는 데이터가 이에 해당될 수 있습니다.
한편, 범주형 변수는 다양한 카테고리를 나타냅니다. ‘머신러닝’에서는 보통 one-hot encoding 방식으로 처리해 모델이 제대로 작동하게 만듭니다. 예를 들어 성별이나 성공 여부 같은 명목형 변수는 데이터 분석에서 필수적인 변환 과정을 거쳐야 합니다.
문자 타입 변수
문자열 형태의 데이터는 기계가 인식하는 데 한계가 있습니다. 알고리즘에 feature로 넣기에 부적합하다는 말입니다. 그래서 대부분은 여부 컬럼을 파생 변수로 만들어 0과 1로 변환합니다.
텍스트를 그대로 사용하는 경우도 있는데요. 바로 ‘텍스트 마이닝’이라는 접근법을 사용하여 감성 분석, 주제 모델링, 문서 분류 등 다양한 분야에서 활용됩니다.
예를 들어, 고객 리뷰를 분석하여 제품에 대한 감성을 파악하거나, 뉴스 기사를 분석하여 주요 이슈를 파악하는 등의 작업이 가능합니다.
코드 값 통일
각 조직마다 다른 코드 체계를 사용하다 보면 동일한 개념을 설명하는 방식이 달라질 수 있습니다. 따라서 동일한 데이터 항목에 대해 일관된 코드 체계를 구축해야만 정확한 분석이 가능합니다.
예를 들어, ‘남자’, ‘남’, ‘남성’이라는 여러 표현을 각 시스템마다 사용했을 수 있습니다. 이를 하나의 값으로 변환되어야 데이터의 일관성 있게 분석할 수 있습니다.
마무리
변수 속성 통일은 데이터 전처리의 핵심이며 결국 모델의 정확성과 신뢰도를 결정짓는 중요한 작업입니다. 데이터 속성이 제대로 정리되어야 비로소 의미 있는 분석 결과를 추출하고 활용할 수 있습니다.
앞으로 여러분의 데이터 작업에서도 변수의 타입과 값을 표준화를 생각하시기 바랍니다. 항상 데이터의 기본적인 통일성을 염두에 두신다면 더 나은 결과를 기대할 수 있을 것입니다.