본문 바로가기 주메뉴 바로가기

최신IT소식

머신러닝을 위한 데이터 준비 방법

관리자 2020-01-29 조회수 1,766



 머신러닝을 위한 데이터 준비 방법


모든 머신러닝 프로젝트에서 가장 중요한 단계 중 하나는 데이터를 수집, 준비, 정제하는 것입니다. 데이터는 프로젝트의 중추이며 이 초기 단계에 시간과 리소스를 투자함으로써 이후 성공을 유리한 입지를 다질 수 있습니다.

 

데이터는 프로젝트에서 가장 중요한 요소인 경우가 많습니다. 아래에서 볼 수 있듯 데이터는 알고리즘 선택보다 더 중요합니다.

 



이 그림은 미셸 뱅코와 에릭 브릴이 다양한 알고리즘과 데이터 양의 증가에 따른 각각의 정확성을 연구해 발표한 논문 ‘자연어 모호성 해소를 위한 아주아주 큰 말뭉치로의 확장(Scaling to Very Very Large Corpora for Natural Language Disambiguation)’에서 나온 것입니다.

 

거의 모든 경우 데이터의 크기가 늘어남에 따라 테스트의 정확성은 수렴하기 시작합니다. 데이터가 많을수록 대등한 결과를 제공하기 위해 필요한 알고리즘의 수준은 낮아진다는 점에서 흥미로운 연구 결과입니다.

 

이 연구 결과를 보면 알고리즘 개선보다 더 많은 데이터 수집에 투자하는 시간을 늘리는 편이 나아 보이기도 합니다. 고품질의 데이터 집합을 만들기 위해 필요한 단계를 살펴봅시다.

 

원시 데이터 수집

중요도에 비해 관심을 덜 받는 경우가 많지만 데이터 수집은 우수한 알고리즘을 얻기 위한 첫 걸음입니다. 일반적인 경험칙은 대량의 데이터 집합을 사용하는 단순한 모델이 소량의 데이터 집합을 사용하는 진보된 모델보다 성능이 더 우수하다는 것입니다.

 

데이터 크기는 애플리케이션에 따라 차이가 큽니다. 프로젝트에 따라 필요한 예제의 수도 몇 백 개 수준에서 수십억 개에 이를 수 있습니다. 그러나 손에 쥔 데이터의 품질이 높을수록 모델의 성능도 더 우수해진다는 사실을 기억해야 합니다.

 

데이터 표준화

“Garbage in, garbage out(쓰레기가 들어오면 쓰레기가 나간다)”라는 말은 무의미한 데이터가 들어오면 나가는 데이터도 무의미하다는 뜻입니다. 데이터의 출처에 따라 부가적인 포맷과 표준화가 필요할 수 있습니다. 고품질의 대량의 데이터 집합이라도 해도 데이터 포맷이 잘못되면 힘을 발휘할 수 없습니다. 이 점은 여러 출처의 데이터를 집계할 때 특히 유의해야 합니다.

 

예를 들어, 주택과 관련된 두 가지 데이터 집합에 대해 생각해 봅시다. 한 데이터 집합에는 주택 구매자의 이름이 포함된 열 하나가 있고, 다른 데이터 집합에는 구매자의 이름과 성에 대해 각각 개별적인 열이 포함될 수 있습니다. 각 집합에는 정확하고 유용한 데이터가 포함되어 있지만 이 상태로는 알고리즘에서 데이터를 다룰 수 없습니다.

 

다른 시나리오로, 그 자체가 서로 다르게 포맷된 특성 데이터가 포함되는 경우도 있습니다. 공백이 포함된 전화번호와 하이픈이 포함된 전화번호, 또는 서로 다른 포맷의 두 주소를 예로 들 수 있습니다. 모두 데이터 집합의 품질과 신뢰성을 개선하기 위해 고려해야 할 예재입니다.

 

고품질의 데이터

포맷된 데이터 집합은 성공적인 모델의 필수 요건이지만 데이터의 품질 역시 중요합니다. 데이터의 품질을 쉽게 알아볼 수 없는 경우도 있으며 결과 데이터에 확신이 들 때까지 수차례의 반복 과정이 필요할 수도 있습니다.

 

라벨링된 데이터 집합에서는 사람이 라벨을 지정하는 경우가 많고 오류도 종종 포함됩니다. 주택 가격에 라벨을 지정할 때 숫자를 빼먹거나 주택 목록을 중복 입력할 수도 있습니다. 특성 이탈점도 잠재적인 품질 손상 요소입니다. 모두 상황에 따라 변동이 크고, 요구 사항에 따라 삭제의 임계값도 달라집니다.

 

다시 주택 예시를 사용해서, 데이터 집합에 20만 달러에서 40만 달러 사이의 주택 1,000개와 100만 달러를 초과하는 주택 3개가 포함되어 있다고 가정해 보겠습니다. 이 3개의 이탈점을 데이터 집합에 포함해야 할까요? 답은 상황에 따라 다릅니다. 풀고자 하는 문제에 대해 최선의 결과를 제공하는 데이터를 선택하십시오.

 

데이터 분할

데이터를 적절히 포맷했고 품질을 확인했고 모든 관련 특성을 확보했다면, 이제 데이터를 분할할 수 있습니다. 분할을 통해 두 개의 데이터 집합을 얻게 됩니다. 하나는 모델 학습용, 다른 하나는 테스트용입니다. 데이터 분할의 표준은 50/50이 아니라 80/20입니다. 80%는 모델 학습에, 20%는 테스트와 평가에 사용됩니다.

 

각 범주에 들어가는 데이터의 비율은 이제 알았고, 어느 데이터가 어디로 가는지는 어떻게 알 수 있을까요? 일반적으로 무난한 시작은 무작위 데이터 분할입니다. 다만 이 방법이 적절하지 않은 경우도 있고 각자 처한 상황에 따라 추가적인 변경이 필요한 경우가 많습니다.

 

여기서는 우수한 머신러닝 모델을 만들기 위한 데이터 준비에 대해 간략히 살펴봤습니다. 준비하는 방법과 처음 시작하는 부분에 대한 권장 사항은 많지만 세부 사항은 당연히 각 프로젝트마다 다릅니다.

 

고품질 데이터 확보는 원활한 머신러닝 프로젝트를 위해 중요한 첫 단계입니다.

 

데이터를 준비하고 다루는 데 어떤 툴을 사용하십니까? 퀘스트 소프트웨어는 생산성을 높이고 협업을 강화하고 효율성을 높이는 데 도움이 되는 많은 솔루션을 제공합니다. 퀘스트의 다양한 제품이 데이터 준비의 첫 단계를 수행하는 데 어떤 면에서 유용하고 데이터 준비 작업을 더 빠르게 완료하는 데 어떻게 도움이 되는지 궁금하시다면, 언제든 퀘스트소프트웨어로 문의 주시기 바랍니다.

 

[ 이 포스팅의 영어 원문 보기 ]

How to prepare data for machine learning

 

 

  • 등록된 댓글이 없습니다.