SW Engineering/머신러닝 딥러닝

데이터 전처리(preprocessing)와 정제(Cleansing)과정

SungWookKang 2015. 7. 16. 19:21
반응형

데이터 전처리(preprocessing)와 정제(Cleansing)과정

 

데이터 수집은 내부 데이터(이미 내가 가지고 있거나 운용할 수 있는 데이터)와 외부 데이터(카드사의 정보, 기타 외부 기관의 정보)가 있으며 대량의 데이터로부터 무작위로 표본을 추출한다. 이렇게 수집된 데이터는 그대로 활용 할 수가 없다. 수집한 데이터가 타당한 조건의 데이터인지 검증 및 정제를 하여 활용 할 수 있는 데이터로 만들어야 한다. 잘못된 샘플링(수집된 데이터) 데이터는 엉뚱한 결과를 발생 시키므로 전처리 미 및 정제 과정은 매우 중요하다.

 

변수의 유형

 

변수를 분류하는 방법에는 여러 가지가 있으며 가장 기본적으로는 수치형, 텍스트형(문자형)이 있다. 이 변수들은 다시 연속형(주어진 범위의 실수), 정수형(정수값), 범주형(일정 범위의 값을 하나의 범주로 가정)으로 나누어 진다. 여기서 범주형 변수는 수치형(1,2,3) 또는 텍스트형으로 구분되며 순위를 가지고 있지 않는 범주형과 높은 값, 낮은 값, 0의 값 등으로 순위 정보를 갖는 범주형(순위형 변수)로 나누어진다.

 

연속형 변수들은 대부분 마이닝 과정에서 처리된다. 기계학습에 기초한 데이터마이닝은 .범주형 변수를 갖는 문제를 다루는 데서 출발하였고 통계학은 기본적으로 연속형 변수에 대한 분석에 기초 한다. 경우에 따라서는 연속형 변수를 범주형 변수로 변환시키는 작업이 필요할 때가 있다. 이러한 에는 대부분 수치형 변수를 하나의 의사결정 변수로 변환시켜야 하는 경우에 나타난다. (예를 들면 일정 수치의 값에 따라 진단결과를 나타낼 때 범주형 변수로 변환 작업이 필요하다.)

 

 

범주형 변수 처리

범주형 변수는 대부분의 데이터마이닝 과정에서 다루어지지만 순위 정보를 갖고 있다면(나이 범주, 신용 정보 등) 마치 연속형 변수인 것처럼 변수를 그대로 사용한다. 범주의 수가 작을수록 그리고 값의 증가분이 균등하지 않을수록 절차는 더욱 복잡하지만 데이터마이닝에서 처리 할 수 있다. 범주형 변수를 있는 그대로 사용하지 못하는 경우도 있다. 이 경우에는 이진분류의 더미 변수로 분할 할 수 있다. 데이터마이닝 과정에서 모든 변수들을 사용해서는 안된다. 그 이유는 여분의 정보가 알고리즘의 성과를 떨어뜨리기 때문이다.

 

 

변수 선정

변수가 많을수록 모형이 꼭 더 좋은 것은 아니라는 점이다. 다른 조건이 동일할 때 모형에 바람직한 특징은 간명성(parsimory) 또는 간결성(compactness)이다. 한 가지 이유는 변수를 많이 포함할 수록 변수들 간의 간의 관계를 평가하기 위해 필요한 레코드의 수가 더 크게 증가한다.

 

 

과적합화

 

모형을 구축하는 기본적인 목적은 변수들 간의 관계를 규명하는 것이며 이를 통해 미래의 예측(독립)변수들을 이용하여 출력(종속) 변수들을 예측하는 업무를 수행하는데 있다.

 

모형에 많은 변수를 포함시킬수록 데이터를 과적합화(overfitting)시킬 위험은 더욱 커지게 된다. 예측 변수를 계속 추가하면 모형의 성과를 향상 시킬 수 있고 오차를 무시할 수 있는 수준으로 줄일 수 있지만 낮은 오차율은 그럴듯한 해석(허구의 설명력)을 가지기 잘못 해석 될 수도 있다. 일부 극단치의 관계가 포함된다면 설명변수로 포함 할 수 있다. (그렇다고 좋은 예측 변수로 사용 되는 것은 아니다.)

 

만약 데이터 집합이 예측 변수의 수보다 훨씬 크지 않다면 허구의 관계가 모형에 반영될 가능성이 높다. 데이터 집합이 예측변수의 수에 비해서 매우 크다면 이럴 가능성은 상대적으로 낮다. 이러한 경우 각각의 예측 변수는 많은 수의 사례에 대해서 출력결과를 예측하는데 도움을 주며 일부 사례에 덜 의존하게 된다. 즉 그러한 관계는 뜻밖의 우연한 결과에 불과하다.

 

고차원 곡선이 타당한 모형이라 하더라도 모형을 적합시키는 데이터 집합이 충분하지 않다면 잡음을 적합시킬 가능성이 없는 저차원의 함수를 사용하는 것이 더 좋은 성과를 나타낼 수도 있다.

과적합화는 수 많은 모형을 적용하여 그 중에 가장 좋은 성과를 나타내는 모형을 선정하는 경우에 발생 한다.

 

 

필요 변수와 데이터

통계학에서는 데이터 집합과 모형의 신뢰성을 달성하기 위해 얼마의 데이터가 필요한지 이를 추정하는 절차를 제공한다. 데이터마이닝의 경우에는 요구사항이 비교적 상세하지 않으므로 경험에 의한 법칙(rules of thumb)에 의존해 데이터마이닝 작업을 수행 한다.

 

데이터가 많은 경우에도 모형에 포함되는 변수들에 대해 면밀한 주의를 기울여야 한다. 변수가 나타내는 지식은 좋은 모형을 구축하고 오차를 피하는데 도움을 줄 수 있기 때문에 행당 분야의 전문적인 지식(비즈니스에 대한 이해)을 가진 사람에게 조언을 구하는 것이 좋다.

 

일반적으로 간결성(compactness) 또는 간명성(parsimony)은 모형에서 바람직한 특성이다. X-Y 도표의 행렬표는 변수 선정에 유용하게 사용될 수 있다. 행렬표에서는 모든 변수들의 조합을 x-y도표에 의해 한눈에 볼 수 있다. 일반적으로 모형에서 상관된 변수들 중에 하나의 변수만을 포함시킨다. 이러한 개념은 모형에서 관련 없고 중복된 변수들을 제거하는 것을 의미한다.

 

 

극단치

 

많은 데이터를 처리 할수록 측정오차, 데이터 입력오류 등으로 인해 잘못 된 값이 발생할 가능성은 더욱 커진다. 만약 잘못된 값이 나머지 데이터와 같은 범위 내에 있다면 그 값은 크게 영향을 미치지 않지만 나머지 데이터 범위를 크게 벗어났다면 (소수점 자릿수, 단위 등) 사용하려고 하는 데이터마이닝 절차 중의 일부에 상당한 영향을 미친다.

 

대부분의 데이터로부터 멀리 떨어진 값들은 극단치라 불린다. 그런데 여기서 멀리 떨어진 개념이 매우 모호하다. 이 부분은 분석하는 사람의 자유재량의 의사결정이 필요한 부분이다, 대부분 이때 극단치에 대한 값을 경험에 의해 판단한다.

 

극단치를 조사하는 방법은 일반적으로 그래프를 그렸을 때 쉽게 확인 할 수 있다. (비정상적인 구간의 그래프 곡선)

 

 

결측치

 

일반적으로 레코드들은 결측치(missing value)를 포함 한다. 극단치를 갖는 레코드 수가 매우 적다면 그 레코드들은 결측치로 처리 될 수 있다. 그리고 데이터에서 제외 될 수도 있다. 그러나 변수의 수가 많을 경우 결측치의 비율이 적다 하더라도 많은 레코드에 영향을 줄 수 있다. 만약 30개의 변수들 값중에 5%가 결측치라고 하면 거의 80% 레코드를 분석 대상에서 제외되어야 한다.

 

결측치를 처리하는 방법으로는 변수의 결측치를 다른 레코드의 값들을 토대로 계산된 대체값으로 교체하는 것이다. 일부 데이터 집합에서는 매우 많은 결측치를 포함하는 변수들이 존재 한다. 이런 경우 결측치를 갖는 데이터들을 제외하면 데이터의 손실이 매우 크다 또한 대체 값으로 변환 할 경우 결측치 대체에 대한 유용성이 낮아지게 된다. 이럴 때 예측 변수가 중요하지 않다면 제외 될 수 있다.(예측 변수의 중요성을 조사 해야함)

 

모든 상황에서 자동적으로 계산하기는 쉽지 않기 때문에 개별적인 사례나 그 상황을 처리하기 위해 특별한 규칙을 정할 때에는 전문가 의한 판단이 필요하다.

 

 

데이터 정규화(표준화)

 

모형을 효과적으로 학습시키기 위해서 사전에 데이터에 대한 정규화 작업이 필요하다. 데이터를 정규화 시키기 위해서는 각 데이터에서 평균값을 뺀 후 그 값을 표준 편차로 나눈다. 사실상 정규 값은 "평균으로부터 벗어난 표준 편차 값"을 말하며 Z값(Z-score)로 불린다.

 

데이터 정규화가 필요한 이유는 군집 사례를 통해서 살펴 볼 수 있다. 군집분석은 일반적으로 레코드가 군집의 중심점 또는 다른 레코드로부터 얼마나 멀리 떨어져 있는지를 반영하는 거리를 측정치를 계산한다. 다수의 변수들이 사용될 경우(일자, 금액, 수량 등과 같은 여러 가지 유형의 단위가 사용될 것이다.) 특정 변수의 단위 (예, 금액 단위)에 따라 거리 측정치에 큰 영향을 끼친다.

반응형