데이터 세트 샘플의 하이퍼 파라미터 튜닝이 나쁜 생각입니까?


19

이진 분류 (SVM, 로지스틱 회귀, 랜덤 포레스트 등)를위한 여러 분류기를 훈련하는 140000 개의 예와 30 개의 기능에 대한 데이터 세트가 있습니다.

많은 경우에 그리드 또는 랜덤 검색을 사용하는 전체 데이터 세트에 대한 하이퍼 파라미터 튜닝은 시간이 너무 많이 걸립니다.

나는 다음 기술을 사용하기 시작했다

  • 하위 샘플 내 데이터 세트
  • 획득 한 분수를 사용하여 하이퍼 파라미터를
  • 획득 한 파라미터를 사용하여 전체 데이터 세트를 사용하여 모델을 학습시킵니다.

두 번째 단계의 I 사용에 매개 변수의 각 세트를 평가하기 sklearnGridSearchCVCV = 10. 나는 세 번째 단계의 I 사용에 만드는 것이 최종 모델을 평가하기 위해 sklearncross_val_predict. 그런 의미에서 데이터의 10 %를 남기지 않고 모델을 평가하고 나머지를 훈련하고 10 %, 10 회 반복 예측 정확도를 측정 한 다음 평균 점수를 취합니다.

내가 걱정했던 것은 전체 데이터 세트에 대한 훈련에서 얻은 예측 정확도가 최상의 매개 변수 세트에 대한 매개 변수를 조정할 때 얻는 평가와 거의 비슷하다는 것입니다 (각 테스트 된 매개 변수 세트는 평균 10- 교차 검증 결과).

cross_val_predict모든 교육 예제 (전체 데이터 세트)를 사용하여 측정 한 정확도의 대부분은 최상의 매개 변수 평가가 반환 한 것보다 약간 높습니다.

이것을 설명하기 위해 여기에 매개 변수 세트의 평가가 있습니다 (위에서 설명한 것보다 작은 데이터 세트에서 효과는 동일합니다)

Best parameters set found on development set:
{'kernel': 'rbf', 'C': 9, 'gamma': 0.1}
Scores for all sets of parameters
0.851 (+/-0.006) for {'kernel': 'rbf', 'C': 3, 'gamma': 0.5}
0.852 (+/-0.006) for {'kernel': 'rbf', 'C': 3, 'gamma': 0.1}
0.829 (+/-0.006) for {'kernel': 'rbf', 'C': 3, 'gamma': 0.001}
0.853 (+/-0.006) for {'kernel': 'rbf', 'C': 9, 'gamma': 0.1}
...

그리고 여기에 cross_val_predict최고의 매개 변수를 사용하여 전체 데이터 세트에 대한 훈련에서 얻은 평균 점수가 (에서 ) 있습니다

precision    recall  f1-score   support

      0       0.86      0.85      0.86     15417
      1       0.86      0.87      0.87     16561

avg / total       0.86      0.86      0.86     31978

acc score: 0.863750078179
roc au score: 0.863370490059
[[13147  2270]
 [ 2087 14474]]

보시다시피 전체 데이터 세트에 대한 교육이 결과를 향상시킵니다. 또한 심하게 튜닝 모델 (예에 대한 기본값 또는 임의의 값을 사용하는 것이 유효했다 Cgamma훨씬 더 예측 정확도에 리드).

전반적으로 하위 집합에서 하이퍼 파라미터를 튜닝하는 것이 이상적이지는 않지만 너무 오래 기다리지 않고도 비교적 좋은 결과를 얻을 수 있다고 생각합니다. 예를 들어 그 접근법을 사용하기 전에 optunity전체 데이터 세트에서 하이퍼 매개 변수를 튜닝하기 위해 패키지를 사용했습니다 . 이 절차는 완료하는 데 3 ~ 5 일이 소요될 수 있으며, 각 등급에 대해 정밀도 나 리콜이 실제로는 높지만 (정확히 나 다른 리콜보다 높음) 결과는 매우 정확하지만 리콜은 양호하지만 둘다는 아닙니다. f1 측정 값이 실제로 낮았습니다. 반대로, 후자의 접근법을 사용하면 몇 시간의 훈련과 더 나은 f1 측정이 가능합니다.

내 관심사는 :

분류 정확도를 제한합니까? 서브 세트에서만 튜닝하여 데이터 세트가 제공 할 수있는 모든 예측 능력을 사용하지 않습니까? 이러한 성능 저하가 발생하는 경우 어떤 방식으로 제한됩니까?


정밀한 예측 정확도로 이어지는 두 가지 방법을 명확히하십시오. 데이터를 학습 세트와 유효성 검사 세트로 분할합니까? 여기서 유효성 검사 세트는 훈련 용이 아닌 하이퍼 파라미터 최적화에만 사용됩니까?
Iliyan Bobev

내 업데이트 된 질문을 참조하십시오. 더 명확 해지기를 바랍니다.
LetsPlayYahtzee

답변:


15

Jim의 (+1) 답변 외에도 일부 분류기의 경우 하이퍼 매개 변수 값은 선형 SVM의 경우와 같이 교육 예제 수에 따라 달라집니다.

min12w2+Ci=1ξi

에 따라

yi(xiwb)1ξi,andξi0i

최적화 문제는 기본적으로 데이터 부정합 항 ( 대한 합산 )과 정규화 항의 척도이지만 일반적인 재정 규제화 매개 변수는 데이터 부정합 항과 함께 배치됩니다. 분명히 우리가 가진 훈련 패턴의 수가 많을수록 합은 더 커질 것이며 가중치의 크기와 같은 균형을 유지하기 위해 는 작아야 합니다.ξiC

SVM의 일부 구현은 다음과 같이 다시 매개 변수화됩니다.

min12w2+Ci=1ξi

보상하기 위해, 그러나 일부는 그렇지 않습니다. 따라서 고려해야 할 추가 사항은 최적의 하이퍼 파라미터가 훈련 예의 수에 의존하는지 여부입니다.

모델 선택 기준을 과도하게 맞추는 것이 더 문제가 될 수 있지만 Jim이 서브 샘플에 충분한 데이터를 가지고 있다면 이것은 큰 문제가되지 않을 것이라고 Jim에 동의합니다.


11

데이터 세트 샘플의 하이퍼 파라미터 튜닝이 나쁜 생각입니까?

A : 그렇습니다. 선택한 열차 테스트 스플릿으로 인해 특정 테스트 세트에 과적 합 (하이퍼 파라미터)이 발생할 위험이 있기 때문입니다.

분류 정확도를 제한합니까?

A : 그렇습니다. 그러나 일반적인 머신 러닝의 지혜는 최적의 하이퍼 파라미터 (예 : )를 사용하여 전체 데이터 세트에 모델을 다시 맞추고 보이지 않는 새 경우에 대한 최종 모델로 만듭니다.λ

서브 세트에서만 튜닝하여 데이터 세트가 제공 할 수있는 모든 예측 능력을 사용하지 않습니까?

A : 이전 답변을 참조하십시오.

이러한 성능 저하가 발생하는 경우 어떤 방식으로 제한됩니까?

A : dem.

파라미터를 평가할 때도 10 배 크로스를 사용하여 정확도를 측정합니다.

A : 제목과 다른 점에 유의하십시오. 10 배 CV는 10 개가 넘는 테스트 트레인 분할을 반복하여 일반화 가능성 (이 경우 정확도로 측정)의 "편견없는"(편견없는) 추정치에 도달합니다. 10 중 CV는 첫 번째 답변에서 내가 이야기 한 문제를 정확하게 해결합니다.

전체 데이터 세트에 대한 교육을 통해 얻은 예측 정확도

A : 낙관적으로 편향 될 있는 "샘플"측정입니다 . 그러나 이러한 낙관주의 편향이 문제가되지 않도록 케이스가 많고 기능이 적다는 점을 잊지 마십시오. 머신 러닝 너겟 : "최고의 정규화 기는 더 많은 데이터입니다."

[계속]은 항상 최상의 매개 변수 집합에 대한 매개 변수를 조정할 때 얻는 평가에 거의 가깝습니다.

A : 이전 답변을 참조하십시오. 하이퍼 파라미터 플롯을보십시오. 튜닝은 오류를 얼마나 줄입니까? 당신이 말하는 것에서, 튜닝은 많은 것을하지 않습니다.

다음과 같이 테스트 할 수 있습니다. 70 % -30 %의 열차 테스트 분할을 수행하십시오. 다음의 예측 성능을 비교하십시오.

  1. 열차 세트에서 훈련 된 튜닝되지 않은 모델
  2. 열차 세트에서 훈련 된 10 배 CV 튜닝 모델.

두 모델 모두 테스트 세트를 예측하도록합니다. 성능이 매우 가까운 경우 튜닝이 많이 수행되지 않습니다. 튜닝 된 모델에 따라 성능이 다른 경우 튜닝 방법을 계속 진행하십시오.


1

인공 신경망 (ANN)에 대해 대답하겠습니다.

ANN의 하이퍼 파라미터는 학습 프로세스 (예를 들어, 학습 속도 또는 미니-배치 크기) 또는 아키텍처 (예를 들어, 숨겨진 유닛 또는 계층의 수)를 정의 할 수있다.

교육 집합의 하위 집합에서 아키텍처 하이퍼 파라미터를 조정하는 것은 좋은 생각이 아닙니다 (교육 집합에 실제로 다양성이 부족하지 않는 한 (즉, 교육 집합 크기를 늘려도 ANN 성능이 향상되지 않는 한)), 하이퍼 아키텍처가 ANN의 용량을 변경하기 때문입니다.

학습 세트의 하위 세트에서 학습 프로세스를 정의하는 하이퍼 파라미터를 조정하는 데 관심이 없지만, 경험적으로 검증해야합니다.



0

다중 충실도 평가, 즉 데이터의 하위 세트에 대한 평가를 지원하는 하이퍼 파라미터 최적화 알고리즘을 사용하여 전체 데이터 세트에 대한 최적의 하이퍼 파라미터 값에 대한 대략적인 추정치를 얻을 수 있습니다. 이러한 접근 방식은 일반적으로 하이퍼 파라미터 최적화를 실행하는 데 필요한 총 계산 비용을 줄일 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.