После запуска порогового значения от Scikit-Learn на наборе данных он удаляет несколько функций. Я чувствую, что делаю что-то простое, но глупое, но я бы хотел сохранить имена остальных функций. Следующий код:Сохранение имен функций после выбора функции Scikit
def VarianceThreshold_selector(data):
selector = VarianceThreshold(.5)
selector.fit(data)
selector = (pd.DataFrame(selector.transform(data)))
return selector
x = VarianceThreshold_selector(data)
print(x)
изменяет следующие данные (это только небольшое подмножество строк):
Survived Pclass Sex Age SibSp Parch Nonsense
0 3 1 22 1 0 0
1 1 2 38 1 0 0
1 3 2 26 0 0 0
в это (снова только небольшое подмножество строк)
0 1 2 3
0 3 22.0 1 0
1 1 38.0 1 0
2 3 26.0 0 0
Используя метод get_support, я знаю, что это Pclass, Age, Sibsp и Parch, поэтому я предпочел бы, чтобы это возвращало нечто большее:
Pclass Age Sibsp Parch
0 3 22.0 1 0
1 1 38.0 1 0
2 3 26.0 0 0
Есть ли простой способ сделать это? Я очень новичок в Scikit Learn, поэтому я, наверное, просто делаю что-то глупое.
сам Scikit не поддерживает 'pandas' типы данных с именованными столбцами и тому подобное, так что в любое время вы используете что-то вроде' .transform' метода объекта scikit, вы потеряете все, что Информация. Если вы можете отследить его отдельно (т. Е. Получить имена столбцов по мере их описания), вы можете передать его обратно, чтобы указать новые имена столбцов после воссоздания нового DataFrame. – BrenBarn