SBS 구현이 fit 메서드 안에서 데이터셋을 훈련 데이터셋과 테스트 데이터셋으로 나누지만 여전히 이 알고리즘에 X_train 데이터만 주입합니다. SBS의 fit 메서드는 훈련과 테스트(검증)를 위한 새로운 서브셋(subset)을 만듭니다. 여기에서 테스트 데이터셋을 검증 데이터셋(validation dataset)이라고도 부릅니다. 이 방식을 사용하려면 훈련 데이터에서 원래 테스트 데이터셋을 미리 떼어 놓아야 합니다.
SBS 알고리즘은 각 단계에서 가장 좋은 특성 조합의 점수를 모았습니다. 이제 재미있는 부분입니다. 검증 데이터셋에서 계산한 KNN 분류기의 정확도를 그려 보겠습니다. 코드는 다음과 같습니다.
>>> k_feat = [len(k) for k in sbs.subsets_]
>>> plt.plot(k_feat, sbs.scores_, marker='o')
>>> plt.ylim([0.7, 1.02])
>>> plt.ylabel('Accuracy')
>>> plt.xlabel('Number of features')
>>> plt.grid()
>>> plt.tight_layout()
>>> plt.show()