Вам также необходимо применить PCA на вашем тестовом наборе.
Вы должны рассмотреть, что делает PCA:
PCA создает новый набор функций (содержащий меньше функций, чем исходное пространство функций), а затем вы впоследствии обучаетесь этому новому набору функций. Вам нужно создать этот новый набор функций, чтобы тестовый набор для вашей модели был действительным!
Важно отметить, что каждая функция в вашем «сокращенном» наборе функций представляет собой линейную комбинацию исходных функций, где для заданного числа новых функций (n_components
) они представляют собой набор функций, которые максимизируют дисперсию оригинальное пространство сохранилось в новом пространстве.
Практически, чтобы выполнить соответствующее преобразование на вашем тестовом наборе, вам нужно сделать:
# X_test - your untransformed test set
X_test_reduced = pca.transform(X_test)
где pca
- это экземпляр PCA()
, обученный на вашем тренировочном наборе. По сути, вы строите преобразование в пространство более низкого измерения, и вы хотите, чтобы это преобразование было одинаковым для обучающего и тестового набора! Если вы тренируете pca
независимо как в обучающем, так и в тестовом наборе, вы (почти наверняка) встраиваете данные в разные низкоразмерные представления и имеете разные наборы функций.