Вы предоставляете 'all'
в качестве параметра в SelectKBest. Но в соответствии с документацией , если вы хотите передать 'all', вам нужно указать его как:
SelectKBest(k='all')
Причина в том, что это ключевой аргумент, он должен быть указан с ключевым словом. Потому что первый аргумент SelectKBest - это позиционный аргумент для функции скоринга. Поэтому, если вы не укажете param
, «все» будет считаться вводом для функции и, следовательно, ошибкой.
Обновление:
Теперь по поводу формы, исходная X
не изменится. Так будет напечатано (150,4)
. Данные будут изменены на лету, и на моем компьютере best_param_
будет n_components=1
, поэтому окончательная форма, которая переходит к svm, равна (150, 5)
, 1 из PCA и 4 из SelectKBest.