1
resposta

Como ver as variaveis escolhidas pelo Select K Best

ola, tudo bem ?

Como posso saber quais as variaveis escolhidas pelo Select K best? e se possivel, quais escolhidas no RFE

1 resposta

Olá, João Vitor! Tudo tranquilo?

Vou mostrar aqui uma das soluções para a pergunta, caso não seja exatamente o que você procura solicito que entre novamente em contato por aqui, tá bem?

Vamos dividir em duas partes, uma para o SelectKBest e outra para o RFE.

SelectKBest:

Quando consultamos a documentação, podemos ver que há um método chamado get_support() que nos retorna um array de True ou False, onde True indica que o atributo está selecionado e False indica que o atributo não está selecionado, ou um array de inteiros com o índice das colunas selecionadas.

Então podemos fazer a seleção da seguinte forma:

selecao_variaveis = selecionar_kmelhores.get_support()
selecao_variaveis

Saída:

array([False, False,  True, False, False, False, False, False, False,
       False, False,  True,  True, False, False, False, False, False,
       False,  True, False,  True, False, False, False, False, False,
       False])

Caso não sua intenção obter um array de booleanos podemos fazer a seleção passando o parâmetro indices=False que vai nos retornar quais colunas foram selecionadas:

selecao_variaveis = selecionar_kmelhores.get_support(indices=True)
selecao_variaveis

Saída:

array([ 2, 11, 12, 19, 21], dtype=int64)

Esses valores inteiros são exatamente os índices colunas selecionadas.

Agora queremos saber exatamente quais são esses atributos/colunas, que são os exames, que foram selecionados:

colunas_selecionadas = treino_x.columns[selecao_variaveis]
colunas_selecionadas

Saída:

Index(['exame_5', 'exame_14', 'exame_15', 'exame_22', 'exame_25'], dtype='object')

Só lembrando que algumas colunas de exames foram removidas no seguinte trecho de código: valores_exames_v1.drop(columns=['exame_4', 'exame_29', 'exame_3', 'exame_24'])

Logo os 5 melhores exames, utilizando o SelectKBest, usados para nossa classificação são: 'exame_5', 'exame_14', 'exame_15', 'exame_22', 'exame_25' .

RFE:

Na documentação do RFE, vemos que também há o método get_support() que nos retorna exatamente a mesma coisa que o get_support() do SelectKBest. Farei a seleção igual a segunda forma, mas primeira forma apresentada também é válida.

selecao_rfe = selecionador_rfe.get_support(indices=True)
selecao_rfe

Saída:

array([ 5,  6, 19, 21, 25], dtype=int64)

Imprimindo as colunas selecionadas pelo RFE:

colunas_selecionadas_rfe = treino_x.columns[selecao_rfe]
colunas_selecionadas_rfe

Saída:

Index(['exame_8', 'exame_9', 'exame_22', 'exame_25', 'exame_30'], dtype='object')

Logo os 5 melhores exames, utilizando o RFE, usados para nossa classificação são: 'exame_8', 'exame_9', 'exame_22', 'exame_25', 'exame_30' .

Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.

:)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!