『 '데이널'의 컨텐츠에 포함된 정보는? 』
변수 속성을 통일해야 하는 이유를 아시나요?
데이터 전처리에서 변수 명명규칙과 정제를 끝냈다면 다음은 변수 속성을 통일해야 합니다. 이유는 사람이 아니라 머신(기계)이 계산을 해야 하기 때문이죠. 그래서 '머신 러닝'이라 합니다.
머신 러닝은 입력값 x가 주어졌을 때, 출력값 y를 내보냅니다. 즉, Input이 들어가 알고리즘에 의해 output이 출력되는 형태입니다. 여기서 중요한 점은 머신 러닝 알고리즘은 숫자만 인지하기 때문에 변수 속성을 기계가 인지할 수 있는 형태로 통일해 주어야 합니다.(아래 그림 참조)
이 개념은 머신 러닝을 프로그램을 만들어 본 사람은 당연하다고 말할 수도 있는데요. 교육을 하다 보면 처음 데이터 분석을 배우는 교육생 중 가장 많이 실수하는 부분이 이 부분입니다.
의외로 많은 사람들이 일반적인 문자를 그대로 feature(속성)로 넣는 경우를 볼 수 있는데요. 문자 형태인 텍스트는 일반적인 머신 러닝 알고리즘에서는 활용 가능한 숫자 형태로 변경해 주어야 합니다. 단, 텍스트 마이닝을 통해 알고리즘에서는 텍스트 자체를 넣기도 합니다.
숫자 타입 속성 통일
숫자타입도 수치형 변수와 범주형 변수 두개로 나눕니다. 통계학 용어로 수치형을 양적 변수, 범주형을 질적 변수라고 부르기도 합니다.
수치형 변수는 숫자로 대소 관계가 있어 계산이 가능합니다. 예를 들어, 평균, 최대, 최소의 값의 의미가 있다는 말입니다. 숫치형의 경우 이산형과 연속형으로 다시 세 분류할 수 있습니다.
1. 수치형 변수
이산형
이산형은 값이 '점'으로 있는 것을 말합니다. 이산적인 값을 갖는 데이터로 출산 횟수, 방문수 등과 같이 연속된 값은 아닙니다. 다시 말해, 수치적인 의미는 가지고 있으나 소수점으로 표현되지 않는 경우가 이에 해당됩니다.
연속형
연속형은 말 그대로 연속적인 값을 갖는 데이터를 말합니다. 예를 들어, 신장(키), 체중 등이 이에 해당됩니다. 수치적인 의미가 있으며, 소수점으로 표현되는 경우가 되겠습니다.
2. 범주형 변수
명목형
범주형 변수는 몇 개의 범주로 나누어진 자료를 의미합니다. 그중에서 명목형은 성별, 성공여부, 혈액형 등 단순히 분류된 자료를 의미합니다.
데이터의 값이 달라짐에 따라 좋거나 나쁘다고 할 수 없는 경우를 말합니다. 명목형의 경우 one-hot-encoding 방식으로 변환하여 사용하는 것이 좋습니다.
순서형
순서형은 개체의 값들이 이산적이며 그들 사이에 순서 관계가 존재하는 자료를 말합니다. 데이터 값이 커짐에 따라 만족도가 좋아지고 있다고 할 수 있는 경우 이를 순서형 데이터라고 합니다.
문자 타입 속성 통일
숫자 타입이 아닌 문자 타입은 아쉽지만 변수로서 기여도가 떨어집니다. 변수의 기여도가 낮다는 말은 문자를 적용할 수 있는 분석 방법이 적음을 의미합니다.
이유는 머신러닝 알고리즘은 문자열 값은 인식이 불가능하기 때문입니다. 문자타입을 활용하기 위해서는 여부(0, 1) 컬럼으로 변환해서 사용하는 방법이 있습니다. 또 한 가지는 앞에서 말한 것처럼 텍스트 분석, 즉 텍스트 마이닝이라는 분석 방법론에 활용할 수도 있습니다.
코드(값) 통일
마자막으로 코드값 통일에 대해 살펴보겠습니다. 코드값을 통일하는 특성을 분석하는 데 있어 중요합니다. 예를 들어, 여자, 여, 여성 등 여러 가지 값을 가지고 있는 경우가 있다고 했을 때 동일한 코드를 하나로 분석할 수 없습니다.
그래서 해당 코드의 다양한 값들의 통일이 필요합니다. 이때 어떤 코드값으로 통일할지는 빈도분석을 통해 최빈값으로 주는 방식을 사용할 수 있습니다.
이렇게 다양한 코드가 존재하게 되는 이유는 여러 조직에서 각기 다르게 생성되어 표준화가 안된 경우입니다. 결국, 코드 값을 통일해야 정상적인 분석 결과를 낼 수 있습니다.
마치며
결론적으로, 데이터 분석에서 변수 속성 통일은 모델을 정상적으로 돌아가기 위한 기본 단계입니다. 분석 결과의 신뢰도를 높이는 데 필수적인 과정이죠.
이 글을 통해 변수 속성 통일의 중요성을 재확하셨나요? 앞으로도 변수의 타입과 값을 어떻게 표준화할지를 항상 생각하신다면, 데이터 분석의 정확도가 높아질 거예요.
'데이터 분석' 카테고리의 다른 글
파이썬으로 분석한 알고리즘 시스템 적용 가이드 (2) | 2024.10.17 |
---|---|
데이터 스케일링(Scaling), 왜 해야 할까요? 머신러닝 모델 성능의 비밀 (0) | 2024.10.10 |
데이터 분석 실패 원인 1위? 바로 변수 명명과 정제 실수! (1) | 2024.10.04 |
Boosting 알고리즘 - XGBoost 특징 및 장단점 (6) | 2024.08.30 |
Data Imputation(데이터 대치, 결측치 처리) 및 흔한 실수들 (0) | 2024.04.30 |