머신러닝 학습 어떻게 시작할까? 3. 응용 머신러닝의 프로세스
평균 이상의 결과를 제공하는 예측 모델링 문제를
통해 작업하기 위한 체계적인 프로세스
시간이 지남에 따라 응용 머신러닝 문제를 해결하기 위해 패턴이나 프로세스를 개발하여 우수한 결과를 신속하게 얻을 수 있습니다. 일단 개발되면 이후의 여러 프로젝트에서 이 프로세스를 반복해서 사용할 수 있습니다. 프로세스가 견고하고 잘 개발될수록 신뢰할 수 있는 결과를 더 빨리 얻을 수 있습니다. 이 게시물에서는 머신러닝 문제를 해결하기 위한 프로세스의 골격을 여러분과 공유하고자 합니다. 이를 다음 프로젝트의 시작점이나 템플릿으로 사용할 수 있습니다.
5단계의 체계적인 프로세스
저는 아래와 같은 5 단계 과정을 사용하는 것을 선호합니다.
- 문제 정의
- 데이터 준비
- 스팟 체크 알고리즘
- 결과 개선
- 결과 제출
이 프로세스에는 많은 유연성이 있습니다. 예를 들어, “데이터 준비” 단계는 일반적으로 데이터 분석(요약 및 그래프) 및 데이터 준비(실험을 위한 샘플 준비)로 나뉩니다. “스팟 체크” 단계에는 여러 실험이 포함될 수 있습니다.
이것은 하나의 생산 라인과도 같습니다. 자동화된 도구를 사용할 때 가장 좋은 점은 몇 단계(예 : “결과 개선”에서 “데이터 준비”로 돌아가기)이전으로 돌아가서 데이터 세트의 새로운 변환을 삽입하고 중간 단계에서 실험을 다시 실행하여 어떤 흥미로운 결과가 나오고 이전에 실행한 실험과 어떻게 비교되는지 확인할 수 있다는 것입니다.
제가 사용하는 프로세스는 데이터베이스 (또는 KDD)에서 지식 발견이라는 표준 데이터 마이닝 프로세스에서 가져온 것입니다. 보다 자세한 내용은 데이터 마이닝 및 KDD란 무엇입니까?에서 확인해 보시기 바랍니다.
1. 문제 정의
문제를 정의하기 위해 3단계 프로세스를 사용하고자 합니다. 저는 빨리 움직이는 것을 좋아하며 이 미니 프로세스를 사용하여 몇 가지 다른 관점에서 문제를 매우 빠르게 확인할 수 있습니다.
- 1 단계 : 문제는 무엇입니까? 문제를 설명하고 가정과 유사한 문제를 나열합니다.
- 2 단계 : 왜 문제를 해결해야합니까? 문제 해결에 대한 동기, 솔루션이 제공하는 이점 및 솔루션이 어떻게 사용될 것인지를 나열합니다.
- 3 단계 : 문제를 어떻게 해결할 수 있습니까? 도메인 지식을 시험하기 위해 수작업으로 문제를 해결하는 방법을 설명합니다.
이 프로세스에 대한 자세한 내용은 게시물에서 확인할 수 있습니다.
2. 데이터 준비
저는 속성을 요약하고 그것을 산점도(散點圖)와 히스토그램으로 시각화하는 데이터 분석 단계부터 시작합니다. 또한 각 속성과 속성 간의 관계를 자세히 설명하고자 합니다. 이 고된 작업은 알고리즘에 손실되기 전에 문제의 맥락에서 데이터에 대해 생각하도록 합니다.
실제 데이터 준비 프로세스는 다음과 같이 세 단계로 구성됩니다.
- 1단계: 데이터 선택: 사용 가능한 데이터, 누락된 데이터 및 제거할 수 있는 데이터를 고려합니다.
- 2 단계 : 데이터 전처리 : 선택한 데이터를 포맷, 정리 및 샘플링하여 구성합니다.
- 3단계: 데이터 변환: 크기 조정, 속성 분해 및 속성 집계를 사용하여 엔지니어링 기능을 통해 머신러닝에 사용할 준비가 된 전처리된 데이터를 변환합니다.
게시물에서 데이터를 준비하는 이 프로세스에 대해 자세히 알아볼 수 있습니다.
3. 스팟 체크 알고리즘
기본적으로 테스트 하네스에서 10 배 교차 유효성 검사를 사용합니다. 모든 실험 (알고리즘 및 데이터 세트 조합)은 10 번 반복되며 정확도의 평균 및 표준 편차가 수집되고 보고됩니다. 또한 통계적 유의성 테스트를 사용하여 노이즈로부터 의미있는 결과를 분리합니다. 상자 그림은 각 알고리즘 및 데이터 세트 쌍에 대한 정확도 결과의 분포를 요약하는 데 매우 유용합니다.
저는 체크 알고리즘을 발견하는데, 이는 많은 표준 머신러닝 알고리즘을 테스트 하네스에 로드하고 공식적인 실험을 수행하는 것을 의미합니다. 저는 일반적으로 내가 준비한 데이터 세트의 모든 변환 및 확장 된 버전의 모든 주요 알고리즘 패밀리에서 10-20 개의 표준 알고리즘을 실행합니다.
스팟 검사의 목표는 문제의 구조를 선택하는 데 능숙한 알고리즘 및 데이터 세트 조합의 유형을 선택하여 집중적인 실험을 통해 보다 자세히 연구할 수 있도록 하는 것입니다. 이 단계에서 잘 실행되는 알고리즘 제품군을 사용하여 보다 집중적인 실험을 실행할 수 있지만 알고리즘 튜닝은 다음 단계에 있습니다. 테스트 도구를 정의하는 방법에 대한 자세한 내용은 게시물에서 확인할 수 있습니다.
게시물에서 스팟 검사 알고리즘의 중요성을 발견 할 수 있습니다.
4. 결과 개선
이제 최상의 결과를 얻어낼 때입니다. 가장 잘 작동하는 알고리즘의 매개 변수에 대해 자동화된 감도 분석을 실행하여 결과를 얻어냅니다. 또한 최고 성능의 알고리즘의 표준 앙상블 방법을 사용하여 실험을 설계하고 실행합니다. 데이터 세트 또는 잘 작동하는 것으로 밝혀진 알고리즘 제품군에서 더 많은 것을 얻는 방법에 대해 생각하는 데 많은 시간을 할애했습니다.
다시 말하지만, 결과의 통계적 중요성은 여기에서 중요합니다. 방법에 집중하고 알고리즘 구성으로 플레이하는 것은 매우 쉽습니다. 결과는 중요하고 모든 구성이 이미 고려되고 실험이 일괄적으로 실행되는 경우에만 의미가 있습니다.
요약하면, 결과를 개선하는 과정에는 다음이 포함됩니다.
- 알고리즘 튜닝 : 최상의 모델을 발견하는 것이 모델 매개 변수 공간을 통해 검색 문제처럼 처리되는 경우.
- 앙상블 방법: 여러 모델에 의해 만들어진 예측이 결합되는 경우.
- 익스트림 피처 엔지니어링: 데이터 준비에서 볼 수 있는 속성 분해 및 집계를 한계까지 밀어붙이는 경우.
이 프로세스에 대한 자세한 내용은 게시물에서 확인할 수 있습니다.
5. 결과 발표
머신러닝 문제의 결과는 작동시키지 않는 한 의미가 없습니다. 이는 일반적으로 이해 관계자에게 프레젠테이션을 의미합니다. 설령 그것이 내부 프로젝트라 할지라도, 저는 여전히 결과를 제시하는 과정을 거칩니다. 이것은 좋은 습관이며 다음에 구축할 수 있는 명확한 학습을 제공합니다.
머신러닝 프로젝트의 결과를 사용하는 방법에 대한 자세한 내용은 게시물에서 확인할 수 있습니다.