scores 리스트에 담긴 정확도 점수를 앞에서와 같이 그래프로 출력해 보겠습니다.
>>> plt.plot(range(1, 13), scores, marker='o')
>>> plt.ylim([0.7, 1.02])
>>> plt.ylabel('Accuracy')
>>> plt.xlabel('Number of features')
>>> plt.grid()
>>> plt.tight_layout()
>>> plt.show()
▲ 그림 4-9 순차 특성 선택에 따른 성능
일곱 개의 특성과 열 개의 특성을 선택했을 때 높은 성능을 내고 있습니다. 가능한 적은 특성을 선택하는 것이 유리하다면 일곱 개를 적절한 개수로 볼 수 있습니다. n_features_to_select=7로 하여 다시 순차 전진 선택 모델을 훈련해 보겠습니다.
>>> sfs = SequentialFeatureSelector(knn, n_features_to_select=7, n_jobs=-1)
>>> sfs.fit(X_train_std, y_train)