프로젝트 진행중 독립변수를 선택할 때 보통 상관분석을 보고 판단하는 경우가 많다
인터뷰나 공정 공부를 통해서 선택된 독립변수에서 상관분석 결과가 높지 않을 때 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를 사용하여 중요한 변수를 선택할 수 있을 거라고 생각합니다