Cross validation et SGD

On continue dans la suite du lab 03 sur le dataset du titanic

Dans cette partie, vous allez maintenant

  • Convertir les variables catégoriques en numériques avec LabelEncoder

Illustration de l'overfitting

Dans la suitre on utilise AUC comme métrique.

  • Scinder le dataset original en train et test subsets (80 / 20).

    • utilisez pour cela la fonction train_test_split
      from sklearn.model_selection import train_test_split

    • Il vous faudra surement shuffle le dataset original avec la fonction df.sample(frac = 1)

Entrainez un classifier SGD et pour chqaue modèle

  • Cas 1: pas de regularisation
    • supprimez la regularisation penalty = 'none'
    • faites varier le learning rate et observez comment varie le score AUC sur le subset de test.
    • pour faire manuellement varier le learning_rate il faut
      • set learning_rate = 'constant'
      • set eta0 = 0.01, 0.1, ...
    • Comparez avec le score sur le subset de train
    • observez-vous de l'overfitting ?
  • Cas 2: Regularisation L2

    • penalty = 'l2'
    • faites varier le parametre alpha et observer la variation du score sur le test et le training set
    • Les resultats sont ils differents si vous re-schufflez le dataset original
    • pour obtenir les memes resultats d'une fois
  • Cas 3: K-fold cross validation

    • set learning_rate = 'optimal'
    • selectionnez le meilleur modele en fonction de la regularization en utilisant le k-fold cross validation
    • cf les fonctions suivantes
      • class sklearn.model_selection.KFold(n_splits=’warn’, shuffle=False, random_state=None)
      • sklearn.model_selection.cross_val_score(estimator, X, y=None, groups=None, scoring=None, cv=’warn’, n_jobs=None, verbose=0, fit_params=None, pre_dispatch=‘2*n_jobs’, error_score=’raise-deprecating’)
In [ ]: