Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre a função transformar()

Dúvida de entendimento, sobre a função transform() usada nesse código:

selecionar_kmelhores.fit(treino_x, treino_y)
treino_kbest = selecionar_kmelhores.transform(treino_x)
teste_kbest = selecionar_kmelhores.transform(teste_x)

O que ela faz exatamente? dei uma olhada na documentação, mas não entendi muito bem.

2 respostas
solução!

Bom dia Maikon, tudo bem? Espero que sim!

O objetivo do SelectKBest é selecionar as melhores features para construção do modelo. Portanto ele vai vasculhar os dados e ver quais são as colunas (features) que tem uma melhor relação com o target (variável de saída).

Quando você faz o selecionar_kmelhores.fit(treino_x, treino_y), o SelectKBest vai devolver as features com melhor relação, você pode checar quais são da seguinte forma:

print("Feature selection", selecionar_kmelhores.get_support())
print("Feature scores", selecionar_kmelhores.scores_)
print("Selected features:", list(X.columns[selecionar_kmelhores.get_support()]))
print("Removed features:", list(X.columns[~selecionar_kmelhores.get_support()]))

Após isso, você usa o transform para usar somente as colunas que o SelectKBest selecionou. Ou seja:

treino_kbest = selecionar_kmelhores.transform(treino_x)
teste_kbest = selecionar_kmelhores.transform(teste_x)

Vai te devolver os dados somente com as colunas que o SelectKBest selecionou. Antes de fazer esse código, o treino_x e treino_y não são atualizados, somente foram usados no SelectKBest para ver as colunas que são melhores.

Assim fica salvo em treino_kbest e teste_kbest somente as os dados com as colunas relevantes.

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!

Explicação muito clara, obrigado.