기계 학습의 기능 선택: 동기 부여
이 짧은 문서는 기능 선택 기술을 설명하는 시리즈의 첫 번째 문서입니다. 친근한 소개로 시작하여 기능 선택 프로세스의 강력한 이유를 제시했습니다. 다음 기사에서는 각 기능 선택 방법에 대해 자세히 언급할 예정입니다.
기능 선택은 머신 러닝 알고리즘을 구축하기 위해 데이터 세트에 있는 수준의 전체 기능에서 관련 기능(변수, 예측 변수)의 하위 집합을 선택하는 프로세스입니다. 일반적으로 많은 수의 변수를 포함하는 초기 데이터 세트가 주어지면 예측할 때 중요한 기능 풀을 선택하기 위해 무엇을 할 수 있습니까? 기능 선택 프로세스의 일부로 적용할 수 있는 다양한 절차 또는 기술이 있습니다.
기능 선택 기술에 대해 알아보기 전에 먼저 기능을 선택하는 이유는 무엇입니까? 여기에 몇 가지 이유가 있습니다.
- 모델이 단순할수록 해석하기 쉽습니다. 모델 사용자는 100개의 변수를 사용하는 모델의 출력보다 10개의 변수를 사용하는 모델의 출력을 이해하기 쉽습니다.
- 교육 시간 단축. 기계 학습 모델을 구축하는 데 사용되는 변수의 수를 줄이면 계산 비용이 줄어들고 따라서 모델 구축 속도가 빨라집니다. 그러나 더 중요한 것은 모델이 더 간단하고 응용 프로그램보다 점수가 더 빠르다는 것입니다. 이는 모델이 1초 미만의 결정을 내려야 하는 실제 환경에 있는 경우 특히 중요합니다.
- 과적합을 줄여 일반화를 강화했습니다. 대부분의 변수는 예측 값이 거의 없는 노이즈입니다. 그러나 기계 학습 모델은 과적합을 유발하고 일반화를 줄이는 이 노이즈로부터 학습합니다. 관련 없는 시끄러운 기능을 제거함으로써 기계 학습 모델의 일반화를 크게 개선할 수 있습니다.
- 소프트웨어 개발자가 쉽게 구현할 수 있습니다. 기계 학습 모델이 배포되면 종종 소프트웨어 개발자는 출력을 생성하기 위해 모델에 입력해야 하는 변수를 호출하는 코드를 작성해야 합니다. 400개의 변수보다 10~50개의 변수에 대한 코드를 작성하는 것이 훨씬 빠릅니다. 또한 코드가 적을수록 버그가 발생하기 쉬우므로 더 안전한 환경을 제공합니다.
- 모델 사용 중 데이터 오류 위험 감소. 종종 회사는 기계 학습 모델을 전달하기 위해 변수를 선택할 타사 데이터에 대한 호출에 의존합니다. 기계 학습 모델에서 사용되는 변수의 수를 줄이면 타사의 데이터 수집 및 저장 오류에 대한 비즈니스 노출과 동일한 비즈니스 내에서 발생할 수 있는 데이터 수집 오류 가능성이 줄어듭니다.
- 가변 중복성. 꽤 자주 데이터 세트 내의 기능은 높은 상관 관계가 있습니다. 상관관계가 높은 기능은 동일한 정보의 본질을 제공합니다. 따라서 그들은 일종의 중복입니다. 정보 손실 없이 하나를 유지하고 나머지는 모두 제거할 수 있습니다.
- 고차원 공간에서 잘못된 학습 행동. 특정 트리 기반 알고리즘의 기계 학습 모델 성능은 감소된 기능 공간에 의해 선호됩니다. 즉, 차원이 높으면 트리 기반 방법에서 성능이 저하되므로 기능 공간을 줄이면 보다 강력하고 예측 가능한 모델을 구축하는 데 도움이 됩니다.
기능 선택 알고리즘은 새로운 기능 하위 집합을 제안하기 위한 검색 기술과 다른 기능 하위 집합에 점수를 매기는 진화 척도의 조합으로 볼 수 있습니다. 이상적으로는 기능 선택 방법은 주어진 데이터 세트에서 얻을 수 있는 기능 조합의 가능한 모든 하위 집합을 검색하고 최상의 기계 학습 모델 성능을 생성하는 기능 조합을 찾습니다. 실제로 이것은 일반적으로 계산 비용으로 인해 옵션이 아닙니다. 또한 다양한 기능 하위 집합이 다양한 기계 학습 알고리즘에 대해 최적의 성능을 생성할 수 있습니다. 이는 기능의 하위 집합이 하나만 있는 것이 아니라 사용하려는 기계 학습 알고리즘에 따라 잠재적으로 최적의 기능의 하위 집합이 많음을 의미합니다. 그러므로 수년에 걸쳐, 가능한 한 많은 주의 사항과 제한 사항을 수용하기 위해 기능을 선택하는 매우 다양한 방법이 개발되었습니다. 이 기사 시리즈 전체에서 기능 선택을 위한 매우 다양한 방법, 장점과 단점이 무엇인지, 비즈니스 데이터 세트 예제를 사용하여 실제로 구현하는 방법에 대해 설명합니다.