XGBoost: dopasowanie i predykcja
Czas zbudować swój pierwszy model XGBoost! Jak pokazał Sergey w filmie, możesz korzystać ze schematu .fit() / .predict() ze scikit-learn, który już znasz – biblioteka xgboost udostępnia API zgodne z scikit-learn!
W tym ćwiczeniu pracujesz z danymi dotyczącymi rezygnacji klientów (churn). Zbiór danych zawiera fikcyjne dane z aplikacji do wspólnych przejazdów: zachowania użytkowników w ciągu pierwszego miesiąca korzystania z aplikacji w wybranych miastach oraz informację, czy nadal korzystali z usługi po 5 miesiącach od rejestracji. Dane zostały wczytane do ramki danych churn_data – możesz je przejrzeć w konsoli!
Twoim celem jest wykorzystanie danych z pierwszego miesiąca do przewidzenia, czy użytkownicy aplikacji pozostaną jej klientami po 5 miesiącach. To typowe podejście do problemu przewidywania rezygnacji. W tym celu podzielisz dane na zbiór treningowy i testowy, dostosujesz mały model xgboost do danych treningowych, a następnie ocenisz jego skuteczność na zbiorze testowym, obliczając dokładność.
Biblioteki pandas i numpy zostały zaimportowane jako pd i np, a train_test_split – z sklearn.model_selection. Tablice cech i zmiennej docelowej są dostępne jako X i y.
To ćwiczenie jest częścią kursu
Extreme Gradient Boosting with XGBoost
Instrukcje do ćwiczenia
- Zaimportuj
xgboostjakoxgb. - Utwórz zbiory treningowy i testowy tak, aby 20% danych trafiło do zbioru testowego. Użyj
random_staterównego123. - Utwórz instancję
XGBoostClassifierjakoxg_cl, korzystając zxgb.XGBClassifier(). Ustawn_estimatorsna10orazobjectivena'binary:logistic'. Nie martw się na razie, co to oznacza – tych parametrów nauczysz się w dalszej części kursu. - Dopasuj
xg_cldo zbioru treningowego (X_train, y_train) za pomocą metody.fit(). - Przewidź etykiety zbioru testowego (
X_test) za pomocą metody.predict()i kliknij „Prześlij odpowiedź", aby wyświetlić dokładność.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))