재귀적 특징 제거

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 특징 선택을 위해 재귀적 특징 제거 (RFE) 를 사용하는 방법을 배웁니다. 파이썬의 Scikit-Learn 라이브러리를 사용하여 이 작업을 수행할 것입니다. 특징 선택은 불필요하거나 중복된 특징을 제거하여 머신 러닝 모델의 성능을 향상시키는 중요한 단계입니다.

가상 머신 팁

가상 머신 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근합니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제약으로 인해 작업 검증을 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

데이터셋 로드 및 분할

먼저, Scikit-Learn 라이브러리를 사용하여 숫자 데이터셋을 로드합니다. 이 데이터셋은 0 부터 9 까지의 숫자 이미지 (8x8 픽셀) 로 구성되어 있으며, 각 이미지는 64 개의 특징으로 이루어진 배열로 표현됩니다. 데이터를 특징 (features) 과 목표 변수 (target variables) 로 분할할 것입니다.

from sklearn.datasets import load_digits
digits = load_digits()
X = digits.images.reshape((len(digits.images), -1))
y = digits.target

RFE 객체 생성 및 데이터 적용

다음으로, RFE 클래스의 객체를 생성하고 데이터를 이 객체에 적용합니다. 추정기로 선형 커널을 사용하는 서포트 벡터 분류기 (SVC) 를 사용할 것입니다. 한 번에 하나의 특징을 선택하고 한 단계씩 진행합니다.

from sklearn.svm import SVC
from sklearn.feature_selection import RFE

svc = SVC(kernel="linear", C=1)
rfe = RFE(estimator=svc, n_features_to_select=1, step=1)
rfe.fit(X, y)

특징 순위 지정

RFE 객체에 데이터를 적용한 후, 특징의 중요도에 따라 특징을 순위화할 수 있습니다. RFE 객체의 ranking_ 속성을 사용하여 특징 순위를 얻을 것입니다. 또한, 순위를 원본 이미지의 모양과 일치하도록 변형할 것입니다.

ranking = rfe.ranking_.reshape(digits.images[0].shape)

특징 순위 시각화

마지막으로, Matplotlib 라이브러리를 사용하여 특징 순위를 시각화합니다. matshow() 함수를 사용하여 순위를 이미지로 표시합니다. 또한, 색상 막대와 제목을 플롯에 추가합니다.

import matplotlib.pyplot as plt

plt.matshow(ranking, cmap=plt.cm.Blues)
plt.colorbar()
plt.title("RFE 를 이용한 픽셀 순위")
plt.show()

요약

이 실습에서는 특징 선택을 위해 재귀적 특징 제거 (RFE) 를 사용하는 방법을 배웠습니다. 파이썬의 Scikit-Learn 라이브러리를 사용하여 숫자 데이터셋을 로드하고, RFE 객체를 생성한 후 데이터를 적합하고, 특징을 순위화하고, 특징 순위를 시각화했습니다.