XGBoost: Ajuste/Predição
É hora de criar seu primeiro modelo com XGBoost! Como o Sergey mostrou no vídeo, você pode usar o paradigma do scikit-learn .fit() / .predict() que você já conhece para construir seus modelos com XGBoost, já que a biblioteca xgboost tem uma API compatível com o scikit-learn!
Aqui, você vai trabalhar com dados de churn. Este conjunto de dados contém informações fictícias de um app de caronas, com os comportamentos dos usuários durante o primeiro mês de uso em um conjunto de cidades imaginárias, além de indicar se eles usaram o serviço 5 meses após o cadastro. Ele já foi carregado para você em um DataFrame chamado churn_data — explore-o no Shell!
Seu objetivo é usar os dados do primeiro mês para prever se os usuários do app continuarão usando o serviço após 5 meses. Esse é um cenário típico de previsão de churn. Para isso, você vai dividir os dados em conjuntos de treino e teste, ajustar um pequeno modelo xgboost no conjunto de treino e avaliar seu desempenho no conjunto de teste calculando a acurácia.
pandas e numpy foram importados como pd e np, e train_test_split foi importado de sklearn.model_selection. Além disso, os arrays de atributos e alvo já foram criados como X e y.
Este exercício faz parte do curso
Extreme Gradient Boosting com XGBoost
Instruções do exercício
- Importe
xgboostcomoxgb. - Crie os conjuntos de treino e teste de forma que 20% dos dados sejam usados para teste. Use
random_stateigual a123. - Instancie um
XGBoostClassifiercomoxg_clusandoxgb.XGBClassifier(). Especifiquen_estimatorscomo10estimadores eobjectivecomo'binary:logistic'. Não se preocupe com o significado disso agora; você vai aprender sobre esses parâmetros mais adiante no curso. - Ajuste
xg_clao conjunto de treino (X_train, y_train)usando o método.fit(). - Faça a predição dos rótulos do conjunto de teste (
X_test) usando o método.predict()e clique em 'Enviar Resposta' para imprimir a acurácia.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Import xgboost
____
# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]
# Create the training and test sets
X_train, X_test, y_train, y_test= ____(____, ____, test_size=____, random_state=123)
# Instantiate the XGBClassifier: xg_cl
xg_cl = ____.____(____='____', ____=____, seed=123)
# Fit the classifier to the training set
____
# Predict the labels of the test set: preds
preds = ____
# Compute the accuracy: accuracy
accuracy = float(np.sum(preds==y_test))/y_test.shape[0]
print("accuracy: %f" % (accuracy))