데이터 분석

데이터 분석 3단계: 처리(Process) - 데이터 클리닝

MinorMiner 2022. 6. 6. 14:32

출처: 파워포인트 기본 Stock Image

앞 선 글에서도 몇 번 언급되었지만, 정제되지 않은 데이터에서는 엉뚱한 분석 결과가 나올 가능성이 크다. 'garbage data in' 하면 'garbage data out'이라고 봐야 한다. 데이터 클리닝(Data Cleaning)은 데이터 정제(Data cleansing, Data scrubbing)라고도 하고, 데이터 분석에서 필수로 수행해야 하는 작업이다. 아래는 타블로(Tableau)에서 데이터 클리닝 관련하여 제공하고 있는 학습자료에서 일부 발췌하고 내용을 덧붙였다. 

 

데이터 클리닝은 무엇인가

데이터 소스가 하나인데 자체가 제대로 관리되지 않았을 수 있다. 엉뚱한 항목에 엉뚱한 값이 들어가 있거나, 제품 등록할 때 시간이 없다고 일부 항목을 누락한 채로 등록하였을 수 있다. 각각의 데이터가 제대로 관리되어 왔다고 하더라도, 한 개 이상의 데이터를 합쳐서 사용할 때 누락이나 왜곡이 발생할 수 있다. 데이터 클리닝은 이런 데이터 집합 내에서 오류가 있거나, 손상되었거나, 형식에 문제가 있거나, 중복되었거나, 어떤 형태로든 불완전한 데이터를 수정하거나 제거하는 프로세스이다.  

 

 

 데이터 클리닝의 5가지 유형

 

데이터를 관리하는 방법이나 데이터 타입 자체가 워낙 다양하기 때문에 정형화된 데이터 클리닝 방법은 없다고 봐야 한다. 따라서 데이터 클리닝도 경험을 통해 숙련될수록 효율적으로 문제를 찾아내거나 수정할 수 있다. 다만 아래와 같이 공통되는 5 단계를 따른다면 대략적인 틀을 잡는데 도움이 될 것이다. 

 

1단계: 중복 또는 무관한 데이터 삭제

데이터 값을 행 단위(Observation, Tuple, Record)로 중복되었거나 엉뚱한 값이 들어가 있는지를 확인한다. 중복은 가장 흔한 데이터 오류 중의 하나이다. 많은 분석 작업이 복수의 소스로부터 입수한 복수의 데이터 세트를 사용하기 때문에, 엑셀의 vlookup이나, SQL 등의 Join을 하게 된다. 이럴 때 생각지도 못했던 이유로 중복 값들이 생성되기도 한다. 엉뚱한 값도 마찬가지이다. 데이터에서 특정 부분을 삭제해야 원하는 데이터를 얻을 수 있는데, 삭제 작업에 누락이 있었거나 잘못 삭제한 경우 원하지 않는 데이터가 남아있게 된다. 이런 중복 또는 무관한 데이터는 반드시 삭제되어야 한다. 

 

2단계: 구조적인 오류 수정

데이터를 다루다 보면 앞서 말한대로 여러 데이터를 합치거나, 변형시켜야 하는데, 그 과정에서 오류가 발생할 수 있다. 특정 항목의 이름을 원하는 규칙으로 생성되게 해 놓았는데, 일부 데이터에서는 적용이 안 되는 걸 확인하지 못하였을 수 있다. 또는 오타가 났거나, 대소문자가 틀렸을 수도 있다. 데이터 타입의 불일치로 인해서 생각지도 못한 많은 부분이 누락되었을 수도 있다. 누락된 데이터는 'NA' (Not Applicable)을 보이고, 분석 결과에 왜곡을 초래한다. 데이터 타입의 중요성은 추후에 다른 글로 다시 설명하겠다. 

 

3단계: 특이점에 대한 필터

극단치, 가외치, 이상점이라고 불리는 Outlier는 데이터 자체에 오류가 있을 수 있음을 시사한다. 따라서 해당 특이점을 만들어 내는 데이터를 잘 살펴봐서 오류가 있는 경우에는 삭제하는 편이 낫다. 하지만 특이점 데이터 삭제는 신중해야 한다. 그 특이점 자체가 분석 결과에 절대적인 영향을 미치는 '사실' 일 가능성도 있기 때문이다. 즉, 특이점이라는 것인 분석가의 통념에 의한 편향된 판단의 결과물이 되면 안 된다. 그러면 분석가의 사고 범주 내로 분석의 결과가 한정되어 버린다. 

 

4단계: 누락된 값에 대한 처리

다양한 이유로 데이터가 누락되어 있을 수 있다. 누락된 데이터를 처리하는 방법에는 여러가지가 있다. 첫째, 누락된 데이터가 있는 행의 값들(Observation) 전체를 삭제하는 방법이다. 이는 가장 확실하면서도 위험한 방법이다. Observation내의 다른 값들을 잃게 되기 때문이다. 따라서 데이터 삭제 시에는 신중을 기하길 바란다. 둘째, 다른 행의 값들을 바탕으로 값을 유추해서 채워 넣는 방법이다. 이 방법도 유추 자체가 확실히 가능할 경우에만 해야 한다. 그렇지 않을 경우 편향된 데이터로 인해 왜곡이 발생할 수 있다. 

 

5단계: 수정된 데이터에 대한 검증

앞의 1~4단계는 데이터 또는 분석 방법에 따라 순서가 바뀔 수 있다. 하지만 어떤 순서로 했든지 마지막에 검증이 필요하다. 이를 위해 다음과 같은 질문들을 해봐야 한다. 

 

  • 클리닝된 이후의 데이터가 타당해 보이는가?
  • 각 데이터 열(Variable, Field) 단위로 보았을 때, 적절하고 통일된 규칙이 있는가?
  • 분석을 위해 최초에 세운 가설 또는 이론을 증명 또는 반증하는가? 아니면 어떤 통찰력을 보여주는가?
  • 이후에 세울 가설 또는 이론에 대한 특정한 트렌드를 제공해주는가?
  • 만약 위의 질문들에 대한 대답이 '아니다' 라면 데이터 품질에 문제가 있다고 보는가?

여전히 데이터 품질에 문제가 있다면, 추가로 클리닝 작업을 하던지, 데이터 세트 자체를 바꿔야 한다. 분석 작업에도 많은 노력과 시간이 필요하기 때문에, 그전에 미리 데이터를 잘 정제해서 불필요한 돌아감과 시간/에너지 낭비를 방지해야 한다. 결과가 나온 후에 데이터가 잘못된 걸 발견하면 그 짜증은 이루 말할 수가 없다.