XGBoost: trénování a predikce
Je čas sestavit tvůj první XGBoost model! Jak ti Sergey ukázal ve videu, k trénování a predikci XGBoost modelů můžeš využít paradigma .fit() / .predict() ze scikit-learn, které už znáš — knihovna xgboost totiž nabízí API kompatibilní se scikit-learn!
V tomto cvičení budeš pracovat s daty o odchodu zákazníků. Dataset obsahuje fiktivní data z aplikace pro sdílení jízd: chování uživatelů v průběhu jejich prvního měsíce používání aplikace ve fiktivních městech a informaci o tom, zda službu využívali i 5 měsíců po registraci. Data jsou předem načtena do DataFrame s názvem churn_data — prozkoumej ho v shellu!
Tvým cílem je na základě dat z prvního měsíce předpovědět, zda uživatelé budou aplikaci stále používat i po 5 měsících. To je typický scénář pro predikci odchodu zákazníků. Data rozdělíš na trénovací a testovací sadu, na trénovací sadě natrénuješ jednoduchý model xgboost a jeho výkon vyhodnotíš na testovací sadě výpočtem přesnosti.
pandas a numpy jsou již importovány jako pd a np a train_test_split je importován z sklearn.model_selection. Pole příznaků a cílové proměnné jsou připraveny jako X a y.
Toto cvičení je součástí kurzu
Extreme Gradient Boosting with XGBoost
Pokyny k cvičení
- Importuj
xgboostjakoxgb. - Vytvoř trénovací a testovací sady tak, aby 20 % dat bylo použito pro testování. Nastav
random_statena123. - Vytvoř instanci
XGBoostClassifierjakoxg_clpomocíxgb.XGBClassifier(). Nastavn_estimatorsna10aobjectivena'binary:logistic'. Zatím si s tím nedělej starosti — o těchto parametrech se dozvíš více později v kurzu. - Pomocí metody
.fit()natrénujxg_clna trénovací sadě (X_train, y_train). - Pomocí metody
.predict()předpověz štítky testovací sady (X_test) a kliknutím na 'Odeslat odpověď' zobraz výslednou přesnost.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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))