머신러닝을 위해 데이터를 준비하는 방법

알고리즘은 데이터에서 학습할 수 있으므로 해결하려는 문제에 대한 올바른 데이터를 제공하는 것이 중요합니다. 좋은 데이터가 있더라도 유용한 규모, 형식 및 의미 있는 기능이 포함되어 있는지 확인해야합니다.

이 게시물에서는 기계 학습 알고리즘을 위해 데이터를 준비하는 방법을 배웁니다. 이것은 큰 주제이며 필수 사항을 다룰 것입니다. 


데이터 준비 프로세스

데이터 처리에 있어 더 엄격한 교육을 받을수록 더 일관되고 더 나은 결과를 얻을 수 있습니다. 머신러닝 알고리즘을 위해 데이터를 준비하는 프로세스는 다음 세 단계로 요약할 수 있습니다.

  • 1 단계 : 데이터 선택
  • 2단계: 데이터 전처리
  • 3단계: 데이터 변환


이 프로세스를 선형 방식으로 따를 수 있지만 많은 루프에서 반복적일 가능성이 매우 높습니다.


1 단계 : 데이터 선택

이 단계는 작업할 모든 데이터의 하위 집합을 선택하는 것과 관련이 있습니다. 사용 가능한 모든 데이터를 포함하려는 강한 욕구가 항상 있으며, “많을수록 좋다”는 격언이 유지됩니다. 이것은 사실일 수도 있고 아닐 수도 있습니다.

작업 중인 질문이나 문제를 해결하기 위해 실제로 필요한 데이터를 고려해야 합니다. 필요한 데이터에 대해 몇 가지 가정을 하고 나중에 필요한 경우 테스트할 수 있도록 이러한 가정을 기록하도록 주의하십시오.


다음은 이 과정을 통해 생각하는 데 도움이 되는 몇 가지 질문입니다.

  • 사용 가능한 데이터의 범위는 얼마입니까? 예를 들어 시간, 데이터베이스 테이블, 연결된 시스템을 통해 사용할 수 있는 모든 것을 명확하게 파악할 수 있습니다.
  • 사용할 수 없는 데이터는 무엇입니까? 예를 들어 기록되지 않거나 기록할 수 없는 데이터입니다. 
  • 문제를 해결하는 데 필요하지 않은 데이터는 무엇입니까? 데이터를 제외하는 것이 데이터를 포함하는 것보다 거의 항상 쉽습니다. 제외한 데이터와 그 이유를 기록해 둡니다.



2단계: 데이터 전처리

데이터를 선택한 후에는 데이터 사용 방법을 고려해야 합니다. 이 전처리 단계는 선택한 데이터를 작업할 수 있는 양식으로 가져오는 것입니다.

세 가지 일반적인 데이터 전처리 단계는 서식 지정, 정리 및 샘플링입니다.

  • 서식: 선택한 데이터가 작업에 적합한 형식이 아닐 수 있습니다. 데이터가 관계형 데이터베이스에 있고 플랫 파일로 제공하거나 데이터가 독점 파일 형식이고 관계형 데이터베이스 또는 텍스트 파일에 있을 수 있습니다.
  • 정리: 데이터 정리는 누락된 데이터를 제거하거나 수정하는 것입니다. 불완전하고 문제를 해결하는 데 필요하다고 생각되는 데이터를 전달하지 않는 데이터 인스턴스가 있을 수 있습니다. 이러한 인스턴스는 제거해야 할 수 있습니다. 또한 일부 속성에는 민감한 정보가 있을 수 있으며 이러한 속성은 익명화하거나 데이터에서 완전히 제거해야 할 수 있습니다.
  • 샘플링: 작업에 필요한 것보다 훨씬 더 많은 선택된 데이터를 사용할 수 있습니다. 데이터가 많을수록 알고리즘의 실행 시간이 훨씬 길어지고 계산 및 메모리 요구 사항이 커질 수 있습니다. 전체 데이터 세트를 고려하기 전에 솔루션을 탐색하고 프로토타이핑하는 데 훨씬 더 빠를 수 있는 더 작은 대표 샘플을 가져올 수 있습니다.


3단계: 데이터 변환

마지막 단계는 프로세스 데이터를 변환하는 것입니다. 작업 중인 특정 알고리즘과 문제 도메인에 대한 지식이 이 단계에 영향을 미치므로 문제를 해결할 때 전처리된 데이터의 다양한 변환을 다시 검토해야 할 가능성이 큽니다.

세 가지 일반적인 데이터 변환은 크기 조정, 특성 분해 및 특성 집계입니다. 이 단계를 기능 엔지니어링이라고도 합니다.

  • 스케일링: 전처리된 데이터에는 달러, 킬로그램 및 판매량과 같은 다양한 수량에 대한 스케일이 혼합된 속성이 포함될 수 있습니다. 데이터 특성과 같은 많은 머신러닝 방법은 지정된 기능에 대해 가장 작은 값과 가장 큰 값에 대해 0과 1 사이와 같은 동일한 배율을 갖습니다. 수행해야 할 수 있는 기능 크기 조정을 고려합니다.
  • 분해: 구성 부분으로 분할될 때 머신러닝 방법에 더 유용할 수 있는 복잡한 개념을 나타내는 기능이 있을 수 있습니다. 예를 들어 날짜 및 시간 구성 요소가 있을 수 있으며 이러한 구성 요소는 더 분할될 수 있습니다. 아마도 하루 중 시간 만 해결되는 문제와 관련이 있을 것입니다. 수행할 수 있는 피쳐 분해를 고려합니다.
  • 집계: 해결하려는 문제에 더 의미 있는 단일 기능으로 집계할 수 있는 기능이 있을 수 있습니다. 예를 들어, 고객이 시스템에 로그인할 때마다 추가 인스턴스를 삭제할 수 있는 로그인 수에 대한 카운트로 집계할 수 있는 데이터 인스턴스가 있을 수 있습니다. 수행할 수 있는 기능 집계 유형을 고려합니다.


데이터에서 기능을 엔지니어링하는 데 많은 시간을 할애할 수 있으며 알고리즘 성능에 매우 유용할 수 있습니다. 작게 시작하여 배운 기술을 기반으로 구축하십시오.


요약

이 게시물에서는 머신러닝을 위한 데이터 준비의 본질을 배웠습니다. 각 단계에서 데이터 준비 및 전술을 위한 3단계 프레임워크를 발견했습니다.

  • 1 단계 : 데이터 선택 사용 가능한 데이터, 누락된 데이터 및 제거할 수 있는 데이터를 고려합니다.
  • 2단계: 데이터 전처리 선택한 데이터를 포맷, 정리 및 샘플링하여 구성합니다.
  • 3단계: 데이터 변환 크기 조정, 속성 분해 및 속성 집계를 사용하여 기능을 엔지니어링하여 머신러닝에 사용할 수 있는 전처리된 데이터를 변환합니다.


데이터 준비는 많은 반복, 탐색 및 분석을 포함할 수있는 큰 주제입니다. 데이터 준비를 잘하면 머신러닝의 마스터가 됩니다. 지금은 데이터를 준비할 때 이 게시물에서 제기된 질문을 고려하고 항상 해결하려는 문제를 더 명확하게 표현하는 방법을 찾으십시오.

네피리티
No Comments

Sorry, the comment form is closed at this time.