응용 머신러닝 프로세스
응용 머신러닝 문제에 대해 작업하면서 더 좋은 결과를 빠르게 얻기 위한 패턴이나 프로세스를 개발하게 됩니다.
일단 개발되면 이 프로세스를 프로젝트마다 반복해서 사용할 수 있습니다. 공정이 더 견고하고 발전할수록 신뢰할 수 있는 결과를 더 빨리 얻을 수 있습니다.
이 게시물에서는 머신러닝 문제를 해결하기 위한 프로세스를 공유하고자 합니다.
이를 다음 프로젝트의 시작점 또는 템플릿으로 사용할 수 있습니다.
5단계 체계적인 프로세스
저는 5 단계 프로세스를 사용하는 것을 좋아합니다.
- 문제 정의
- 데이터 준비
- 스팟 체크 알고리즘
- 결과 개선
- 결과 발표
이 과정에는 많은 유연성이 있습니다. 예를 들어 “데이터 준비” 단계는 일반적으로 데이터 분석(요약 및 그래프)과 데이터 준비(실험용 샘플 준비)로 나뉩니다. “스팟 체크” 단계에는 여러 공식 실험이 포함될 수 있습니다.
이것은 일종의 큰 생산 라인입니다. 자동화된 도구를 사용할 때의 가장 큰 장점은 몇 단계(예: “결과 개선”에서 “데이터 준비”로 돌아가기) 이전으로 돌아가서 데이터 세트의 새 변환을 삽입하고 중간 단계에서 실험을 다시 실행하여 어떤 흥미로운 결과가 나오고 이전에 실행한 실험과 어떻게 비교되는지 확인할 수 있다는 것입니다.
내가 사용하는 프로세스는 데이터베이스 (또는 KDD)에서 지식 발견의 표준 데이터 마이닝 프로세스에서 채택되었습니다 (자세한 내용은 데이터 마이닝 및 KDD 란 무엇입니까?를 참고하세요).
1. 문제 정의
문제를 정의하기 위해 3단계 프로세스를 사용하고 싶습니다. 저는 빨리 진행하는 것을 좋아하고 이 미니 프로세스를 사용하여 몇 가지 다른 관점에서 문제를 매우 빠르게 확인합니다.
- 1 단계 : 무엇이 문제입니까? 문제를 비공식적 또는 공식적으로 설명하고 가정 및 유사한 문제를 나열하십시오.
- 2단계: 문제를 해결해야 하는 이유는 무엇입니까? 문제 해결의 동기, 솔루션이 제공하는 이점 및 솔루션 사용 방법을 나열하십시오.
- 3단계: 문제를 어떻게 해결합니까? 문제를 수동으로 해결하는 방법을 설명합니다.
게시물에서 이 프로세스에 대해 자세히 알아볼 수 있습니다.
2. 데이터 준비
데이터 준비 초기에는 속성을 요약하고 산점도와 히스토그램을 사용하여 시각화하는 데이터 분석 단계가 포함됩니다. 또한 각 속성과 속성 간의 관계를 자세히 설명합니다. 이 작업들은 알고리즘에 손실되기 전에 문제의 맥락에서 데이터에 대해 생각하도록 만듭니다.
실제 데이터 준비 프로세스는 다음과 같이 세 단계입니다.
- 1단계: 데이터 선택: 사용 가능한 데이터, 누락된 데이터 및 제거할 수 있는 데이터를 고려합니다.
- 2단계: 데이터 전처리: 선택한 데이터를 형식화, 정리 및 샘플링하여 구성합니다.
- 3단계: 데이터 변환: 크기 조정, 특성 분해 및 특성 집계를 사용하여 기능을 엔지니어링하여 머신러닝에 사용할 수 있는 전처리된 데이터를 변환합니다.
게시물에서 데이터를 준비하는 이 프로세스에 대해 자세히 알아볼 수 있습니다.
3. 스팟 체크 알고리즘
기본적으로 테스트 하네스에서 10회의 교차 검증을 사용합니다. 모든 실험 (알고리즘 및 데이터 세트 조합)을 10 회 반복하고 정확도의 평균 및 표준 편차를 수집하여 보고합니다. 또한 통계적 유의성 테스트를 사용하여 노이즈에서 의미 있는 결과를 끌어냅니다. 상자 그림은 각 알고리즘 및 데이터 세트 쌍에 대한 정확도 결과의 분포를 요약하는 데 매우 유용합니다.
저는 알고리즘을 스팟 체크하는데, 이는 많은 표준 머신러닝 알고리즘을 테스트 하네스에 로드하고 공식적인 실험을 수행하는 것을 의미합니다. 저는 일반적으로 제가 준비한 데이터 세트의 모든 변환되고 확장된 버전을 통해 모든 주요 알고리즘 패밀리에서 10-20개의 표준 알고리즘을 실행합니다.
스팟 체크의 목표는 문제의 구조를 잘 찾아내는 알고리즘과 데이터 세트 조합의 유형을 플러시하여 집중된 실험을 통해 더 자세히 연구할 수 있도록 하는 것입니다.
이 단계에서는 성능이 좋은 알고리즘 패밀리를 사용하여 보다 집중적인 실험을 수행할 수 있지만 알고리즘 튜닝은 다음 단계를 위해 남겨집니다.
게시물에서 테스트 프로그램을 정의하는 방법에 대해 자세히 알아볼 수 있습니다.
게시물에서 스팟 검사 알고리즘의 중요성을 발견 할 수 있습니다.
4. 결과 개선
스팟 확인 후 장비에서 최상의 결과를 얻을 차례입니다. 최고 성능 알고리즘의 매개 변수에 대해 자동화된 민감도 분석을 실행하여 이를 수행합니다. 또한 최고 성능의 알고리즘의 표준 앙상블 방법을 사용하여 실험을 설계하고 실행합니다. 데이터 세트나 잘 작동하는 것으로 나타난 알고리즘 제품군에서 더 많은 것을 얻는 방법에 대해 생각하는 데 많은 시간을 할애했습니다.
여기서도 결과의 통계적 유의성이 중요합니다. 메서드에 집중하고 알고리즘 구성을 다루는 것은 매우 쉽습니다. 결과는 중요하고 모든 구성이 이미 고려되고 실험이 일괄적으로 실행되는 경우에만 의미가 있습니다. 저는 또한 문제에 대한 최고의 결과에 대한 제 자신의 개인 리더 보드를 유지하는 것을 좋아합니다.
요약하면 결과를 개선하는 프로세스에는 다음이 포함됩니다.
- 알고리즘 튜닝 : 최상의 모델을 발견하는 것이 모델 매개 변수 공간을 통한 검색 문제처럼 처리됩니다.
- 앙상블 방법: 여러 모델에 의한 예측이 결합되는 경우.
- 익스트림 피처 엔지니어링: 데이터 준비에서 볼 수 있는 속성 분해 및 집계가 한계에 도달하는 곳입니다.
게시물에서 이 프로세스에 대해 자세히 알아볼 수 있습니다.
5. 결과 발표
복잡한 머신러닝 문제의 결과는 작동하지 않는 한 의미가 없습니다. 이는 일반적으로 이해 관계자에 대한 프레젠테이션을 의미합니다. 경쟁이나 나 자신을 위해 노력하고 있는 문제일지라도 저는 여전히 결과를 발표하는 과정을 거칩니다. 그것은 좋은 습관이며 다음에 구축 할 수 있는 명확한 학습을 제공합니다.
결과를 발표하는 데 사용하는 템플릿은 다음과 같으며 텍스트 문서, 공식 보고서 또는 프레젠테이션 슬라이드 형식을 취할 수 있습니다.
- 컨텍스트(이유): 문제가 존재하는 환경을 정의하고 연구 질문에 대한 동기를 설정합니다.
- 문제 (질문) : 문제를 나가서 대답한 질문으로 간결하게 설명하십시오.
- 솔루션(Answer): 이전 섹션에서 제기한 질문에 대한 답변으로 솔루션을 간결하게 설명합니다. 구체적이어야 합니다.
- 결과: 청중의 관심을 끄는 과정에서 발견한 내용의 글머리 기호 목록입니다. 데이터에서 발견한 것, 효과가 있거나 작동하지 않은 방법 또는 여정에서 달성한 모델 성능 이점일 수 있습니다.
- 제한 사항: 모델이 작동하지 않는 위치 또는 모델이 대답하지 않는 질문을 고려합니다. 이러한 질문을 부끄러워하지 말고 모델이 탁월하지 않은 위치를 정의할 수 있다면 모델이 뛰어난 위치를 정의하는 것이 더 신뢰할 수 있습니다.
- 결론 (왜 + 질문 + 답변) : “왜”, 연구 질문 및 자신과 다른 사람들을 위해 기억하고 반복하기 쉬운 작은 패키지에서 발견한 답변을 다시 확인하십시오.
게시물에서 머신러닝 프로젝트의 결과를 사용하는 방법에 대해 자세히 알아볼 수 있습니다.
요약
이 게시물에서는 머신러닝 문제를 처리하기 위한 일반적인 템플릿을 배웠습니다.
저는 이 프로세스를 거의 실패없이 사용하며 Weka, R 및 scikit-learn, 심지어 pylearn2와 같은 새로운 플랫폼까지 여러 플랫폼에서 사용합니다.
당신의 프로세는 무엇인가요?