카테고리 없음

종속변수를 예측하는데 영향력이 큰 독립변수 찾는 2가지 방법

강블루 2023. 2. 28. 13:37

프로젝트 진행중 독립변수를 선택할 때 보통 상관분석을 보고 판단하는 경우가 많다

인터뷰나 공정 공부를 통해서 선택된 독립변수에서 상관분석 결과가 높지 않을 때 2가지 방법을 소개하려고 한다

 

 

먼저 이 코드는 Random Forest 기반의 Recursive Feature Elimination with Cross-Validation (RFECV) 기법을 사용하여 독립 변수의 중요도를 계산하는 방법을 보여줍니다.

RFECV는 회귀 분석에서 독립 변수의 중요도를 계산하는 방법 중 하나로, 랜덤 포레스트를 기반으로 합니다.

RFECV는 모든 독립 변수를 사용하여 랜덤 포레스트 모델을 학습한 후, 가장 중요도가 낮은 변수를 하나씩 제거하여 모델을 재학습합니다. 이 과정을 반복하면서, 교차 검증을 통해 모델의 성능을 평가합니다.

최종적으로, 교차 검증 점수가 가장 높은 독립 변수의 부분 집합을 선택합니다.

이 코드에서는 RFECV 객체를 생성한 후, Random Forest 회귀 모델을 사용하여 독립 변수의 중요도를 계산합니다.

또한, 5-fold cross-validation을 사용하여 모델의 성능을 평가합니다. 마지막으로, 가장 중요도가 높은 독립 변수들을 출력합니다.

따라서, 이 코드는 RFECV 기법을 사용하여 독립 변수의 중요도를 계산하는 방법을 보여주며, 이를 통해 모델의 예측 정확도를 향상시킬 수 있을 거라고 생각합니다

 

 

이 코드는 Stabilized Recursive Feature Elimination (SRFE) 방법을 사용하여 독립 변수 중 가장 중요한 변수 5개를 선택하는 예시 코드입니다.

먼저, mlxtend.feature_selection 패키지에서 StabilizedRFE를 import 합니다. 그리고 독립 변수와 종속 변수를 분리하여 변수 X와 y에 저장합니다.

이어서, RandomForestRegressor를 사용하여 모델을 정의합니다. 이 모델은 변수의 중요도를 평가하기 위해 사용됩니다.

다음으로, SRFE 객체를 생성합니다. 여기서는 n_features_to_select 매개 변수를 사용하여 최종 선택할 변수의 수를 5개로 설정합니다. rfe_kwargs 매개 변수를 사용하여 Recursive Feature Elimination (RFE) 방법을 조정할 수 있습니다. 여기서는 step을 1로 설정합니다.

마지막으로, srfs 객체에 대해 fit 메소드를 호출하여 SRFE를 실행합니다. SRFE가 완료되면 선택된 변수의 이름X.columns[srfs.support_]로 출력됩니다. 이 코드를 사용하면 SRFE를 사용하여 중요한 변수를 선택할 수 있을 거라고 생각합니다