기능 선택에 대한 소개

예측 모델을 만드는 데 어떤 기능을 사용해야 합니까?

이것은 문제 영역에 대해 깊은 지식을 필요로 하는 어려운 질문입니다.

데이터에서 작업 중인 문제에 가장 유용하거나 가장 관련성이 높은 기능을 자동으로 선택할 수 있습니다. 이를 기능 선택이라고 하는 프로세스입니다.

이 게시물에서는 기능 선택, 사용할 수 있는 메서드 유형 및 다음에 기계 학습 모델에 대한 기능을 선택해야 할 때 따를 수 있는 편리한 검사 목록을 알아봅니다.



기능 선택이란?

기능 선택은 변수 선택 또는 속성 선택이라고도 합니다.

작업 중인 예측 모델링 문제와 가장 관련이 있는 데이터(예: 테이블 형식 데이터의 열)의 속성을 자동으로 선택하는 것입니다.

기능 선택… 모델 구성에 사용할 관련 기능의 하위 집합을 선택하는 프로세스입니다.

기능 선택, 위키백과 항목.

기능 선택은 차원 축소와 다릅니다. 두 방법 모두 데이터 집합의 특성 수를 줄이려고 하지만 차원 축소 방법은 특성 선택 방법으로 데이터에 있는 특성을 변경하지 않고 포함 및 제외하는 새로운 특성 조합을 만들어 이를 수행합니다.

차원 축소 방법의 예로는 주성분 분석, 특이값 분해 및 Sammon의 매핑이 있습니다.

기능 선택은 그 자체로 유용하지만 대부분 필터 역할을 하여 기존 기능 외에 유용하지 않은 기능을 음소거합니다.

— Robert Neuhaus, “기계 학습에서 기능 선택이 얼마나 중요하다고 생각하십니까?“에 대한 답변



기능 선택이 해결하는 문제

기능 선택 방법은 정확한 예측 모델을 생성하는 임무를 수행하는 데 도움이 됩니다. 그들은 더 적은 데이터를 요구하면서 더 좋거나 더 나은 정확도를 제공하는 기능을 선택하여 당신을 돕습니다.

기능 선택 방법을 사용하여 예측 모델의 정확도에 기여하지 않거나 실제로 모델의 정확도를 저하시킬 수 있는 데이터에서 불필요하고 관련이 없는 중복 속성을 식별하고 제거할 수 있습니다.

더 적은 속성은 모델의 복잡성을 줄이고 더 간단한 모델은 이해하고 설명하기가 더 간단하기 때문에 바람직합니다.

변수 선택의 목적은 예측 변수의 예측 성능 개선, 더 빠르고 비용 효율적인 예측 변수 제공, 데이터를 생성한 기본 프로세스에 대한 더 나은 이해 제공의 세 가지입니다.

— Guyon과 Elisseeff, “변수 및 기능 선택 소개“(PDF)



기능 선택 알고리즘

기능 선택 알고리즘에는 필터 메서드, 래퍼 메서드 및 포함된 메서드의 세 가지 일반적인 클래스가 있습니다.

필터 방법

필터 피처 선택 방법은 통계 측정값을 적용하여 각 피처에 점수를 할당합니다. 피처는 점수에 따라 순위가 매겨지며 데이터셋에서 유지하거나 제거하도록 선택됩니다. 방법은 종종 일변량이며 독립적으로 또는 종속 변수와 관련하여 기능을 고려합니다.

일부 필터 방법의 예로는 카이 제곱 검정, 정보 이득 및 상관 계수 점수가 있습니다.


래퍼 메서드

래퍼 방법은 기능 집합의 선택을 검색 문제로 간주하여 서로 다른 조합을 준비, 평가 및 다른 조합과 비교합니다. 예측 모델은 기능 조합을 평가하고 모델 정확도를 기반으로 점수를 할당하는 데 사용됩니다.

검색 프로세스는 최우선 검색과 같은 체계적일 수도 있고, 무작위 언덕 오르기 알고리즘과 같은 확률적일 수도 있고, 전진 및 후진 패스와 같은 휴리스틱을 사용하여 피처를 추가 및 제거할 수도 있습니다.

래퍼 메서드가 재귀 기능 제거 알고리즘인 경우의 예입니다.


임베디드 메서드

포함된 메서드는 모델을 만드는 동안 모델의 정확도에 가장 잘 기여하는 기능을 학습합니다. 포함된 기능 선택 방법의 가장 일반적인 유형은 정규화 방법입니다.

정규화 방법은 예측 알고리즘(예: 회귀 알고리즘)의 최적화에 추가 제약 조건을 도입하여 모델을 더 낮은 복잡성(더 적은 계수)으로 편향시키는 벌칙 방법이라고도 합니다.

정규화 알고리즘의 예로는 LASSO, Elastic Net 및 Ridge 회귀가 있습니다.



기능 선택 튜토리얼 및 레시피

이 블로그에서 이전에 기능 선택의 여러 예를 보았습니다.



피처를 선택할 때의 함정

기능 선택은 모델 선택과 같은 적용된 기계 학습 프로세스의 또 다른 핵심 부분입니다. 당신은 발사하고 잊을 수 없습니다.

기능 선택을 모델 선택 프로세스의 일부로 고려하는 것이 중요합니다. 그렇지 않으면 실수로 모형에 편향이 발생하여 과적합이 발생할 수 있습니다.

… [예측 모델]을 훈련하는 것과 다른 데이터 세트에서 기능 선택을 수행해야 합니다… 이렇게 하지 않으면 학습 데이터가 과적합됩니다.

— Ben Allison, “기능 선택과 교차 검증에 동일한 데이터를 사용하는 것이 편향되어 있습니까?”에 대한 답변

예를 들어 교차 검증과 같은 정확도 추정 방법을 사용하는 경우 내부 루프 내에 기능 선택을 포함해야 합니다. 즉, 모델이 학습되기 직전에 준비된 폴드에서 기능 선택이 수행됩니다. 실수는 먼저 기능 선택을 수행하여 데이터를 준비한 다음 선택한 기능에 대해 모델 선택 및 학습을 수행하는 것입니다.

적절한 절차를 채택하고 각 접기에서 기능 선택을 수행하면 해당 접기에 사용된 기능 선택에서 보류된 사례에 대한 정보가 더 이상 없습니다.

— Dikran Marsupial, “기계 학습에서 교차 검증을 수행할 때 최종 모델에 대한 기능 선택“에 대한 답변

그 이유는 기능을 선택하기 위한 결정이 전체 학습 집합에서 이루어졌으며 차례로 모델에 전달되기 때문입니다. 이로 인해 테스트 중인 다른 모델보다 선택한 기능에 의해 향상된 모델이 실제로는 편향된 결과인 경우 더 나은 결과를 얻을 수 있습니다.

모든 데이터에 대해 기능 선택을 수행한 다음 교차 검증하는 경우 교차 검증 절차의 각 접기에 있는 테스트 데이터도 기능을 선택하는 데 사용되었으며 이것이 성능 분석을 편향시키는 것입니다.

— Dikran Marsupial, “기능 선택 및 교차 검증“에 대한 답변



기능 선택 체크리스트

변수 및 특징 선택 소개“(PDF)의 저자인 Isabelle Guion과 Andre Elisseeff는 다음에 예측 모델링 문제에 대한 데이터 특징을 선택해야 할 때 사용할 수 있는 훌륭한 체크리스트를 제공합니다.

여기에 체크리스트의 두드러진 부분을 재현했습니다.

  1. 도메인 지식이 있습니까? 그렇다면 더 나은 임시 “” 기능 세트를 구성합니다.
  2. 당신의 기능은 상응합니까? 그렇지 않은 경우 정규화하는 것이 좋습니다.
  3. 기능의 상호 의존성을 의심하십니까? 그렇다면 컴퓨터 리소스가 허용하는 한 결합 기능 또는 기능 제품을 구성하여 기능 집합을 확장합니다.
  4. 입력 변수를 정리해야 합니까 (예 : 비용, 속도 또는 데이터 이해상의 이유로)? 그렇지 않은 경우 분리 기능 또는 기능의 가중 합계를 구성합니다.
  5. 피처를 개별적으로 평가해야 합니까(예: 시스템에 미치는 영향을 이해하기 위해 또는 피처 수가 너무 커서 첫 번째 필터링을 수행해야 하기 때문에)? 그렇다면 변수 순위 지정 방법을 사용하십시오. 그렇지 않으면 어쨌든 기준 결과를 얻으십시오.
  6. 예측자가 필요하십니까? 그렇지 않은 경우 중지
  7. 데이터가 “더티”(의미없는 입력 패턴 및 / 또는 잡음이있는 출력 또는 잘못된 클래스 레이블이 있음)라고 생각하십니까? 그렇다면 5단계에서 얻은 상위 순위 변수를 표현으로 사용하여 이상값 예제를 감지합니다. 확인 및/또는 폐기하십시오.
  8. 무엇을 먼저 시도해야하는지 알고 있습니까? 그렇지 않은 경우 선형 예측 변수를 사용하십시오. “probe” 방법을 중지 기준으로 하는 전진 선택 방법을 사용하거나 비교를 위해 0-norm 임베디드 방법을 사용하고 5단계의 순위에 따라 증가하는 기능 부분 집합을 사용하여 동일한 특성의 예측 변수 시퀀스를 구성합니다. 더 작은 하위 집합과 일치하거나 성능을 향상시킬 수 있습니까? 그렇다면 해당 부분 집합이 있는 비선형 예측 변수를 사용해 보십시오.
  9. 새로운 아이디어, 시간, 계산 리소스 및 충분한 예제가 있습니까? 그렇다면 새 아이디어, 상관 계수, 역방향 선택 및 포함 방법을 포함한 여러 기능 선택 방법을 비교하십시오. 선형 및 비선형 예측 변수를 사용합니다. 모델 선택과 함께 최상의 접근 방식 선택
  10. 안정적인 솔루션을 원하십니까 (성능 및 / 또는 이해를 향상시키기 위해)? 그렇다면 데이터를 서브샘플링하고 여러 “부트스트랩”에 대한 분석을 다시 실행합니다.


추가 정보

특정 플랫폼에서 기능을 선택하는 데 도움이 필요하십니까? 다음은 빠르게 시작할 수 있는 몇 가지 자습서입니다.

주제에 대해 더 자세히 알아보려면 다음 중 하나와 같은 주제에 대한 전용 책을 선택할 수 있습니다.

게시물에서 기능 엔지니어링에 대해 자세히 살펴보고 싶을 수도 있습니다.

네피리티
No Comments

Sorry, the comment form is closed at this time.