더북(TheBook)
>>> sfs = SequentialFeatureSelector(knn, n_features_to_select=7, n_jobs=-1)
>>> sfs.fit(X_train_std, y_train)

선택한 특성 개수는 n_features_to_select_ 속성에 저장되어 있습니다. support_ 속성을 사용하여 선택한 특성의 이름을 확인해 보겠습니다.

>>> print(sfs.n_features_to_select_)
7
>>> f_mask = sfs.support_
>>> df_wine.columns[1:][f_mask]
Index(['Alcohol', 'Ash', 'Magnesium', 'Flavanoids', 'Color intensity', 'Hue', 'Proline'],
      dtype='object')

앞서 직접 구현한 SBS 클래스에서 선택한 특성과 겹치는 것은 Alcohol뿐입니다. 선택한 일곱 개의 특성으로 훈련 데이터셋과 테스트 데이터셋의 정확도를 사용해 보겠습니다.

>>> knn.fit(X_train_std[:, f_mask], y_train)
>>> print('훈련 정확도:', knn.score(X_train_std[:, f_mask], y_train))
훈련 정확도: 0.9838709677419355
>>> print('테스트 정확도:', knn.score(X_test_std[:, f_mask], y_test))
테스트 정확도: 0.9814814814814815
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.