XGBoost: Träna/Förutsäg
Nu är det dags att skapa din första XGBoost-modell! Som Sergey visade i videon kan du använda scikit-learns .fit() / .predict()-mönster som du redan känner till för att bygga dina XGBoost-modeller – biblioteket xgboost har nämligen ett scikit-learn-kompatibelt API!
Här kommer du att arbeta med churn-data. Datamängden innehåller fiktiva data från en samåkningsapp med användarbeteenden under deras första månad och huruvida de använde tjänsten 5 månader efter registrering. Den har förhandsladdats åt dig i en DataFrame som heter churn_data – utforska den gärna i Shell!
Målet är att använda data från den första månaden för att förutsäga om appens användare fortfarande är aktiva kunder vid 5-månadersmärket. Det här är ett typiskt upplägg för ett churn-prediktionsproblem. Du delar upp datan i tränings- och testmängder, tränar en liten xgboost-modell på träningsdatan och utvärderar dess prestanda på testmängden genom att beräkna noggrannheten.
pandas och numpy har importerats som pd och np, och train_test_split har importerats från sklearn.model_selection. Arrayerna för särdragen och målet har dessutom skapats som X och y.
Den här övningen är en del av kursen
Extreme Gradient Boosting med XGBoost
Övningsinstruktioner
- Importera
xgboostsomxgb. - Skapa tränings- och testmängder så att 20 % av datan används för testning. Använd
random_state123. - Instansiera en
XGBoostClassifiersomxg_clmedxgb.XGBClassifier(). Angen_estimatorstill10estimatorer ochobjectivetill'binary:logistic'. Du behöver inte oroa dig för vad detta innebär just nu – du lär dig om dessa parametrar senare i kursen. - Träna
xg_clpå träningsdatan (X_train, y_train) med metoden.fit(). - Förutsäg etiketterna för testmängden (
X_test) med metoden.predict()och klicka på 'Skicka in svar' för att skriva ut noggrannheten.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))