최종 머신러닝 모델을 학습시키는 방법
새 데이터에 대한 예측을 수행하는 데 사용하는 머신러닝 모델을 최종 모델이라고 합니다.
최종 모델을 학습하는 방법에 대해 적용된 머신러닝에 혼동이 있을 수 있습니다.
이 오류는 다음과 같은 질문을 하는 현장 초보자에게 나타납니다.
- 교차 검증으로 어떻게 예측합니까?
- 교차 검증에서 어떤 모델을 선택합니까?
- 학습 데이터 세트에서 모델을 준비한 후 모델을 사용하나요?
이 게시물은 혼란을 해소할 것입니다. 이 게시물에서는 새 데이터에 대한 예측을 수행하기 위해 머신러닝 모델을 마무리하는 방법을 알아봅니다.
최종 모델이란 무엇입니까?
최종 머신러닝 모델은 새 데이터에 대한 예측을 수행하는 데 사용하는 모델입니다.
즉, 입력 데이터의 새로운 예제가 주어지면 모델을 사용하여 예상 출력을 예측하려고 합니다. 이것은 분류 (레이블 지정) 또는 회귀 (실제 값)일 수 있습니다.
예를 들어 사진이 개사진인지고양이 사진인지 또는 내일의 예상 판매량인지 여부입니다.
머신러닝 프로젝트의 목표는 최상의 성능을 발휘하는 최종 모델에 도달하는 것입니다. 이 모델에서 “최고”는 다음과 같이 정의됩니다.
- 데이터: 사용 가능한 기록 데이터입니다.
- 시간: 프로젝트에 소비해야 하는 시간입니다.
- 절차: 데이터 준비 단계, 알고리즘 또는 알고리즘 및 선택한 알고리즘 구성.
프로젝트에서 데이터를 수집하고, 시간을 보내고, 데이터 준비 절차, 사용할 알고리즘 및 구성 방법을 검색합니다.
최종 모델은 이 프로세스의 정점이며, 실제로 예측을 시작하기 위해 추구하는 끝입니다.
학습/테스트 세트의 목적
학습 세트와 테스트 세트를 사용하는 이유는 무엇입니까?
데이터 세트의 학습 및 테스트 분할을 만드는 것은 문제에 대한 알고리즘의 성능을 빠르게 평가하는 한 가지 방법입니다.
학습 데이터 세트는 모델을 준비하고 학습하는 데 사용됩니다.
테스트 데이터 세트가 출력값이 알고리즘에서 보류되는 새 데이터인 것처럼 가장합니다. 테스트 데이터 세트의 입력에 대해 학습된 모델에서 예측을 수집하고 테스트 세트의 보류된 출력 값과 비교합니다.
테스트 데이터 세트의 예측과 보류된 출력을 비교하면 테스트 데이터 세트의 모델에 대한 성능 측정값을 계산할 수 있습니다. 이것은 보이지 않는 데이터에 대한 예측을 할 때 문제에 대해 훈련된 알고리즘의 기술을 추정 한 것입니다.
더 자세히 설명해 보겠습니다.
알고리즘을 평가할 때 실제로 훈련 데이터가 준비된 방법(예: 스케일링), 알고리즘 선택(예: kNN) 및 선택한 알고리즘이 구성된 방법(예: k=3)을 포함하여 절차의 모든 단계를 평가합니다.
예측에 대해 계산된 성능 측정값은 전체 절차의 기술을 추정한 것입니다.
우리는 다음과 같은 성능 측정을 일반화합니다.
- “테스트 세트에 대한 절차의 기술“
으로부터
- “보이지 않는 데이터에 대한 절차의 기술“.
이것은 상당한 도약이며 다음을 요구합니다.
- 이 절차는 기술 추정치가 보이지 않는 데이터에서 실제로 기대하는 것과 비슷할 정도로 충분히 강력합니다.
- 성능 측정의 선택은 보이지 않는 데이터에 대한 예측에서 측정하려는 것을 정확하게 캡처합니다.
- 데이터 준비의 선택은 잘 이해되고 새로운 데이터에서 반복 가능하며, 예측을 원래 척도로 되돌려야 하거나 원래 입력 값과 관련시켜야 하는 경우 되돌릴 수 있습니다.
- 알고리즘의 선택은 의도된 용도 및 운영 환경 (예 : 복잡성 또는 선택한 프로그래밍 언어)에 적합합니다.
테스트 세트에서 전체 절차의 예상 기술에 많은 영향을 미칩니다.
사실, 보이지 않는 데이터에 대한 절차의 기술을 추정하는 학습 / 테스트 방법을 사용하면 종종 분산이 높습니다 (분할할 데이터가 많지 않은 경우). 이것은 반복될 때 다른 결과, 종종 매우 다른 결과를 제공한다는 것을 의미합니다.
그 결과 프로시저가 실제로 보이지 않는 데이터에 대해 얼마나 잘 수행되는지, 한 프로시저가 다른 프로시저와 어떻게 비교되는지에 대해 매우 불확실할 수 있습니다.
종종 시간이 허락한다면 대신 k-fold 교차 검증을 사용하는 것을 선호합니다.
k-폴드 교차 검증의 목적
k-폴드 교차 검증을 사용하는 이유는 무엇입니까?
교차 검증은 보이지 않는 데이터에 대한 방법의 기술을 추정하는 또 다른 방법입니다. 기차-테스트 분할을 사용하는 것과 같습니다.
교차 유효성 검사는 데이터 세트의 여러 하위 집합에서 여러 모델을 체계적으로 만들고 평가합니다.
이것은 차례로 성능 측정의 모집단을 제공합니다.
- 이러한 측정의 평균을 계산하여 절차가 평균적으로 얼마나 잘 수행되는지에 대한 아이디어를 얻을 수 있습니다.
- 이러한 측정의 표준 편차를 계산하여 절차의 기술이 실제로 얼마나 달라질 것으로 예상되는지에 대한 아이디어를 얻을 수 있습니다.
이는 사용할 알고리즘 및 데이터 준비 프로시저를 선택하려고 할 때 한 프로시저를 다른 프로시저와 보다 미묘하게 비교하는 데에도 유용합니다.
또한 이 정보는 평균 및 산포를 사용하여 실제로 머신러닝 프로시저에서 예상되는 성능에 대한 신뢰 구간을 제공할 수 있으므로 매우 중요합니다.
학습-테스트 분할과 k-폴드 교차 검증은 모두 리샘플링 방법의 예입니다.
리샘플링 방법을 사용하는 이유는 무엇입니까?
응용 머신러닝의 문제점은 우리가 알려지지 않은 것을 모델링하려고 한다는 것입니다.
주어진 예측 모델링 문제에서 이상적인 모델은 새 데이터에 대한 예측을 수행할 때 가장 잘 수행되는 모델입니다.
우리는 새로운 데이터가 없기 때문에 통계적 트릭을 가장해야 합니다.
학습-테스트 분할 및 k-폴드 교차 검증을 리샘플링 방법이라고 합니다. 리샘플링 방법은 데이터 세트를 샘플링하고 알 수 없는 수량을 추정하기 위한 통계적 절차입니다.
응용 머신러닝의 경우 보이지 않는 데이터에 대한 머신러닝 절차의 기술을 추정하는 데 관심이 있습니다. 보다 구체적으로, 머신러닝 절차에 의해 만들어진 예측의 기술.
예상 기술이 있으면 리샘플링 방법이 완료됩니다.
- 학습-테스트 분할을 사용하는 경우 분할 데이터 세트와 학습된 모델을 삭제할 수 있습니다.
- k-fold 교차 검증을 사용하는 경우 학습된 모든 모델을 버릴 수 있습니다.
그들은 목적을 달성했으며 더 이상 필요하지 않습니다. 이제 모델을 완성할 준비가 되었습니다.
모델을 마무리하는 방법?
선택한 머신러닝 절차를 모든 데이터에 적용하여 모델을 완성합니다.
완성된 모델을 사용하여 다음을 수행할 수 있습니다.
- 나중에 사용하거나 운영할 수 있도록 모델을 저장합니다.
- 새 데이터에 대한 예측을 수행합니다.
교차 유효성 검사 모델 또는 학습 테스트 데이터 세트는 어떻습니까?
이것들은 더 이상 필요하지 않기에 버려졌습니다. 이것들은 당신이 마무리 할 절차를 선택하는 데 도움이 되도록 목적을 달성했습니다.
일반적인 질문
이 섹션에는 몇 가지 일반적인 질문이 나열되어 있습니다.
학습 데이터 세트에서 모델을 학습된 상태로 유지하지 않는 이유는 무엇인가요?
그리고
교차 검증에서 최상의 모델을 유지하지 않는 이유는 무엇입니까?
원한다면 할 수 있습니다.
기술 추정 중에 학습된 모델 중 하나를 재사용하여 시간과 노력을 절약할 수 있습니다.
모델을 학습하는 데 며칠, 몇 주 또는 몇 달이 걸리는 경우 큰 문제가 될 수 있습니다.
모델의 성능을 예측하는 데 사용되는 하위 집합보다 사용 가능한 모든 데이터에 대해 학습할 때 모델이 더 잘 수행될 수 있습니다.
이것이 우리가 사용 가능한 모든 데이터에 대해 최종 모델을 훈련하는 것을 선호하는 이유입니다.
모든 데이터에 대해 학습된 모델의 성능이 다르지 않을까요?
나는이 질문이 모델 완성에 대한 대부분의 오해를 불러 일으킨다 고 생각합니다.
다른 말로 하면 :
- 사용 가능한 모든 데이터에 대해 모델을 학습하는 경우 모델이 얼마나 잘 수행될지 어떻게 알 수 있습니까?
리샘플링 절차를 사용하여 이미 이 질문에 답했습니다.
잘 설계된 경우 학습-테스트 또는 k-fold 교차 검증을 사용하여 계산하는 성능 측정값은 사용 가능한 모든 기록 데이터에 대해 학습된 최종 모델이 일반적으로 얼마나 잘 수행되는지를 적절하게 설명합니다.
k-폴드 교차 검증을 사용한 경우 모델이 평균적으로 얼마나 “잘못”(또는 반대로 얼마나 “올바른지”)과 해당 틀림 또는 옳음의 예상 확산에 대한 추정치를 얻을 수 있습니다.
이것이 테스트 프로그램의 신중한 설계가 응용 머신러닝에서 절대적으로 중요한 이유입니다. 보다 강력한 테스트 도구를 사용하면 예상 성능에 더욱 의존할 수 있습니다.
모델을 학습할 때마다 다른 성능 점수를 얻습니다. 점수가 가장 높은 모델을 선택해야 하나요?
머신러닝 알고리즘은 확률론적이며 동일한 데이터에서 다른 성능의 동작이 예상됩니다.
반복 학습/테스트 또는 반복 k-폴드 교차 검증과 같은 리샘플링 방법은 방법에 얼마나 많은 분산이 있는지 처리하는 데 도움이 됩니다.
실제 문제가 되는 경우 분산을 줄이기 위해 여러 최종 모델을 만들고 예측 앙상블에서 평균을 가져올 수 있습니다.
아래 게시물에서 이것에 대해 더 이야기해 보겠습니다.
요약
이 게시물에서는 운영용으로 최종 머신러닝 모델을 학습하는 방법을 알아보았습니다.
다음과 같은 모델 완성의 장애물을 극복했습니다.
- 학습-테스트 분할 및 k-폴드 교차 검증과 같은 리샘플링 절차의 목표를 이해합니다.
- 사용 가능한 모든 데이터에 대해 새 모델을 학습하는 모델 종료를 모델링합니다.
- 성능 추정에 대한 우려를 모델 완성과 분리합니다.