Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Erro ao realizar o desafio 4 da 4° aula

Se ao tentar realizar a última linha de comando do desafio, a linha de usar o comando predict no 'modelo_arvore', você receber o erro de que não é possível converter 'string' para 'float' ou 'sim' para float, é porque os dados das tabelas fornecidas pelo exercício estão divergentes. A primeira tabela que você recebe no desafio, as colunas 'tem_cartao_credito' e 'membro_ativo' já estão convertidas para 0 ou 1, ao invés de sim ou não. Entretanto, ao receber o conjunto de dados do desafio 4, essas colunas vem com o formato string, ou seja 'sim / não', gerando então o erro. Para solucionar, você pode alterar as duas colunas da tabela inicial para sim ou não, mas aí você precisará adicioná-las no seu 'one_hot', ou então, basta mudar os dados recebidos das colunas 'tem_cartao_credito' e 'membro_ativo' da tabela do desafio 4, para 1 e 1, representando o 'sim' e 'sim'.

1 resposta
solução!

Dá pra seguir de duas maneiras:

Mudar as colunas da tabela inicial para 'sim' ou 'não' e depois colocar isso no 'one_hot'.

# Primeiro, troca 0 e 1 por 'não' e 'sim'
tabela_inicial['tem_cartao_credito'].replace({0: 'não', 1: 'sim'}, inplace=True)
tabela_inicial['membro_ativo'].replace({0: 'não', 1: 'sim'}, inplace=True)

# Depois, manda ver no 'one_hot'
one_hot = pd.get_dummies(tabela_inicial[['tem_cartao_credito', 'membro_ativo']])

Ou então, muda os dados das colunas 'tem_cartao_credito' e 'membro_ativo' do desafio 4 pra 0 e 1. Sacou?

# Troca 'não' e 'sim' por 0 e 1
novo_dado['tem_cartao_credito'].replace({'não': 0, 'sim': 1}, inplace=True)
novo_dado['membro_ativo'].replace({'não': 0, 'sim': 1}, inplace=True)

Tá aí! Essas dicas devem te ajudar a resolver o problema. Ah, e não esquece: é bom manter tudo alinhadinho pra não dar ruim mais pra frente, beleza?