필터

R-Blogger · 블로그·해설 · 2025-05-22

R-Blogger블로그·해설한국어2025-05-22

필터

mlr3를 활용한 Feature 필터 기반 변수 중요도 분석 실습 이번 실습에서는 Feature 필터를 사용하여 감독학습 작업에서 변수의 중요도(목표 변수와의 관계 강도)를 평가하고, 이를 바탕으로 데이터를 사전처리하는 방법을 배웁니다. German Credit 데이터셋을 활용하여 1단계에서 4단계까지 진행하며, 마지막 단계에서는 파이프라인에 필터를 통합한 GraphLearner를 이용해 성능을 추정합니다. 1. 적절한 Feature Filter 찾기 먼저 mlr3filters 패키지와 mlr3pipelines 패키지를 사용하여, mlr3filters 에 포함된 필터를 살펴봅니다. 아래 질문에 답하며 필터를 선택하세요. 어떤 필터가 위에서 만든 분류 작업에 적합하고, 정수형 및 범주형 피처 모두에 대해 계산이 가능한가? ※ 필터 목록은 mlr_filters를 as.data.table로 변환해 확인할 수 있다. 2. Information Gain Filter 사용하기 이제 information_gain 필터를 사용해 보겠습니다. 이 필터는 FSelectorRcpp 패키지가 필요합니다. library(mlr3verse) library(mlr3filters) library(mlr3viz) library(FSelectorRcpp) filter = flt("information_gain") filter$calculate() autoplot(filter) 시각화된 스크리 플롯을 통해 각 피처의 정보이득 점수를 확인하고, “엘보우 규칙”을 적용해 포함할 피처 수를 결정하세요. 3. PipeOpFilter를 사용해 Task에 필터 적용하기 k‑NN 학습자는 차원 수가 많아지면 성능이 저하됩니다. 따라서 정보이득이 가장 높은 5개 피처만 남기는 PipeOpFilter를 구성합니다. library(mlr3pipelines) # 필터 객체 생성 ig_filter = flt("information_gain") # PipeOpFilter 생성 (5개 피처 선택) pofilter = po("filter", filter = ig_filter, filter.nfeat = 5) # Task에 적용 filtered_task = pofilter$train(input = list(task)) filtered_task 위 코드에서 filter.nfeat = 5를 설정해 필터링된 작업을 만들 수 있습니다. 4. PipeOpFilter와 Learner 결합하기 이제 k‑NN 학습자와 결합해 GraphLearner를 만듭니다. %% 연산자를 사용해 파이프라인을 연결하고, as_learner를 이용해 학습자로 변환합니다. library(mlr3learners) # k‑NN 학습자 knn_learner = lrn("classif.kknn") # 그래프 생성 graph = pofilter %% knn_learner glrn = as_learner(graph) # 5‑폴드 교차검증으로 성능 추정 rr = resample(task = task, learner = glrn, resampling = rsmp("cv", folds = 5)) rr$aggregate() # 피처 개수 변경 (예: 3개) pofilter$filter.nfeat = 3 filtered_task3 = pofilter$train(input = list(task)) glrn3 = as_learner(pofilter %% knn_learner) rr2 = resample(task = filtered_task3, learner = glrn3, resampling = rr$resampling) rr2$aggregate() 위 과정을 통해 Feature 필터링을 파이프라인에 직접 포함시키면, 성능 추정 시 버이어스가 줄어듭니다. 요약 본 실습에서는 mlr3의 mlr3filters와 mlr3pipelines를 이용해 supervised task에서 변수 중요도를 평가하고, 선택된 피처만으로 Task를 재구성하는 방법을 배웠습니다. 필터를 파이프라인에 통합하면, 모델링 단계와 피처 선택이 같은 데이터 분할에서 진행되어 보다 신뢰할 수 있는 성능 추정이 가능합니다.
원문 URL
전체 글은 원문 페이지에서 이어서 읽을 수 있습니다.
원문에서 전체 글 읽기
작성자
R-Blogger
출처
R-Blogger
플랫폼
R-Blogger
분류
블로그·해설
언어
한국어
발행일
2025-05-22