이것이 기능 엔지니어링의 모범 사례입니까?


10

기능 공학에 대한 실질적인 질문이 있습니다 ... 로지스틱 회귀를 사용하여 주택 가격을 예측하고 우편 번호를 포함하여 많은 기능을 사용했다고 가정합니다. 그런 다음 기능의 중요성을 확인하여 zip이 꽤 좋은 기능이라는 것을 알고 있으므로 zip을 기반으로 기능을 추가하기로 결정했습니다. 예를 들어 인구 조사국에 가서 평균 수입, 인구, 학교 수 및 수를 얻습니다. 각 우편의 병원. 이 네 가지 새로운 기능으로 모델 성능이 향상되었습니다. 더 많은 우편 관련 기능을 추가합니다.이주기는 계속 진행됩니다. 결국이 지퍼 관련 기능이 모델을 지배하게 될 것입니다.

내 질문 :

  1. 처음에 이것을하는 것이 합리적입니까?
  2. 그렇다면 언제이주기를 중단하기에 좋은시기인지 어떻게 알 수 있습니까?
  3. 그렇지 않다면 왜 안됩니까?

답변:


6

당신이 새로운 데이터를 계속 추가 할 수있는 경우 (예 : 우편 번호, 즉 영역으로 주요 개념을 기반으로) 모델의 성능 향상, 다음은 물론 당신은 최종 결과에 대해 신경 가정 ... 허용됩니다.

AIC ( Akaike Information Criterion ) 또는 이와 유사한 Bayesian Information Criterion (BIC) 과 같이이를 안내하려고하는 메트릭이 있습니다 . 이것들은 본질적으로 성능에 기초하여 모델을 선택하는 데 도움이되며 도입되고 추정되어야하는 모든 추가 매개 변수에 대해 처벌됩니다. AIC는 다음과 같습니다.

나는=2케이2ln(^)

케이^케이

이러한 기준은 점점 더 많은 매개 변수를 사용하여 모델을 시도하고 AIC 또는 BIC 값이 가장 좋은 모델을 선택하기 때문에 중지시기를 알려줍니다.

ZIP과 관련이없는 다른 기능이 모델에 여전히있는 경우 사용중인 모델에 따라 기능이 압도 될 수 있습니다. 그러나 집의 바닥 면적과 같이 ZIP 정보에 포함 할 수없는 데이터 세트에 대한 내용도 설명 할 수 있습니다 (이는 ZIP 코드와 비교적 독립적이라고 가정).

이 경우 이러한 특성을 주성분 분석 (Principal Component Analysis)과 비교할 수 있습니다. 여기서 기능 모음은 데이터 집합의 차이를 한 차원 씩 설명하고 다른 기능은 다른 차원을 설명합니다. 따라서 ZIP 관련 기능의 수에 관계없이 바닥 면적의 중요성을 설명 할 수는 없습니다.


7

1) 그렇습니다. 피처를 수동으로 만들려고하면 학습자 (예 : 모델)가 원시 데이터가 학습에 적합한 형식이 아니기 때문에 항상 원시 데이터에서 더 많은 정보를 파악하는 데 도움이되지만 항상 그로부터 피쳐를 구성 할 수 있습니다. 추가하는 기능은 하나의 기능을 기반으로합니다. 이것은 일반적입니다. 그러나 학습자, 로지스틱 회귀는 다중 공선성에 민감합니다. 추가 할 기능과 기능 수에주의해야합니다. 그렇지 않으면 모형이 과적 합 될 수 있습니다.

2) 로지스틱 회귀 분석을 사용하므로 새로운 구조를 추가하기 전에 항상 AIC를 사용하거나 카이 제곱 검정 (적합성 테스트)과 같은 통계적 유의성 검정을 수행하여 반응 분포가 실제로 다른지 여부를 결정할 수 있습니다. 이 구조의 유무에 관계없이. 데이터가 부족할 때 특히 유용합니다. 다른 방법은 모델에 페널티 항을 추가하는 것입니다. 예를 들어 로지스틱 올가미 회귀 분석이 있습니다.

3) 새로운 기능을 계속 추가하는 것이 항상 좋은 생각은 아닙니다. 높은 차원의 저주에주의하십시오. 새 기능을 추가 할 때는 실제로 데이터에 새로운 차원을 추가하는 것입니다. 순진하게도, 더 많은 기능을 모으면 결코 클래스에 대한 새로운 정보를 제공하지 않기 때문에 결코 아프지 않을 것이라고 생각할 수 있습니다. 그러나 실제로 그들의 차원은 차원의 저주로 인해 더 클 수 있습니다. 머신 러닝 세션 6 에 대해 유용한 정보가 도움이 되기를 바랍니다 .


@ user3768495는 예를 들어 교차 검증을 사용하여 표본에서 벗어난 모델의 성능을 평가하고 있습니까? 그렇다면 다중 공선 성은 문제가되지 않으며 유효성 검사 성능 감소를 통해 초과 피팅을 표시하므로 초과 피팅에 대해 걱정할 필요가 없습니다.
rinspy

@rinspy overfitting에는 많은 얼굴이 있습니다. 유효성 검사 세트를 포함하면 과적 합을 피할 수 있지만 문제를 해결할 수는 없습니다. 예를 들어, 훈련 데이터 (훈련 세트와 유효성 검사 세트로 분할 됨)와 실제 모집단간에 일관되지 않은 분포가 있습니다. 모델조차도 훈련 데이터에서 잘 수행되며 실제 상황에 일반화되지 않을 수 있습니다. 내 답변에서 언급 한 내용은 과잉 적합에 대해서도 이야기했습니다.
Fansly 2016 년

사실, 그러나 다중 공선 성을 피하는 것은 공변량 이동으로 인한 '과적 합'에 도움이되지 않습니다. 그가 예측 적 (설명이 아닌) 모델을 만드는 데 관심이 있다면 다중 공선 성이 문제가되지 않을 것이라고 말하고 있습니다.
rinspy

과적 합에 대한 나의 개념은 모델이 훈련 데이터가 아닌 새로운 데이터 세트로 일반화되지 않은 경우에 관한 것입니다. 참조하시기 바랍니다
Fansly

4

일반적으로 기능이 풍부할수록 좋습니다.

그러나 회귀는 일반적으로 상관 관계가 높은 데이터 (다중 공선 성)와 잘 작동하지 않습니다. 이 방법으로 기능을 확장하면 명심해야 할 사항입니다.

Google 회귀 및 다중 공선 성이라는 주제에 대한 많은 정보가 있으며 잠재적 완화 방법도 있습니다.

한마디로

  1. 예. 가장 확실합니다.
  2. @ n1k31t4에는 좋은 제안이 있습니다. 모델을 향상시킬 것으로 생각되는 기능을 자유롭게 생성 한 다음 PCA 및 기타 기능 선택 기법과 같은 기술을 사용하여 중요한 것으로 제한 할 수 있습니다.
  3. 고려해야 할 다른 것은 노력과 결과에서 얼마나 실용적입니까?

0

기능은 모델의 정보입니다. 정보가 많을수록 더 잘 수행하고 예측할 수 있습니다. 값이 작을수록 값을 예측하기가 어렵습니다. 그래서 짧은 naser는 그렇습니다. 가능한 한 많은 기능을 가질 가치가 있습니다. 정보 과부하로 인해 프로세서가 손상 될 수 있기 때문에 항상 한계가 있으므로 엔지니어링되는 기능 수에주의하십시오. 또한 불필요한 기능은 번 아웃에만 추가되므로 특정 기능을 정리하는 것이 좋습니다. 전체 데이터 전처리 단계가 중요합니다.

첫 번째 답변에는 이에 대한 좋은 세부 정보가 있습니다. 사이클 정지에 관한 한, 모델의 성능이 멈춘 위치를 확인하기 위해 알아야 할 몇 가지 측정 및 요소가 있으며 RMSE와 같은 측정입니다. 간단한 예는 xgboost데이터에 회귀를 사용 하고주기 수를 지정하는 것입니다. 모델을 실행하면 각주기마다 RMSE를 얻게됩니다. 특정주기 후에 모델이 정체 된 것으로 추론 할 수있는 한계로 줄어 듭니다. 이것이 모델 튜닝 및 최적화 작동 방식입니다.

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