모노산달로스의 행보
[Machine Learning] 데이터 전처리 과정, 데이터 셋 분리하기, 특성 스케일링(Data Preprocessing) 본문
[Machine Learning] 데이터 전처리 과정, 데이터 셋 분리하기, 특성 스케일링(Data Preprocessing)
모노산달로스 2024. 7. 4. 14:28MachineLearning - 데이터 전처리
머신러닝은 데이터를 분석하고 패턴을 학습하여 자동으로 예측하거나 결정을 내리는 기술입니다. 다양한 산업에서 효율성을 극대화하고 혁신을 촉진하기 때문에 머신러닝은 현재 주목받는 기술입니다. 이러한 상황에서 미래 기술 발전의 핵심 역량을 갖추기 위해서 머신러닝의 공부는 필수적입니다.
데이터 전처리
데이터 전처리란? 머신러닝에 사용 할 데이터를 가공하고 필터링하고 인코딩하는 것입니다. 데이터 전처리는 누락된 데이터와 같은 데이터 문제를 제거하기 위해서 이루어집니다. 데이터 기반 알고리즘에서 데이터의 품질이 그 결과를 결정합니다. 즉, 데이터 전처리를 통해서 좋은 품질의 데이터를 만들어야만 좋은 학습 결과를 얻어낼 수 있다는 이야기입니다.
지금부터 데이터 전처리 과정에 대해서 차근차근 알아보겠습니다.
독립 변수와 종속 변수
Country | Age | Salary | Purchased |
France | 44 | 72000 | No |
Spain | 27 | 48000 | Yes |
Germany | 30 | 54000 | No |
Spain | 38 | 61000 | No |
Germany | 40 | Yes |
위와 같은 데이터가 있다고 가정하겠습니다. 여기서 독립 변수는 무엇이고 종속 변수는 무엇일까요?
독립 변수란 다른 변수에 의해 영향을 받지 않는 변수를 의미합니다. 예를 들어 나이는 독립 변수입니다. 두 사람이 같은 날에 태어나면, 어떻게 살았던 두 사람은 같은 나이를 가지게 됩니다. 위 표에서는 국가, 나이, 봉급이 독립 변수가 됩니다.
종속 변수란 다른 변수나 요소에 의존하는 변수입니다. 예를 들어 내일 시험이 있다고 가정하면, 시험의 결과는 그동안 공부한 시간의 양에 따라서 결정됩니다. 여기서 시험의 결과가 바로 종속 변수가 되고 공부한 시간은 독립 변수가 되는 것입니다. 위 표에서는 구매 여부가 종속 변수가 됩니다.
결측 데이터 처리하기
앞서 설명했듯이, 데이터의 품질은 학습의 품질을 결정합니다. 누락된 데이터는 그 품질을 떨어뜨리기 때문에 전처리 과정에서 처리해주어야 합니다. 예를 들어 위 표에서 마지막 행의 봉급이 적혀있지 않습니다. 이러한 결측 데이터를 처리하는 방법은 두 가지로 나누어집니다.
데이터의 규모가 커 결측 데이터를 무시해도 된다면, 관측치를 삭제해버릴 수 있습니다. 다른 방법으로는, 해당 열의 다른 모든 값의 평균 값으로 대체하는 방법이 존재합니다.
범주형 데이터 처리
범주형 데이터(Categorical data)란 클래스로 분류되는 데이터를 의미합니다. 즉, 위 표에서 문자열로 이루어진 국가 데이터는 범주형 데이터입니다. 학습을 수행할 때 이러한 데이터를 구분하지 못하기 때문에 반드시 수치형 데이터(Numerical data)로 변환을 시켜주어야 합니다. 이러한 과정을 인코딩(Encoding)이라고 합니다.
한 예시로 원 핫 인코딩(One-hot encoding)이 존재합니다. 0과 1을 통해서 각 범주를 구별하고 그 크기는 범주의 수에 맞게 만들어집니다. 위 표에서 France, Spain, Germany 세 개의 범주가 존재합니다. 따라서 이들을 원 핫 인코딩으로 수치형 데이터로 바꾸어주면, 100, 010, 001과 같은 결과로 바뀌게 됩니다.
데이터 셋 분리하기
데이터 전처리 단계에서 훈련 데이터와 테스트 데이터를 나누어줍니다. 훈련 데이터는 머신 러닝을 학습할 때 사용합니다. 훈련 데이터가 많을 수록 정확도가 올라갑니다. 테스트 데이터는 새 관측치에 대한 모델의 성능을 평가하기 위해 사용합니다. 새 관측치는 배포 후 관측하게 되는 데이터와 동일하게 취급됩니다.
특성 스케일링
특성 스케일링이란 모든 특성을 동일한 스케일로 변환하는 것입니다. 예를 들어서 나이의 값은 1 ~ 100 사이의 값을 가지지만 봉급은 그보다 큰 단위인 10000 이상의 값을 가지게 됩니다. 이러한 차이 때문에 나이 특성이 봉급 특성에 비해 너무 작게 평가되어 무시될 수 있습니다. 따라서 특성 스케일링을 통해 이러한 문제를 보완하는 것입니다.
특성 스케일링은 표준화(Standardization)과 정규화(Normalization) 두 종류로 나누어집니다.
표준화(Standardization)는 특성의 모든 값에서 평균을 뺀 후 분산의 제곱근인 표준편차로 나누어줍니다. 그렇게 되면 특성값이 -3에서 3 사이의 값으로 조정됩니다.
정규화(Normalization)는 특성의 모든 값에서 최솟값을 뺀 후 최댓값과 최솟값의 차로 나누어줍니다. 그렇게 되면 분모가 분자보다 항상 크기때문에 0과 1 사이의 값으로 조정됩니다.
데이터가 정규분포(Normal Distribution)를 따르는 경우 정규화를 사용하는 것이 유리하고, 대부분의 경우 표준화를 사용하는 것이 좋습니다.
'AI > MachineLearning' 카테고리의 다른 글
[Machine Learning] 다항식 선형 회귀(Multiple Linear Regression) (0) | 2024.07.18 |
---|---|
[Machine Learning] 다중 선형 회귀(Multiple Linear Regression) (0) | 2024.07.11 |
[Machine Learning] 단순 선형 회귀(Simple Linear Regression) (0) | 2024.07.09 |