이미 자신이 관찰 한 것처럼 선택한 기능 (기능 선택)이 알고리즘에 적합한 하이퍼 파라미터에 영향을 줄 수 있으며 알고리즘에 대해 선택한 하이퍼 파라미터가 어떤 기능 선택이 최적인지에 영향을 줄 수 있습니다.
따라서 모델에서 성능의 1 %를 짜내는 데 정말로 관심이 있고 필요한 계산량을 감당할 수 있다면 가장 좋은 솔루션은 기능 선택과 하이퍼 파라미터 튜닝을 "동시에"수행하는 것입니다. 그러나 기능 선택 방법에 따라 쉽지 않을 것입니다. 내가 작동하는 방식은 후보로 다른 기능 세트를 사용하고 모든 후보 세트 중 하나의 기능 세트를 추가 하이퍼 파라미터로 처리하는 것과 같습니다.
실제로 그것은 실제로 실현 가능하지 않을 수 있습니다. 일반적으로 가능한 모든 조합을 평가할 여유가 없다면 다음을 권장합니다.
일부 하이퍼 파라미터에 매우 나쁜 값을 할당하지 않도록 하이퍼 파라미터를 느슨하게 최적화하십시오. 하이퍼 파라미터에 대한 직관적 인 이해가 있거나 손쉬운 방법으로 잘 알려진 여러 기능을 사용하여 매우 간단한 하이퍼 파라미터 최적화 절차를 수행하는 경우 종종 수작업으로 수행 할 수 있습니다.
100 % 최적화되지 않았지만 최소한 끔찍한 하이퍼 파라미터가있는 기능 선택. 머신 러닝 알고리즘이 어느 정도 구성되어 있다면 마이크로 최적화 하이퍼 파라미터보다 우수한 기능이 성능에 훨씬 중요합니다. 극단적 인 예 : 기능이 없으면 아무것도 예측할 수 없습니다. 클래스 레이블이 포함 된 부정 행위 기능이 있으면 모든 것을 완벽하게 분류 할 수 있습니다.
위 단계에서 선택한 기능으로 하이퍼 파라미터를 최적화하십시오. 이것은 하이퍼 파라미터를 약간 최적화 할 가치가있는 좋은 기능이어야합니다.
Nikolas가 의견에 게시 한 추가 질문을 해결하기 위해이 모든 것들 (기능 선택, 하이퍼 매개 변수 최적화)이 k- 폴드 교차 검증과 상호 작용하는 방식에 관해 : 나는 그것이 의존한다고 말하고 싶습니다.
폴드 중 하나의 데이터를 전혀 사용하지 않고 동일한 폴드에서 퍼포먼스를 평가할 때마다 편향된 퍼포먼스 추정값을 얻습니다 (퍼포먼스를 과대 평가하게됩니다). 따라서 기능 선택 단계에 대해 모든 접기에서 데이터를 사용한 다음 각 접기에서 성능을 평가하면 각각에 대해 편향된 성능 추정치가 표시됩니다 (좋지 않음). 마찬가지로, 데이터 중심 하이퍼 파라미터 최적화가 있고 특정 접기 (또는 모든 접기)의 데이터를 사용한 다음 동일한 접기에 대해 평가하면 편향된 성능 추정치가 다시 나타납니다. 가능한 해결책은 다음과 같습니다.
모든 접기 내에서 전체 파이프 라인을 개별적으로 반복합니다 (예 : 각 접기 내에서 기능 선택 + 하이퍼 파라미터 최적화 및 교육 모델 수행). 이렇게하면 k- 폴드 교차 검증 이이 완전한 파이프 라인의 성능에 대한 편견없는 추정치를 제공합니다 .
초기 데이터 세트를 ''전처리 데이터 세트 ''및 ''트레인 / 테스트 데이터 세트 ''로 분할하십시오. ''전처리 데이터 세트 ''에서 기능 선택 + 하이퍼 파라미터 최적화를 수행 할 수 있습니다. 그런 다음 선택한 기능과 하이퍼 파라미터를 수정하고``train / test dataset ''에서 k- 폴드 교차 검증을 수행합니다. 이를 수행하면 k- 폴드 교차 검증 이 고정 된 피쳐 세트 및 하이퍼 파라미터 값이 주어진 경우 ML 알고리즘의 성능에 대한 편견없는 추정값을 제공 합니다 .
두 솔루션이 어떻게 약간 다른 성능 평가를하는지 확인하십시오. 더 흥미로운 것은 사용 사례에 따라 실제 머신 러닝 솔루션을 어떻게 배포 할 것인지에 달려 있습니다. 예를 들어, 기능 선택의 완전한 파이프 라인 + 하이퍼 파라미터 최적화 + 매일 / 주 / 월 / 년 / 어떻게 든 자동으로 실행되는 교육을 원하는 회사라면 해당 완성의 성능에도 관심이있을 것입니다 파이프 라인과 첫 번째 솔루션이 필요합니다.
반면에, 인생에서 한 번만 기능 선택 + 하이퍼 파라미터 최적화를 수행 할 수 있고 나중에 알고리즘을 약간 정기적으로 재교육 (기능 세트 및 하이퍼 파라미터 값이 고정 된 상태)하면 성능이 향상됩니다. 그 단계의 유일한 것은 당신이 관심있는 것입니다, 그리고 당신은 두 번째 해결책으로 가야합니다