У меня есть список из 10 элементов, и я выбрал 5 функций для создания ввода и преобразовал список ввода в массив; Затем я применил PCA с количеством компонентов = 2:
idx = {0, 2, 3, 7, 8} Input = array([Input[x] for x in idx]).reshape((1, -1)) print (Input.shape) # prints (1, 5) pca = PCA(n_components=2).fit(Input) Input = pca.transform(Input) print (Input.shape) #prints (1, 1)
Почему после pca с n_components = 2 моя форма ввода равна (1,1), а не (1,2)?
Да, это ожидаемое поведение.
Согласно документации для PCA :
actual n_components = min(n_samples, specified n_components)
Здесь у вас есть n_samples = 1 (как показано в Input.shape), поэтому фактический n_components, возвращаемый PCA, равен 1.
n_samples = 1
Input.shape
n_components