Sklearn make_scorer tutoriel : Créer vos propres métriques.

Поделиться
HTML-код
  • Опубликовано: 10 дек 2019
  • Dans ce tutoriel python français, je vous montre comment utiliser la fonction make_scrorer de sklearn. Cette fonction est utile pour créer vos propres métriques dans sklearn et développer des modeles de Machine Learning / Data Science sur la base de ces métriques (via la Cross Validation et GridSeachCV)
    ► MON SITE INTERNET EN COMPLÉMENT DE CETTE VIDÉO:
    machinelearnia.com/
    ► REJOINS NOTRE COMMUNAUTÉ DISCORD
    / discord
    ► D'autres BONUS sur Tipeee:
    fr.tipeee.com/machine-learnia
    ► Recevez gratuitement mon Livre:
    APPRENDRE LE MACHINE LEARNING EN UNE SEMAINE
    CLIQUEZ ICI:
    machinelearnia.com/apprendre-...
    ► Télécharger gratuitement mes codes sur github:
    github.com/MachineLearnia
    ► Abonnez-vous : / @machinelearnia
    ► Pour En Savoir plus : Visitez Machine Learnia : machinelearnia.com/
    ► Qui suis-je ?
    Je m’appelle Guillaume Saint-Cirgue et je suis Data Scientist au Royaume Uni. Après avoir suivi un parcours classique maths sup maths spé et avoir intégré une bonne école d’ingénieur, je me suis tourné vers l’intelligence artificielle de ma propre initiative et j’ai commencé à apprendre tout seul le machine learning et le deep learning en suivant des formations payantes, en lisant des articles scientifiques, en suivant les cours du MIT et de Stanford et en passant des week end entier à développer mes propres codes.
    Aujourd’hui, je veux vous offrir ce que j’ai appris gratuitement car le monde a urgemment besoin de se former en Intelligence Artificielle.
    Que vous souhaitiez changer de vie, de carrière, ou bien développer vos compétences à résoudre des problèmes, ma chaîne vous y aidera.
    C’est votre tour de passer à l’action !
    ► Une question ? Contactez-moi: contact@machinelearnia.com

Комментарии • 65

  • @kevingerry5574
    @kevingerry5574 5 месяцев назад

    "Avec vous, les sujets complexes semblent tellement simples. Merci pour cette vidéo !"

  • @LaurentD90
    @LaurentD90 3 года назад +1

    Encore une excellente vidéo. Au passage, les videos sur Tipeee sont énormes.

    • @MachineLearnia
      @MachineLearnia  3 года назад +1

      Merci beaucoup, et c'est cool d'avoir un témoignage a propos des vidéos Tipeees ;)

  • @kemmounramzy6232
    @kemmounramzy6232 Год назад

    TRES EXCELENT ! MERCIII MR.

  • @kingprince1860
    @kingprince1860 4 года назад +1

    merci pour la vidéo, et j'ai beaucoup aimer l'intro qui donne bien le contexte entreprise, ça m'aide beaucoup, car pour comprendre j'aime beaucoup conceptualiser pour me mettre en situation d'entreprise ou cas concret, sinon je ne comprendrais rien.

    • @MachineLearnia
      @MachineLearnia  4 года назад +1

      C'est normal de devoir se raccrocher a un cas concret pour bien comprendre, ne t'en fais pas ! :)

  • @philtoa334
    @philtoa334 4 года назад +1

    Toujours au top.

  • @abdoulayediop956
    @abdoulayediop956 9 месяцев назад

    Chapeau à toi

  • @ulrichkarlodjo1457
    @ulrichkarlodjo1457 4 года назад

    Hello World 👋🏾! Super vidéo Machinelearnia je crois que je vais énormément m’en servir 😅

    • @MachineLearnia
      @MachineLearnia  4 года назад +1

      Merci Ulrich ! Je suis content si ca peut t'aider oui :)

  • @ibrahimdiarra3104
    @ibrahimdiarra3104 3 года назад

    Bonjour, je me nomme Ibrahim Diarra etudiant en Master 2 Systeme d'information et tres passionne par la data science, je suis vos tutoriel et j'aimerais vraiment travailler dans ce domaine. vous etes le meilleur sur youtube que j'ai vu dans ce domaine. vous me donner gout de continuer.

    • @MachineLearnia
      @MachineLearnia  3 года назад +1

      Merci beaucoup Ibrahim ! Je suis content de pouvoir vous aider a atteindre vos objectifs. Foncez, vous êtes le meilleur !

  • @Master_of_Chess_Shorts
    @Master_of_Chess_Shorts 2 года назад

    super info !

  • @mbouchra295
    @mbouchra295 4 года назад

    Merci bcp; c'est super, bn continuation

  • @madjidbelkheir7296
    @madjidbelkheir7296 3 года назад

    Très intéressant, merci

  • @amyd.2840
    @amyd.2840 4 года назад +2

    Vidéo super utile merci ! Les infographies publiées sur tipeee sont top ! 👍

  • @TheRemiRODRIGUES
    @TheRemiRODRIGUES 4 года назад

    Super !
    Je m'étais toujours demandé comment s'adapter à des cas spécifiques.
    Du genre, une tolérance de 10 % est acceptable, mais il ne faut surtout pas de faux positifs.
    Merci !

    • @MachineLearnia
      @MachineLearnia  4 года назад +1

      De rien ! Ça fait plaisir de te revoir sur la chaîne :)

  • @florianraulet8910
    @florianraulet8910 3 года назад

    au top !

  • @user-xx6yr1bl7b
    @user-xx6yr1bl7b 3 года назад

    Very good learning for make_scorer

  • @oulaimonsiorodrigue5287
    @oulaimonsiorodrigue5287 3 года назад

    Merci beaucoup pour ces enseignements bien conçus et avec une belle translation mais svp Mr Saint-Cirgue, pouvez-vous faire une vidéo sur l'implémentation de l'algorithme du gradient à pas constant sous un programme de votre
    choix (Scilab ou Python) ?

    • @MachineLearnia
      @MachineLearnia  3 года назад

      Bonjour, Je l'ai déja fait dans les vidéos sur la regression lineaire, avec l'explication mathematique qui va avec.

  • @MiisterSiix
    @MiisterSiix 4 года назад +1

    Merci pour cette vidéo ainsi que pour toutes les autres, elles sont géniales.
    J'aurai une question concernant la normalisation des données dans un dataset.
    Je ne comprend pas en quoi cela est utile dans le développement d'un modèle de ML et tu ne l'utilise jamais dans tes modèles, par exemple dans le dataset des prix de l'immobilier de Boston. Pourtant les features n'ont pas la même unités.
    Si tu as une brève explication, je serai ravi de l'entendre et si la raison est plus complexe cela pourrai faire un sujet de vidéo assez cool.
    Bonne continuation

    • @MachineLearnia
      @MachineLearnia  4 года назад +2

      Merci d'avoir poser cette question si importante. A l'exception des modeles basés sur les arbres de décisions, il faut Toujours normaliser nos données. Si je ne l'ai pas fait dans mes vidéos jusqu’à présent, c'est pour ne pas brusquer les choses en transmettant trop d'informations d'un coup.
      Cependant, le hasard des choses fait que la prochaine vidéo porte totalement sur ce sujet !
      En attendant, pour répondre a ta question : la normalisation aide principalement les descentes de gradient a converger plus facilement (je l'expliquerai en dessin dans une vidéo prochaine). La normalisation aide également les algorithmes de voisins les plus proches car les distances calculée sont toutes sur une même échelle (je montrerai également cela en dessin) et pour finir la normalisation impacte aussi les calculs de variances, donc les algorithmes tels que SVM, PCA obtiennent de meilleurs performances (il faut se plonger dans les détails mathématiques pour mieux comprendre pourquoi)

  • @allalhoussaini2842
    @allalhoussaini2842 4 года назад +2

    Bonjour !
    Avant tout j'espère que tu as passé un bon réveillon.
    Et merci pour le contenu de ta chaîne :)
    Intéressé par l'application de la ML avec le business, je serai intéressé d'échanger avec toi sur nos parcours respectifs et notamment ce que tu entends par "ML engineer" : Les definitions que j'ai trouvé ne recouvrent pas tous le même champs et il est assez difficile de trouvé un profil et compétences types (par exemple).
    Ce serait avec grand plaisir d'échanger avec toi si tu l'accepte :)

    • @MachineLearnia
      @MachineLearnia  4 года назад

      Salut et merci beaucoup !
      Je serai heureux de répondre à tes questions sur discord, tu peux trouver le lien vers la communauté dans la description de la vidéo.
      Bonnes fêtes de fin d'année à toi également ;)

  • @pulsorion
    @pulsorion 4 года назад +1

    👍👍

  • @abdoulayediop956
    @abdoulayediop956 9 месяцев назад

    J’aimerais bien recevoir tes conseils, je suis en Master2 de Data Science

  • @pouriaforouzesh5349
    @pouriaforouzesh5349 2 года назад

    👍

  • @hassansemlali8624
    @hassansemlali8624 4 года назад

    Thinks

  • @espoireespoire4227
    @espoireespoire4227 4 года назад +2

    Merci infiniment pour cette super vidéo😌
    est ce que on peut tracer la courbe d'erreur pour le dernier model ? Vraiment merci pour ta présence et pour cette chaine RUclips.

    • @MachineLearnia
      @MachineLearnia  4 года назад

      Merci beaucoup ! :)
      Oui on peut tracer les scores de la Cross_validation en écrivant grid.cv_results. Cela donne un tableau numpy qui contient les différents scores a travers la cross validation.
      Ensuite il ne reste plus qu'a visualiser ce tableau avec Matplotlib.

    • @espoireespoire4227
      @espoireespoire4227 4 года назад

      Merci Beaucoup je vais essayer de le faire💪.

    • @MachineLearnia
      @MachineLearnia  4 года назад +1

      @@espoireespoire4227 Je suis sur que tu vas réussir ! n'hésite pas a me dire si tu as besoin d'aide ! :D

  • @imedkhabbouchi2161
    @imedkhabbouchi2161 2 года назад

    Très belle vidéo merci pour le partage.
    J'ai une petite question comment peut on calculer le "confidence interval" et "Prediction interval" dans le cas de forecasting d'une "time series" avec le régresseur SVR?
    Merci d'avance

    • @MachineLearnia
      @MachineLearnia  2 года назад

      le SVR n'est pas un modele de time series, je suis un peu confu par votre question du coup.

  • @ginobilly78
    @ginobilly78 4 года назад

    Super vidéo !!
    J'ai une question:
    Dans le cadre d'une classification à 3 classes , comment construire sa métrique avec la probabilité pour chaque classes donnée par notre modèle ( c-à-d que j'aimerais utiliser y_pred_proba=mon_model.predict_proba(X) dans la fonction qui calcule mon indice de performance ) ?

    • @MachineLearnia
      @MachineLearnia  4 года назад

      L’idée est intéressante, mais est-il judicieux de la mettre en place ? Vouloi maximiser les bonnes probabilités revient a vouloir maximiser les pourcentages de bonnes réponses, mais cela peut rendre le travail de la machine plus long. Je ne voudrais pas vous conseiller une solution qui va vous prendre beaucoup de temps a mettre en place pour ne pas vous donner de résultats

  • @3MAS-FR-MA
    @3MAS-FR-MA 4 года назад +2

    Super. Où se trouve la dataset svp?

    • @MachineLearnia
      @MachineLearnia  4 года назад

      J'ai simulé ces données moi-même avec Numpy. Vous pouvez recopier le code qui se situe au début de la vidéo pour obtenir le même résultat.

  • @mohammed_yazidcherifi9816
    @mohammed_yazidcherifi9816 4 года назад

    Merci infiniment pour cette vidéo,
    j'ai juste une petite question, là on a utilisé la régression et ça a donné un mauvais score, et même avec le SVR ça ne donne pas vraiment de très bon résultats; alors je me demandais quel serait le(les) meilleurs modèles pour ce genre de dataset ?
    Merci beaucoup.
    Cordialement.

    • @MachineLearnia
      @MachineLearnia  4 года назад

      Pour cette vidéo en particulier, un KNN pourrait bien fonctionner, mais pas dans la vraie vie (si on a trop de données). Dans la vraie vie il faudrait faire beaucoup de pre-processing et du feature engineering (création de variables utiles) pour entrainer ensuite un modele de ML

  • @FRUXT
    @FRUXT 2 года назад

    Quand tu utilises cross validation et grid cv pourquoi tu passes en argument X et y et pas X_train et y_train ?

  • @noel9335
    @noel9335 4 года назад

    La fonction mean_absolute_error(y, y_pred) doit correspondre à la fonction vue dans un précédent tuto soit :
    def coeff_determination(y, pred):
    u = ((y - pred)**2).sum()
    v = ((y - y.mean())**2).sum()
    return 1 - u/v
    coeff_determination(y, predictions)
    Est-ce bien cela ?
    Merci.

  • @koben5435
    @koben5435 4 года назад +1

    Merci à toi. fais péter l'url du site de tip participatif...

    • @MachineLearnia
      @MachineLearnia  4 года назад +1

      Merci beaucoup. Le lien est dans la description de la vidéo

  • @aimeritedonald6689
    @aimeritedonald6689 4 года назад

    salut !! je me demandait si c'est possible que tu fasses un cas pratique sur le machine learning un jour... !!

    • @MachineLearnia
      @MachineLearnia  4 года назад

      Salut ! :) Je vais bientôt en faire TOUT PLEINS ! (spoiler : ça va commencer avec la vidéo 28/30 qui arrivent bientôt car le rythme de vidéos s’accélère)

  • @noel9335
    @noel9335 4 года назад

    Alors là je ne comprends pas : Le cahier des charges est d'un taux d'erreur de plus ou moins 20%. Après le calcul du meilleur modèle on obtient avec la commande custom_metric(y, y_pred) une probabilité de 64%.
    Donc on a tout faux sur cet exercice ? Quelle est l'astuce ? Ai-je dis une grooosssseeee betise ?
    Merci.

    • @noel9335
      @noel9335 4 года назад +1

      Bonjour,
      Serait-il possible d'avoir une réponse à ma précédente question car sur cette vidéo ce point est bloquant pour moi.
      Et oui, cela arrive... ;)
      Merci.

    • @MachineLearnia
      @MachineLearnia  4 года назад +1

      quand une prédiction est différente de plus de 20% de la réalité, alors c'est une erreur !
      Ensuite on compte le nombre d'erreurs -> par exemple si 90 prédictions sur 100 sont correctes (en dessous du seuil des 20%) alors on a un score général de 90%

    • @noel9335
      @noel9335 4 года назад +1

      @@MachineLearnia Merci pour ta réponse : cela je l'avais compris.
      Ce que je ne comprends pas, c'est pourquoi avec la commande custom_metric(y, y_pred) une probabilité de 64%. Cela semble mauvais comme résultat.
      A+ ;)

    • @MachineLearnia
      @MachineLearnia  4 года назад

      Si les y sont tres faibles (proche de 0) alors la tolérance de 20% devient elle aussi tres petite, ce qui peut expliquer le taux d'erreur élevés.

  • @shootsoccer948
    @shootsoccer948 3 года назад

    Bonjour Guillaume, Pouvez vous m'aidez sur ce probleme: je bloc sur
    #model = SVR(kernel='rbf', degree=3)
    #param = {'gamma': np.arrange(0.1, 1, 0.05)}
    #grid = GridSearchCV(model, param_grid=param, cv=3, scoring=custom_score)
    il plante a cette endroit et me donne comme erreur
    File "C:\Users\pierre\anaconda3\lib\site-packages
    umpy\__init__.py", line 214, in __getattr__
    raise AttributeError("module {!r} has no attribute "
    pourtant j'ai tout comme la video!!

    • @shootsoccer948
      @shootsoccer948 3 года назад

      même en mettant params

    • @shootsoccer948
      @shootsoccer948 3 года назад

      j'ai trouvé un peu de repos et on s'epercoit de nos erreur {'gamma': np.arrange(0.1, 1, 0.05)}
      {'gamma': np.arange(0.1, 1, 0.05)}
      et sa change tout et sa fonctionne surtout(mdr)

    • @MachineLearnia
      @MachineLearnia  3 года назад +1

      Bravo pour avoir su trouver toi-meme la solution a ton erreur ! Tu iras loin :)

  • @abdelilahaitrouga3254
    @abdelilahaitrouga3254 Год назад +1

    def custom_error(y,y_pred):
    return 1-(1/len(y))*np.sum(y-y_pred)**2