Previsão de CTR com árvores de decisão

Prevendo CTR com Machine Learning em Python

Kevin Huo

Instructor

Árvores de decisão

Exemplo de árvore de decisão para concessão de crédito por idade e status de estudante

  • Nós representam as variáveis
  • Ramos representam decisões baseadas nas variáveis
  • Exemplos de saída na tabela abaixo:
  • Primeiro corte: idade da pessoa
  • No grupo jovem, o segundo corte é pelo status de estudante
  • O modelo dá heurísticas para entender o problema
is_student loan
middle_aged 1
youth no 0
youth yes 1
Prevendo CTR com Machine Learning em Python

Treinando e testando o modelo

  • Criar com: clf = DecisionTreeClassifier()
  • Como na regressão logística, a árvore usa clf.fit(X_train, y_train) para treinar e clf.predict(X_test) para prever rótulos:

    array([0, 1, 1, ..., 1, 0, 1])
    
  • clf.predict_proba(X_test) retorna probabilidades:

    array([0.2, 0.8], [0.4, 0.6] ..., [0.1, 0.9] [0.3, 0.7]])
    
  • Exemplo de divisão aleatória treino/teste, com 30% para teste: train_test_split(X, y, test_size = .3, random_state = 0)

Prevendo CTR com Machine Learning em Python

Avaliação com curva ROC

Exemplo de área sob a curva ROC de um classificador

  • Taxa de verdadeiros positivos (eixo Y) = #(classifica positivo e é positivo) / #(positivos)
  • Taxa de falsos positivos (eixo X) = #(classifica positivo e é negativo) / #(negativos)
  • Linha azul pontilhada: base AUC de 0,5
  • Queremos a linha laranja (AUC) o mais perto de 1 possível
Prevendo CTR com Machine Learning em Python

AUC da curva ROC

Y_score = clf.predict_proba(X_test)
fpr, tpr, thresholds = roc_curve(Y_test, Y_score[:, 1])
  • Entradas de roc_curve(): vetores de teste e de score
roc_auc = auc(fpr, tpr)
  • Entrada de auc(): vetores de falso-positivo e verdadeiro-positivo

  • Se o modelo está preciso e o CTR é baixo, vale repensar a mensagem do anúncio e o público-alvo

Prevendo CTR com Machine Learning em Python

Vamos praticar!

Prevendo CTR com Machine Learning em Python

Preparing Video For Download...