ComeçarComece de graça

Identificar a profundidade ótima da árvore

Agora você vai ajustar o parâmetro max_depth da árvore de decisão para descobrir aquele que reduz o overfitting enquanto mantém boas métricas de desempenho do modelo. Você vai executar um loop for por vários valores do parâmetro max_depth, ajustar uma árvore de decisão para cada um e, em seguida, calcular as métricas de desempenho.

A lista chamada depth_list com os candidatos de profundidade já foi carregada para você. O array depth_tuning foi construído com 2 colunas: a primeira preenchida com os candidatos de profundidade e a segunda é um espaço reservado para a pontuação de recall. Além disso, as variáveis de atributos e alvo foram carregadas como train_X, train_Y para os dados de treino e test_X, test_Y para os dados de teste. As bibliotecas numpy e pandas também estão carregadas como np e pd, respectivamente.

Este exercício faz parte do curso

Machine Learning para Marketing em Python

Ver curso

Instruções do exercício

  • Execute um loop for no intervalo de 0 até o tamanho da lista depth_list.
  • Para cada candidato de profundidade, inicialize e ajuste um classificador de árvore de decisão e preveja churn nos dados de teste.
  • Para cada candidato de profundidade, calcule a pontuação de recall usando a função recall_score() e armazene-a na segunda coluna de depth_tunning.
  • Crie um DataFrame do pandas a partir de depth_tuning com os nomes de colunas apropriados.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Run a for loop over the range of depth list length
for index in ___(0, len(depth_list)):
  # Initialize and fit decision tree with the `max_depth` candidate
  mytree = DecisionTreeClassifier(___=depth_list[index])
  mytree.fit(___, train_Y)
  # Predict churn on the testing data
  pred_test_Y = mytree.predict(___)
  # Calculate the recall score 
  depth_tuning[index,1] = ___(test_Y, ___)

# Name the columns and print the array as pandas DataFrame
col_names = ['Max_Depth','Recall']
print(pd.DataFrame(depth_tuning, columns=___))
Editar e executar o código