더북(TheBook)

6.1.2 파이프라인으로 변환기와 추정기 연결

많은 머신 러닝 알고리즘이 최적의 성능을 위해 입력 특성이 같은 스케일을 가져야 한다는 것을 이전 장에서 배웠습니다. 위스콘신 유방암 데이터셋의 특성은 다양한 스케일로 측정되었기 때문에 로지스틱 회귀 같은 선형 분류기에 주입하기 전에 특성을 표준화해야 합니다. 5장에서 소개한 차원 축소를 위한 특성 추출 기법으로 주성분 분석(PCA)을 소개했습니다. 여기에서는 주성분 분석을 통해 초기 30차원에서 좀 더 낮은 2차원 부분 공간으로 데이터를 압축한다고 가정하겠습니다.

훈련 데이터셋과 테스트 데이터셋을 각각 학습하고 변환하는 단계를 구성하는 대신 StandardScaler, PCA, LogisticRegression 객체를 하나의 파이프라인으로 연결할 수 있습니다.

>>> from sklearn.preprocessing import StandardScaler
>>> from sklearn.decomposition import PCA
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.pipeline import make_pipeline
>>> pipe_lr = make_pipeline(StandardScaler(),
...                         PCA(n_components=2),
...                         LogisticRegression(random_state=1))
>>> pipe_lr.fit(X_train, y_train)
>>> y_pred = pipe_lr.predict(X_test)
>>> test_acc = pipe_lr.score(X_test, y_test)
>>> print(f'테스트 정확도: {test_acc:.3f}')
테스트 정확도: 0.956
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.