여러 특징 추출 방법 결합하기

Beginner

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

소개

이 실습에서는 파이썬의 scikit-learn 라이브러리를 사용하여 여러 특징 추출 방법을 연결하는 방법을 배웁니다. PCA 와 단변량 선택으로 얻은 특징을 결합하기 위해 FeatureUnion 변환기를 사용합니다. 이 변환기를 사용하여 특징을 결합하면 전체 프로세스에 대한 교차 검증 및 그리드 검색을 수행할 수 있는 이점이 있습니다.

VM 팁

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

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

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

라이브러리 가져오기

필요한 라이브러리를 가져오는 것으로 시작합니다. scikit-learn 의 Pipeline, FeatureUnion, GridSearchCV, SVC, load_iris, PCA, 그리고 SelectKBest 클래스를 사용할 것입니다.

from sklearn.pipeline import Pipeline, FeatureUnion
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.feature_selection import SelectKBest

데이터셋 로드

다음으로 load_iris 함수를 사용하여 아이리스 데이터셋을 로드합니다.

iris = load_iris()

X, y = iris.data, iris.target

특징 추출

아이리스 데이터셋이 고차원이므로 PCA 와 단변량 선택을 사용하여 특징 추출을 수행합니다.

PCA

PCA 를 사용하여 데이터셋의 차원을 줄입니다.

pca = PCA(n_components=2)

단변량 선택

가장 중요한 특징을 선택하기 위해 단변량 선택을 사용합니다.

selection = SelectKBest(k=1)

결합된 특징

PCA 와 단변량 선택에서 얻은 특징을 FeatureUnion 변환기를 사용하여 결합합니다.

combined_features = FeatureUnion([("pca", pca), ("univ_select", selection)])

변환된 데이터셋

결합된 특징을 사용하여 데이터셋을 변환합니다.

X_features = combined_features.fit(X, y).transform(X)
print("결합된 공간에는", X_features.shape[1], "개의 특징이 있습니다")

모델 학습

변환된 데이터셋을 사용하여 서포트 벡터 머신 (SVM) 모델을 학습합니다.

svm = SVC(kernel="linear")

그리드 검색

GridSearchCV를 사용하여 파이프라인의 하이퍼파라미터에 대한 그리드 검색을 수행합니다.

pipeline = Pipeline([("features", combined_features), ("svm", svm)])

param_grid = dict(
    features__pca__n_components=[1, 2, 3],
    features__univ_select__k=[1, 2],
    svm__C=[0.1, 1, 10],
)

grid_search = GridSearchCV(pipeline, param_grid=param_grid, verbose=10)
grid_search.fit(X, y)
print(grid_search.best_estimator_)

요약

이 실험에서 파이썬의 scikit-learn 라이브러리를 사용하여 여러 특징 추출 방법을 연결하는 방법을 배웠습니다. PCA 와 단변량 선택으로 얻은 특징들을 결합하기 위해 FeatureUnion 변환기를 사용했습니다. 또한 서포트 벡터 머신 (SVM) 모델을 학습하고 파이프라인의 하이퍼파라미터에 대한 그리드 검색을 수행했습니다.