SKLEARN IMPUTER : NETTOYAGE DE DONNÉES

Поділитися
Вставка
  • Опубліковано 30 лис 2024

КОМЕНТАРІ • 154

  • @DataScienceMAHAMAT
    @DataScienceMAHAMAT 7 місяців тому +2

    Merci pour votre générosité, c'est très pédagogique.

  • @madaragrothendieckottchiwa8648
    @madaragrothendieckottchiwa8648 4 роки тому +3

    Merci encore guillaume de toujours garder ta simplicité et ta rigueur dans toutes les vidéos produites jusqu'alors force à toi

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Merci beaucoup pour ce message qui me touche. Je fais ca en toute humilité et c'est mon plus grand plaisir de recevoir de tels message qui confirment que mes vidéos et mon livre aident des gens :) Merci beaucoup !

    • @christndinga5182
      @christndinga5182 8 місяців тому

      bonjour MR @@MachineLearnia j'espere que vous allez bien j'ai une question concernant les données manquantes et j'aurais besoins de votre avis dans l'immédiat si possible

  • @mistermbodj
    @mistermbodj 4 роки тому +1

    Encore un grand merci pour tes cours.
    Tu nous donnes du savoir, une bonne pédagogie et une dose d'humour.
    Sans parler du montage vidéo qui prend beaucoup de temps vraiment.
    Chapeau 🤠.
    On voit seulement la partie visible de l'iceberg avec le produit fini en vidéo mais il y a un travail colossal derrière.
    Merci beaucoup pour tout ça

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Merci beaucoup cher ami. c'est toujours agréable de recevoir un message qui reconnait le temps investi dans les vidéos. A bientôt ! :)

  • @mondherelmufti6930
    @mondherelmufti6930 3 роки тому

    Merci infiniment pour la qualité de vos vidéos, je suis devenu passionné par la ML et ça grâce à votre simplicité et générosité. Je suis sûr qu'il y'a encore bcp des choses en ML à apprendre de vos vidéos.

  • @ibnououmardiallo367
    @ibnououmardiallo367 4 роки тому

    merci pour la qualité de vos videos et votre generosité

  • @TheRemiRODRIGUES
    @TheRemiRODRIGUES 4 роки тому

    Super vidéo ! Merci !
    L'absence d'information c'est de l'information !
    C'est vraiment très intéressant ! Cela peut ouvrir de nombreuses perspectives !

  • @kmiloduquino
    @kmiloduquino 4 роки тому +1

    C'est toujours important de choisir la méthode pour traiter les données manquantes car, ce n'est pas évident, mais cela affecte énormément la qualité des modèles.
    Merci beaucoup de cette vidéo Guillaume.

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Oui vous avez totalement raison, merci beaucoup :)

  • @abdoulayebadji2205
    @abdoulayebadji2205 4 роки тому +2

    Vous êtes le meilleur. Merci infiniment

  • @Enzo-js5uv
    @Enzo-js5uv 4 роки тому +1

    Bonjour, je regarde pas la vidéo car je ne comprend pas tout et ça ne m'intéresse pas énormément mais sache que c'est quand même super ! A chaque fois, je regarde la vidéo juste pour liker et regarder quelques minutes, même si ça ne me sert pas, je te soutiens 😉.

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Salut Enzo ! Oh mince je suis désolé de l'apprendre mais je te remercie énormément pour ton soutien !
      Pourrais-je savoir ce qui t'intéresserais comme contenu ? (ton commentaire a suscité ma curiosité) merci ! :D

    • @Enzo-js5uv
      @Enzo-js5uv 4 роки тому

      @@MachineLearnia En fait je ne suis pas passioné de machine learning, or ta chaîne est basé dessus.
      Ce qui m'intéresserait, pourquoi pas le Back-end d'un site Web en Django par exemple.
      Mais encore une fois, je sais que ta chaîne est faites pour du machine learning, donc je comprendrais totalement si tu le fais pas^^
      Je t'ai découvert en suivant les premiers tutos de la série jusqu'au machine learning ou je ne suivais plus trop :(.

    • @MachineLearnia
      @MachineLearnia  4 роки тому +2

      @@Enzo-js5uv Ah oui je me souviens parfaitement de ton commentaire pour Django. Arf je suis désolé de ne pas pouvoir t'aider dans l'immédiat, d'autant plus que je ne suis pas un expert de Django. J'avais cependant appris les bases grâce aux vidéos de Sentdex. Si tu ne le connais pas je te conseille de les voir. Merci beaucoup pour ton soutien tu m'as l'air quelqu'un de super sympa c'est dommage que je ne puisse pas t'aider plus que ca.. :(
      Mais je compte faire des vidéos de vulgarisation a l'avenir qui pourraient intéresser un panel plus large de personnes peut-etre que celles-ci te plairont un peu plus :)

    • @Enzo-js5uv
      @Enzo-js5uv 4 роки тому

      @@MachineLearnia Ah ça peut être bien ! Mais ne t'inquiètes pas x), c'est mieux que tu fasses des cours sur ce que tu maîtrises et ce que t'aimes faire, je trouverais bien un cours dessus :), je vais d'ailleurs aller voir Sentdex, merci du conseil 😊

  • @ulrichkarlodjo1457
    @ulrichkarlodjo1457 4 роки тому +1

    Super vidéo Merci beaucoup professeur Guillaume!! je crois que je vais avoir du boulot ce weekend pour appliquer tout ceci ahahaah!!

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Merci Ulrich ;) Ah c'est bien que tu pratiques immédiatement, bravo ! Si tu as la moindre question, n'hésites pas, tu me connais ;)

  • @julienjacquemont6048
    @julienjacquemont6048 4 роки тому +1

    Vidéo claire et pédagogique merci!

  • @LaurentD90
    @LaurentD90 3 роки тому

    Merci Guillaume, toujours très clair.

  • @SAMAmUrl
    @SAMAmUrl 4 роки тому +2

    Thanks a lot for this great effort .It was a concise and smooth lab which I enjoyed it. (I have few Udemy courses I bought, but I find yours by far better ) . I guess you have to think ro make a dedicated course on Udemy.

    • @MachineLearnia
      @MachineLearnia  4 роки тому +4

      Thanks a lot! It's an honour to hear that from you guys! I want to keep this content open to everyone for free!

  • @aimeritedonald6689
    @aimeritedonald6689 4 роки тому +3

    pile à l'heure !! je me lance toute suite

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Quelle ponctualité ! Je suis impressionné ahah

    • @aimeritedonald6689
      @aimeritedonald6689 4 роки тому +1

      @@MachineLearnia disons que... j'attendais cela,
      tes dernières vidéos m'ont aidé à résoudre certaines difficultés. merci bien...

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      @@aimeritedonald6689 Ah merci c'est un plaisir quand on me dit ça ! Parfois je n'ai aucun retour indiquant si oui ou non ma vidéo a permis de débloquer certaines personnes sur leur problèmes. Alors merci c'est très encourageant pour moi ! Quel était ton problème précisément ?

    • @aimeritedonald6689
      @aimeritedonald6689 4 роки тому +1

      @@MachineLearnia je travaillait sur un dataset qui contenait de bonnes et de mauvaises données à la fois, et quand j'entrnais mon modèle sa me donnait pas de bonne précision, j'avais eu l'impréssion que comme suis débutant dans la chose je laisse pour le moment et en apprennant d'avantage j'aurais la solution un jour, et du coup.. la semaine qui a suivi t'as mit une vidéo qui parlait du pré-processing. et j'ai donc compris mon problème.

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Oh merci oui je vois que ça a du être utile, le pre-processing c'est super important ! Merci de me l'avoir signalé

  • @pulsorion
    @pulsorion 4 роки тому +4

    Top ! ✔

  • @alexandreverdonck941
    @alexandreverdonck941 4 роки тому +3

    Super ! Merci beaucoup.
    Petite question : n'y a-t-il pas un risque d'overfitting lorsqu'on fait de l'imputation ? Si je remplace toutes les valeurs manquantes par la moyenne, je vais renforcer la tendance des données ? (Surtout si j'ai une proportion importante de valeurs manquantes, disons 30%)

    • @MachineLearnia
      @MachineLearnia  4 роки тому +2

      Salut !
      Je ne dirais pas que c'est de l'overfitting, mais un problème de biais, dans le sens où l'on biaise notre dataset avec trop de données modifiées / déformées.
      Donc oui on risque d'avoir un modele biaisé, c'est pourquoi il faut bien réfléchir à la technique d'imputation que l'on utilise. Ca peut-etre une des méthodes vues dans cette vidéo, ou bien de l'interpolation avec Scipy, ou encore une élimination de certaines lignes ou colonnes (quand vous avez trop de valeurs manquantes comme ici)

    • @alexandreverdonck941
      @alexandreverdonck941 4 роки тому

      ​@@MachineLearnia Salut ! Merci pour ta réponse. Effectivement maintenant que tu le dis c'est plutôt du biais que de l'overfitting :)

  • @yanisaithammou6410
    @yanisaithammou6410 4 роки тому +1

    merci infiniment 😍😍

  • @achrafzeroual1131
    @achrafzeroual1131 4 роки тому +1

    Toujours à la hauteur Monsieur Guillaume Saint-Cirgue, nous vous remercions infiniment pour vos efforts et votre style d'explication qui est pour moi le plus préféré. J'ai juste une petite question s'il vous plait, est ce qu'on effectue le nettoyage du dataset (les données) avant sa subdivision en trainset et testset ou on fait l'inverse ?

    • @MachineLearnia
      @MachineLearnia  4 роки тому +2

      Merci beaucoup :)
      La bonne pratique est de toujours découper les données en train et test en premier lieu, et ensuite nettoyer les données du trainset

  • @bebetobapsio9062
    @bebetobapsio9062 4 роки тому +1

    bonjour guillaume tout d’abord merci pour ce que tu fais...en quelques vidéos tu nous apprend plus que n'importe qui...stp je voudrais savoir si tu peux dans l'une de tes prochaines vidéo faire un programme avec le "modèle de mélange gaussien" ou du moins un exemple avec python car je voudrais d'une part mieux comprendre cette notion et aussi savoir comment la programmer ...merci encore une fois...

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Merci beaucoup pour ton retour ;)
      Oui je vais faire ca alors, une vidéo sur les Gaussian Mixtures et comment les programmer avec Sklearn.

    • @bebetobapsio9062
      @bebetobapsio9062 4 роки тому

      merci infiniment

  • @theom9184
    @theom9184 3 роки тому +1

    Bonjour Guillaume et merci pour tes vidéos, je ne suis pas sur de comprendre la partie où tu expliques qu'il ne faut pas faire de fuite d'informations vers le X_test mais que par ailleurs on prend pour moyenne du X_test la moyenne calculé sur le X_train, est ce que prendre la moyenne du X_test pour les valeurs manquantes n'est pas plus indiqué pour ne pas faire de fuite?

    • @MachineLearnia
      @MachineLearnia  3 роки тому +2

      Salut ! Non, je vais te donner un exemple.
      Admettons que tu analyses la hauteur des arbres d'une foret. Tu connais le diametre du tronc et tu cherches a prédire la hauteur a partir du tronc.
      Tu as 1000 arbres dans le dataset, tu divises en 800 / 200
      s'il te manques des infos dans le trainset (les 800) alors tu vas dire "bon on va prendre le diametre moyen, genre 50cm)
      Tu entraines ton modele, et maintenant tu veux t'en servir sur de futures données, comme celles du test.
      Mais dans le test aussi il te manque des infos, aors tu remplaces par la moyenne encore une fois. Mais pas par la moyenne du test, ca sera une erreur de logique (pas une fuite pour le coup). Car ton modele a été entrainé pour comprendre un échantillon d'arbres (les 800 de bases) qui ont un tronc moyen de 50cm. Si ca se trouve, dans les données de test, tu n'as pas eu de chance, et ce sont tous des arbres dont le tronc est plus fin, peut-etre une moyenne de 40cm, ou peut-etre pas ! Quoi qu'il en soit, ca va perturber ton modele qui appris a dire "ok cet arbre je ne le connais pas, on va dire qu'il est dans la moyenne de ce que j'ai apris par le passé, donc il fait 50cm)
      Autre argument (si jamais le précédent ne t'as pas convaincu) : Quand tu déploies ton modele a l'avenir, il fait des prédictions les unes apres les autres (donc c'est comme si ton dataset ne contenant qu'UNE seule donnée) -> comment faire une moyenne la dessus ? On ne peut pas. Donc on prend la moyenne du TrainSet.

    • @theom9184
      @theom9184 3 роки тому

      @@MachineLearnia D'accord oui ça fait complètement sens maintenant ! Je te remercie pour ta réponse extrêmement détaillée !

  • @SAMAmUrl
    @SAMAmUrl 4 роки тому +1

    Si jai des valeurs d'un même référence etalées sur plusieurs 6 lignes, p. ex. , et j'ai à faire la prédiction de la 7ième. et Ceci se répète pour d'autres référence. Devrais-je les transposer pour obtenir une ligne singilière par reférence ensuite faire le traitement de prédiction ?
    Quellw approche pourrais-je entreprendre. ?

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Je ne suis pas totalement sur de parfaitement comprendre la question, mais si vous voulez parler de time series, je vous invite a essayer Scipy avec la fonction interp1d et les autres fonctions temporelles

  • @yanisaithammou6410
    @yanisaithammou6410 4 роки тому +2

    Encore un grand Merci pour vos vidéos,
    j'ai une question : est ce que on peut utiliser la regression linéaire pour estimer les valeurs manquantes (continues), si oui est ce que on peut inclure la variable "target" pour son entrainement, pourriez vous me décrire les avantage et les inconvénients de cette technique . merci

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Cette question est parfaitement légitime. C'est un peu l'idée de IterativeImputer, que je n'ai pas présenté dans cette vidéo, car cet imputer est encore en version "test" dans sklearn. Il permet de prédire quels sont les valeurs manquantes NaN d'une variables en fonction de ce qu'il voit dans les autres variables : donc c'est comme ce que vous voulez dire ici.
      Personnellement je n'utilise pas cette technique, car en data science j'essaie de suivre le principe du rasoir d'Ockham ("faisons simple"). Effectuer des imputations propres et explicites permet de mieux comprendre le modèle que l'on développe par la suite.

  • @richmondkongo2976
    @richmondkongo2976 4 роки тому +2

    Superbe vidéo, j'ai décidé de me documenter sur le machine-learning et j'ai découvert cette chaîne avec ses magnifiques vidéos, grâce à toi j'ai un assez bon niveau théorique et je voudrais passer à la pratique toutefois, la barrière du langage de programmation se présente à moi. D'après mes recherches et ce que j'ai vu python est beaucoup utilisé mais en poussant mes recherches je constate qu'il est plus propice pour le prototypage que pour la production (certains préconisent le C/C++, JAVA... pour la mise en production de ses modèles). Je suis un peu indécis entre python, C/C++ et Go. Selon toi quel est le plus approprié pour le machine-learning en production et surtout pour les algorithmes d'apprentissage par renforcement?

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Bonjour et merci, je suis content de savoir que les vidéos vous aident. Python va bien au delà du prototypage, le temps de réponse est certes plus long et consomme plus d'energie que C/C++/Java, mais beaucoup de projets ne font pas la différences entre un temps de réponse de 10 ms et un temps de réponse de 20 ms...
      Si vous êtes certains de devoir programmer un system embarqué, alors il vous faut en effet apprendre le C ou C++, mais on parle la d'un niveau de 5 années d'études, il faut comprendre le fonctionnement d'un micro-processor etc, et ca ne s'apprend pas en 3 mois sur Internet.
      Si vous débutez en programmation (comme vous dites) je vous conseille fortement de commencer par Python, car cela vous permet d'améliore vos compétences en quelques mois, alors que le C/C++ requiert des années de pratique pour vraiment atteindre un bon niveau (car on ne parle pas de faire une petite application, mais de développer des programmes complexes)

    • @richmondkongo2976
      @richmondkongo2976 4 роки тому

      @@MachineLearnia Merci pour les précisions, je retiens que pour l'apprentissage par renforcement en robotique le C est plus adapté.

  • @tanguymathieu-p3d
    @tanguymathieu-p3d Рік тому

    bonjour,
    j'utilise le knnimputer sur une jeu de données dans mon jupyter notebook, pas très gros environ 320000lignes et 8 colonnes et le knn est surper long 5 à 6 min rééellement , j'ai cru que c'était dû au fait d'avoir scaler les données avant mais même resultat avec ou sans normalisation. est ce normale? merci et merci pour vos vidéos

  • @Agesilas2
    @Agesilas2 4 роки тому +1

    je me demandais, qu'en est-il des time series ? un dataset avec disons des données manquantes systématiques chaque samedi et dimanche, doit-on droper ces intervales de temps ? les remplir avec des données supposées (mean, median etc.) ? quelle est la bonne façon de faire ?

    • @MachineLearnia
      @MachineLearnia  4 роки тому +2

      Excellente question ! Bien sur cela dépend du dataset et du problème de time series. Donc selon le cas, certaines méthodes que tu as citées seront intelligentes tandis que d'autres un peu moins. En général, si une variables contient beaucoup de valeurs manquantes (c'est a toi de choisir le seuil, car tout dépend) on peut carrement éliminer cette variable, ou la ramplacer par un MissingIndicator (j'ai remarqué avec beaucoup d'expérimentation que ca fonctionne bien).
      Sinon, pour les timeseries, j'utiliserais les fonctions de Scipy pour analyser les tendances, et aussi la fonction interp1d. Pour les utiliser dans une pipeline, on peut tenter de les injecter dans FunctionTransformer dont j'ai parlé dans la vidéo 22/30.

    • @Agesilas2
      @Agesilas2 4 роки тому +1

      @@MachineLearnia donc finalement ça tient véritablement à la nature des données elle-mêmes (ce que je pressentais un peu sans en être certain).
      typiquement je pense à du forecasting de cotations sur les marchés ; si on a des données toutes les minutes ou toutes les 5min, on se retrouve chaque week-end avec un "trou", un bloc contigu et assez important de NaN, et la reprise le lundi ne correspond pas nécessairement à la clôture le vendredi, or je ne sais pas vraiment quelle serait la bonne façon de traiter ce problème, intuitivement j'aurais tendance à droper basiquement tout le week-end, faire comme s'il n'existait simplement pas...
      ps: on te le dit souvent mais ta chaine est vraiment au top, ta volonté de faire des vidéos chiadées, claires et didactiques, et la somme de travail que ça implique sont perceptibles. je suis très fan 👍

  • @noel9335
    @noel9335 4 роки тому +1

    Bonjour,
    Lorsqu'on "unifie" ou "linéarise" les variables indépendantes les valeurs sont comprises entre -2 et +2.
    Après les calculs, il est important de retrouver les valeurs initiales, par exemple lors de l'affichage des résultats dans un graphe.
    En effet et par exemple dans le cas de l'estimation des salaires, un client ne comprendrait pas qu'un employé de sa société perçoive entre -2 et +2 euros.
    Comment donc retrouver les vraies valeurs car il y a bien une corrélation entre les valeurs initiales et les valeurs unifiées ?
    Merci d'avance pour ta réponse.
    A+ ;)

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Si vous voulez parler d'une normalisation avec par exemple le transformer StandarScaler, alors il suffit d'utiliser la méthode "inverse_transform()" pour remettre les données a leur échelle initiale, en respectant les rapports de distance

    • @noel9335
      @noel9335 4 роки тому +1

      @@MachineLearnia Merci beaucoup : cela fait des semaines que j'essaie d'avoir cette réponse, pourtant très simple.
      A+ ;)

  •  3 роки тому

    Salut Guillaume, actuellement, je suis en train de nettoyer un dataset, issu d'un join de datasets indéxés sur des timestamps. Mes données manquantes dans le dataset final viennent du fait que les datasets initiaux sont des données de capteurs météorologiques indépendants, qui n'ont pas collecté de mesures aux mêmes instants. Comment faire pour combler ces vides ?
    Une piste que j'envisage serait de regrouper les timestamps par tranches de 5, 10 ou 15 minutes AVANT de faire le join. Est-ce que cette approche est valide (car j'ai une sérieuse réserve sur les imputers, pour ce cas particulier) ?

    • @MachineLearnia
      @MachineLearnia  3 роки тому

      Bonjour, c'est un probleme classique en ingénierie. On peut faire comme ce que tu dis, ou bien faire une interpolation linéaire entre chaque colonne, a toi de voir.

    •  3 роки тому

      @@MachineLearnia merci pour le conseil, l’interpolation serait certainement une bonne option. Entre temps, j’ai utilisé la fonction fillna, avec la method ffill. Pour mon cas, ça pourrait suffire.

  • @wajdiayari3139
    @wajdiayari3139 3 роки тому

    Merci vous êtes le meilleur, j'ai une question concernant la dernière application , à chaque exécution l'algo me donne des résultats diffèrents par exemple run1 =>{'knnimputer__n_neighbors': 2}/run2=>{'knnimputer__n_neighbors': 3} , quels sont les paramètres qui modifier le résultat à chaque exécution ???

    • @MachineLearnia
      @MachineLearnia  3 роки тому

      Bonjour, vous vouelz parler d'une gridsearchCV je suppose ? C'est parce qu'il faut fixer l'initialisation aléatoire de la Cross Validation pour qu'elle effectue toujours la meme découpe de votre dataset (random_state = 0)

  • @boubkersaoud7338
    @boubkersaoud7338 3 роки тому

    Bonjour, J'aurais voulu savoir si c'était possible d'avoir quelques éclaircissements ou des orientations concernant la nomenclature adéquate des paramètres à optimiser lors de la construction du dictionnaire , exemple donné sur la vidéo ('knnimputer__n_neighbor') entre __ et car sur le site scikit-learn, je ne m'y retrouve pas trop. Merci de votre aide

    • @MachineLearnia
      @MachineLearnia  3 роки тому

      Bonjour, désolé je ne comprends pas trop la question au niveau du " entre __ et " qu'est-ce-que vous ne comprenez pas ?

    • @boubkersaoud7338
      @boubkersaoud7338 3 роки тому

      @@MachineLearnia Bonjour ce que je n'arrive pas à maitriser c'est lors de la construction du dictionnaire des paramètres la dénomination à respecter concernant les clés. Exemple de la vidéo 'knnimputer__n_neighbor', pourquoi un double undescore, par exemple? Je ne sais pas si je suis plus clair. Merci

    • @MachineLearnia
      @MachineLearnia  3 роки тому

      Le double underscore est précisé quelque part dans la documentation, c'est en fait la seule choses a connaitre en terme de syntaxe.

    • @boubkersaoud7338
      @boubkersaoud7338 3 роки тому

      @@MachineLearnia Merci

  • @marcopoussin2857
    @marcopoussin2857 4 роки тому +1

    Merci bcp, on commence kan le deep learning ?

  • @jouinisofien7451
    @jouinisofien7451 4 роки тому

    pouvez vous me confirmer si GridsearchCv peut optimiser à la fois les parametres des transformateurs et de model d'estimation en meme temps ? et comment differencier entre les deux catégories de ces parametres. MErci

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Oui je confirme que c'est possible, j'ai montré comment le faire dans la video 22/30 sur le preprocessing, les transformeurs et les pipelines

    • @jouinisofien7451
      @jouinisofien7451 4 роки тому

      @@MachineLearnia merci bcp

  • @raoulngayamhappy5378
    @raoulngayamhappy5378 4 роки тому

    Merci pour la vidéo. Une question simple sur la dernière partie sur la combinaison KNNImputer et GridSearchCV.
    Pourquoi séparer le dataset en train et test puisque le but n'est pas de faire des prédictions, mais bien d'imputer les valeurs manquantes ? Pourquoi ne pas directement travailler sur X et y ? A quoi sert le X_test ici ?

    • @MachineLearnia
      @MachineLearnia  4 роки тому +2

      Il ne faut pas imputer les valeurs manquantes en tenant compte de ce qu'il y a dans X_test (c'est a dire qu'il ne faut pas imputer un Dataset X tout entier, car il peut y avoir une fuite d'information - un data leak - entre le train et le test par la suite). Par exemple si on fait un impute en utilisant la moyenne, alors le fait de faire la moyenne sur toutes les données X va indirectement indquer a la machine certaines infos concernant le Test_set.

    • @raoulngayamhappy5378
      @raoulngayamhappy5378 4 роки тому

      @@MachineLearnia Donc si je comprends bien le but est de faire de l'imputation en vue de la phase ML et non de faire de l'imputation simple...

  • @lllcdert826
    @lllcdert826 3 роки тому

    pour le Knn imputer quand on découpe les donnés en test_set et train_set est-ce qu'on met le random_state = 101

    • @MachineLearnia
      @MachineLearnia  3 роки тому

      Pas forcément, mais je vous conseille de mettre un random_state, quelque soit le numéro

  • @bohinbotimothee8174
    @bohinbotimothee8174 4 роки тому

    salut... Merci ... Tu pourrais nous en faire un sur le traitement de langage naturel? la classification des textes

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Salut ! Oui ca sera pour une future playlist de vidéos car le sujet est long et ne se traite pas en 1 vidéo

    • @timbohinbo2161
      @timbohinbo2161 4 роки тому

      Machine Learnia d’accord ça marche.. je reste à l’écoute

  • @aimeritedonald6689
    @aimeritedonald6689 4 роки тому +1

    On peut aussi faire du machine learning avec des données non structurées ?? histoire de voir comment sa peut marcher sans les neurals networks !!
    ou bien... le machine learning suporte pas un max données ??

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Que l'on utilise du Deep Learning ou du Machine Learning, il faut au préalablement pré-traiter les données non structurée pour leur confier un certains format, celles sont alors un peu plus "structurées" que ce qu'on veut bien admettre. Donc oui c'est possible d'utiliser des modeles de machine learnig classique (pas de réseau de neurones) sur des données non-structurées, meme si ce n'est pas forcément le choix vers lequel je m'orienterai personnellement.
      Je préfere utiliser un réseau de neurones pour tout ce qui est images, son, musique,...

    • @aimeritedonald6689
      @aimeritedonald6689 4 роки тому

      ​@@MachineLearnia alors... dois je conclure donc qu'avec du ML on peut que faire de la classification ??

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      @@aimeritedonald6689 Pas exactement. Pour commencer, le Deep Learning est par définition compris dans le Machine Learning, donc les techniques de Deep Learning appartiennent a la sphère ML. Ensuite, si on exclut les réseaux de neurones, on peut faire bien plus que de la Classfication avec les Algorithmes classiques de ML. On peut faire des regressions, des classifications, du clustering, de la la détection d'anomalie, ou encore de la réduction de dimensions.
      Mais rien que la classification et la régression regroupe a elles seules la grande majorité des projets envisageables. Par exemple, prédire la résistance d'un pont en un certain point peut être effectue avec un modèle de régression (même si pour cette tache on n'utilise tout simplement pas de Machine Learning ni de Deep Learning, l'exemple permet ici de souligner le fait que les modèles de régressions sont bien souvent sous-estimés par les amateurs)

    • @aimeritedonald6689
      @aimeritedonald6689 4 роки тому +1

      @@MachineLearnia merci beucoup !! je comprend mieux maintenant.

    • @madaragrothendieckottchiwa8648
      @madaragrothendieckottchiwa8648 4 роки тому +1

      Je valide vos réponses guillaume au passage bonne Explications, trés basic mais super claire et efficaces

  • @mohamedwane9877
    @mohamedwane9877 4 роки тому +1

    Merci beaucoup, est il possible ''d importer un dataset contenu dans son bureau avec seaborn'' si oui ''comment''

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Bonjour, pour importer un dataset, utilisez pandas avec la fonction pd.read_csv(). Je t'invite a revoir la vidéo sur Pandas. (17/30)

    • @mohamedwane9877
      @mohamedwane9877 4 роки тому

      @@MachineLearnia je peux le faire pandas sauf qu'avec ça j arrive pas y accéder a cause de la version pandas très élevée

  • @nabihamaraoui7082
    @nabihamaraoui7082 4 роки тому +1

    Bonjour Guillaume
    Super travail toutes ces vidéos!
    J'ai deux questions :
    1 - En executant plusieurs fois le programme de l'application sur le titanic que vous donnez, j'obtiens un résultat à chaque fois différent.
    Une fois il donne : {'knnimputer__n_neighbors': 1} , puis je l'execute une seconde fois, il donne :{'knnimputer__n_neighbors': 3}, puis 4
    A quoi est due cette instabilité du résultat?
    2 - j'ai essayé de m'inscrire à discord mais cela m'est refusé???
    Merci à vous.

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Bonjour, le modele de KNN est constitué a 100% des données qu'on lui fournit (le modele = les données) donc il dépend intégralement des données du split de la cross-validation. Je crois vous avoir répondu la même chose sur discord (ou alors c'est une incroyable coïncidence que 2 personnes posent la même question au même moment) :)
      Bienvenue dans la communauté et si vous avez d'autres questions n'hésitez pas ! :)

  • @ouridaradja5789
    @ouridaradja5789 4 роки тому

    Bonsoir, merci pour cette vidéo. j'ai une petite question à propos de l'optimisation des modèles par GridSearchCV ou par validation_curve ça ne marche pas pour l'algorithme KNNImputer pour les cible "Y" multiclasses. Donc est ce que il y a une façon d’optimiser les paramètres de KNNImputer, et que est ce que tu dis à propos de Sklean pour l'imputation de données manquantes (riche en nombre de méthodes?) ou il existe des bibliothèques python plus riches.

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Bonsoir ! KNNImputer est relativemnet nouveau donc je vais devoir enquêter un peu pour comprendre pourquoi tu obtiens ce problème. Est-ce-que tu cherches a compléter la partie Y de ta Dataset ou bien juste la partie X ? (parce qu'en lisant ta question j'ai l'impression que tu cherches a compléter les valeurs y manquantes, mais ce n'est pas le rôle d'un Imputer, ce qui expliquerait pourquoi ça ne marche pas)

  • @donellessame9194
    @donellessame9194 3 роки тому

    Salut guillaume, j'ai fini la série de vidéo sur python spécial machine learning. Et je travaille sur le dataset de la COVID-19, j'ai essayé de retirer toutes les NAN values avec le SimpleImputer (strategy=constant, fill_values=0), mais quand j'ai fait un dataset.head je me rends compte qu'il reste encore des NAN values que je peux clairement voir sur le dataframe. J'ai essayé un dropna() , mais lorsque je l'utilise il y a tellement de NAN values que la fonction supprime toutes les lignes du dataframe. Je ne sais plus quoi faire peut tu me donner un conseil ou une astuce pour réussir à nettoyer ce dataset?

    • @MachineLearnia
      @MachineLearnia  3 роки тому

      Il s'agit du dataset qu'on a étudié dans les vidéos ?

  • @guillaumetopenot7143
    @guillaumetopenot7143 4 роки тому

    Bonjour Guillaume
    J'ai reçu mail hier annonçant la sortie de la video 23 mais je ne peux la visualiser : UA-cam me dit "vidéo privée"...
    Quand deviendra-t-elle public ?
    Merci

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Salut Guillaume,
      J'ai eu un problème a l'upload de la vidéo, donc je l'ai désactivée et j'ai immédiatement remis la vidéo en téléchargement sur UA-cam (elle est désormais disponible) ^^

  • @matm6882
    @matm6882 4 роки тому

    Encore merci pour ces super tutos!
    J'ai une question sur la partie à 9:30 quand on essaye de chercher les meilleurs paramètres de notre imputer KNN. Si j'ai bien compris, l'utilisation de GridSearchCV se base sur les performances de notre modèle. Donc quand on l'utilise sur l'imputer est-ce qu'on ne serait pas plutôt en train de trouver les paramètres de l'imputer qui prédit les données pour lesquelles la machine est "plus à l'aise", plutôt que les données les plus fidèles à la réalité?
    Autrement dit, est-ce que le fait d'utiliser GridSearchCV sur l'imputer "transforme" les données de manière à obtenir un meilleur score?

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Oui, l'optimisation de l'imputer KNN avec GridsearchCV transforme les données de maniere a obtenir un meilleur score (c'est la réponse a votre question finale).
      Cependant, on travaille toujours en faisant l'hypothese que le score que l'on obtient est le score que la machine obtiendra dans la réalité (votre question d'avant) car on garde suffisamment de données de coté (avec un test set, et avec le principe de validation croisée)

    • @matm6882
      @matm6882 4 роки тому

      @@MachineLearnia Merci !

  • @rafcommander4733
    @rafcommander4733 4 роки тому

    Tout d'abord, bravo pour les qualités pédagogiques des vidéos. Question : peut-on se servir de knn_imputer avant d'utiliser knn_classifier? N'est ce pas une source de biais ? Merci par avance pour la réponse.

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Oui c'est possible et ca n'est pas une source de probleme en théorie. Mais dans la pratique je ne le ferai pas, car KNNImputer est assez "risqué" et KNN_classifier n'est pas un algorithme tres performant.

  • @olfameksi3472
    @olfameksi3472 3 роки тому

    Bonjour Guillaume! Je suis vraiment débutante dans ce domaine. Et peut être je vais poser une question débile. Je travaille sur un mini projet dont l'objectif est de prédir le time to event (casse) pour un réseau d'eau potable. Le problème est que les données en possession manquent beaucoup d'information (des casses non repotées (Date de casse)). Ma question c'est (au lieu de faire des recherches pendant des heures sur internet sachant que je comprends pas tout) : Est ce que dans ce cas est possible d'utiliser l'ANN pour générer des données (les variables pour chaque tuyau: matériau, date de pose, date de casse, collectivité) de manière intelligente? Je vous remercie d'avance

    • @MachineLearnia
      @MachineLearnia  3 роки тому +1

      Bonjour Olfa, désolé pour ma réponse tardive (j'ai déménagé) Oui c'est possible de faire de l'augmentation de donnée avec des ANN : regarder sur Google pour trouver des tutoriels de GAN (ou bien directement sur le site de Tensroflow) Ca demande un peu d'expérience pour y arriver par contre. Et surtout voici un conseil tres important : Ne mettez surtout pas de données issues de votre GAN dans le test set !!! (le test set doit rester pur, et ne doit pas comprendre de données inventées, c'est tres dangeureux). Bon courage !

  • @soumayakhila546
    @soumayakhila546 3 роки тому

    Merci pour ce vidéo extremement utile! vraiment merci. Est-ce que KnnImputer peut imputer les données qualitatives aussi bien que les données quantitatives? Si oui, est-ce que le principe c'est de compter la moyenne des valeurs pour les var quantitatives et le most frequent pour les var. qualitatives , bien sur uniquement pour les échantillons les plus semblables?

  • @cyrineabid308
    @cyrineabid308 3 роки тому

    Est ce que KNN Imputer est l'amputation multiple? Ou c'est complètement différent?

    • @MachineLearnia
      @MachineLearnia  3 роки тому

      Bonjour, je ne connais pas l'amputation multiple, mais c'est peut-etre que je la connais sous un autre nom. Donc je ne peux pas vraiment répondre a la question, navré

  • @chainonsmanquants1630
    @chainonsmanquants1630 4 роки тому

    Merci

  • @Matharendre
    @Matharendre 2 роки тому

    Bonjour. Existe-t-il une manière simple de procéder à de l'inputing sur une variable catégorielle? Merci! :)

    • @MachineLearnia
      @MachineLearnia  2 роки тому

      Oui, vous pouvez mettre l'option de "mode"

    • @Matharendre
      @Matharendre 2 роки тому

      @@MachineLearnia Merci beaucoup, j'avais entrevu cette option mais est-ce la seule?

  • @mohammed_yazidcherifi9816
    @mohammed_yazidcherifi9816 4 роки тому

    Merci beaucoup pour tout, vos explications, votre pédagogie et votre savoir, moi qui suis débutant en ML et étudiant j'apprends beaucoup avec vous plus qu'ailleurs.
    SVP, excusez moi encore mais je suis la série depuis le début et je me mêle les pinceaux un peu avec les méthodes:
    fit,
    transform,
    fit_transform,
    predict;
    au début on utilisait que fit, puis est sont venu les deux autres et je ne fait plus la différence entre les trois, et surtout qui utilise les X et qui utilisent le target y ?
    Merci infiniment.
    Bon courage.

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Bonjour et merci beaucoup.
      En Machine Learning, il existe 2 types d'objets : des etimateurs (qui font des prédictions X-> y) et des transformeurs (qui transforment nos données X->X). Pour développer ces objets, il faut toujours utiliser une méthode fit().
      Pour les estimateurs : fit(X, y)
      Pour les transformateurs: fit(X)
      Une fois entrainés, on peut utiliser ces objets :
      pour faire des prédictions avec les estimateurs : predict(X)
      pour transformer des données avec les transformers : transform(X)
      Pour aller plus vite, on peut aussi utiliser des fonctions telle que fit_transform (mais si cela vous embrouille, vous pouvez l'oublier, elle n'est pas nécessaire)

    • @mohammed_yazidcherifi9816
      @mohammed_yazidcherifi9816 4 роки тому

      @@MachineLearnia ahhh ok , waw c'est fou comme ça devient claire une fois dit comme ça ,
      Merci beaucoup et bon courage.

  • @frankdjoum2167
    @frankdjoum2167 4 роки тому

    Bien le bonsoir svp je voulais savoir si c'est possible d'appliquer tout ceci avec les données geophysiques

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Tout dépend de vos données, mais en Data Science nous pouvons traiter presque tout type de données.

    • @frankdjoum2167
      @frankdjoum2167 4 роки тому

      @@MachineLearnia merci bien mais je suis plus specialisé en gravimetrie et les données sont en 3 colonnes (longitude,latitude et anomalies) et je voulais ressortir une carte d'anomalie et plus faire des études statitisques mais mon soucis est comment m'y prendre stp aide moi le language python me passionne beaucoup

  • @abdoulayesoumah7164
    @abdoulayesoumah7164 4 роки тому

    Bonjour Guillaume, vous faites un excellent boulot, je vous remercie. Une question, je voudrais savoir comment on peut bien parser les logs avec machine learning en classant les élément du fichier texte par date, heure, type, séparateur, adresse ip :port, Greedydata, .... ou bien les classer par famille proche ? Merci.

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Bonjour et merci ! Je ne suis pas sur de comprendre la question a 100%. quand vous parlez de log, vous ne faites pas références a logarithme, mais a des enregistrements ?

    • @abdoulayesoumah7164
      @abdoulayesoumah7164 4 роки тому

      ​@@MachineLearnia
      oui je vais référence aux enregistrements. Par exemple sur cette ligne: 07/07/2020 10:23:12:234 [soum] 123:23:44 crs : >> sms
      je veux faire le parsing c'est dire à chaque fois il rencontre les types.
      07/07/2020 il les prend comme date
      10:23:12:234 commet temps
      comme word
      [soum] comme word
      123:23:44 comme data
      crs comme word
      : comme data
      >> comme data
      sms comme sms

    • @abdoulayesoumah7164
      @abdoulayesoumah7164 4 роки тому

      En fait c'est pour me faciliter le parsing en regroupant par famille de mots ou type. merci

  • @benkacemnadia1507
    @benkacemnadia1507 4 роки тому

    si les champs vide sont de type string que doit faire ??

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Il faut d'abord remplir le vide avec un imputer ou bien une des fonction de Pandas, fillna, etc.

  • @RomeoSawadogo-e7o
    @RomeoSawadogo-e7o 7 місяців тому

    Bonjour monsieur, comment vous allez? J'espère bien.
    Je travaille sur un projet de machine learning sur la prédiction de réussite en licence des étudiants orientés à l'université Norbert Zongo. C'est projet rentre dans le cadre en vue d'appliquer mes connaissances que j'ai acquis lors de votre formation sur UA-cam.
    Je suis confronté à un problème de données parce que je veux utiliser des données réelles.
    J'ai au total 5657 donnée mais au niveau de ma variable cible ( target ), les données manquantes sont au nombre de 2033.
    La raison est que je ne dispose la liste de leur résultat de licence. En un mot, je ne sais pas si les 2033 étudiants ont réussi leurs licences ou pas.
    Face à cette situation, quelle sont les approches que vous pouvez me proposer ?
    Dans l'attente d'une réponse à ma situation, veuillez agréer l'expression de ma plus haute considération

  • @clandroid7912
    @clandroid7912 4 роки тому

    Bonjour, est-ce que tu parles d'anonymisation des données dans une de tes vidéos ? Que faire quand on doit travailler avec un dataset contenant des noms, prénoms, numéros de téléphone contenus en vrac dans des morceaux de texte ? Je ne parle pas de tableurs csv avec des colonnes nom, prénoms, identifiants bien distincts. Ce serait trop facile de les enlever. Je parle bien de champs texte contenant par exemple, une note d'incident ou un commentaire utilisateur.

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Bonjour, il faut encrypter les données, tout simplement. C'est une autre discipline dans laquelle je n'ai pas le meme niveau de compétence qu'en Machine learning, Mais on peut faire de l'encryptage basique assez facilement en remplaçant chaque lettre de l'alphabet par un caractère spécial (mais ce n'est pas efficace, n'importe qui peut cracker le code)

    • @clandroid7912
      @clandroid7912 4 роки тому

      @@MachineLearnia c'est une des approches que j'ai pu voir en ligne, par contre, dans mes problèmes de classifications en NLP, je trouve ça très pratique d'utiliser un language model déjà entraîné sur wikitext-103 (transfer learning) avant de le fine tuner avec mon corpus de textes cibles et d'enfin recycler l'encodeur dans un nouveau classfier. Dans ce cas, j'imagine qu'il faudrait que j'extraie le fichier de vocabulaire du premier language model pour le coder de la même manière (c'est plus un codage qu'un chiffrement, d'ailleurs). Ça te semble faisable ? Orthodoxe ? Sans perte d'accuracy ?

    • @clandroid7912
      @clandroid7912 4 роки тому

      Pour le risque de craquer le code, si je ne code pas chaque lettre mais chaque mot en codant le fichier de vocabulaire qui est créé lors de la "numericalization" (dictionnaire qui a chaque indice entier associe un mot), je pense que j'évite le risque de l'attaque statistique qui tient compte de la probabilité distribuée de l'apparition de chaque lettre dans une phrase dans une langue donnée. Corrige-moi si je me trompe.

    • @MachineLearnia
      @MachineLearnia  4 роки тому +1

      Oui je vois l'idée et ca me semble faisable. Le mieux est de tester l'idée pour mesurer les résultats. Il est important de rappeler que le Machine Learning est un domaine d'étude tres expérimental : On préfère tester des idées et mesurer leur performance plutôt que de méditer longtemps sur la faisabilité d'un projet.

  • @tuto-uvcitd6830
    @tuto-uvcitd6830 4 роки тому

    Bonjour Guillaume, désolé si ma question ne n'est pas en rapport avec cette vidéo; je tiens d'abord à
    vous félicitez pour votre livre qui donne les informations sur la data science , Bravo!
    je veux savoir si vous avez fais une vidéo formation sur la création de fichier python exécutable
    sous MacOs avec l'environnement anaconda, si oui donnez moi le lien de la vidéo ?
    svp si c'est n'est pas le cas, il serait vraiment chouette d'en faire une. Merci!

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Merci beaucoup, non je n'ai pas encore fait une telle vidéo, je le rajoute sur ma liste des choses a faire :)

  • @sylvainballerini239
    @sylvainballerini239 4 роки тому

    Merci pour la vidéo ! Mais du coup avec la première méthode de remplacer les valeurs manquantes par la moyenne...ceci ne risque pas d'augmenter encore plus la "moyenne" bref en un mot ....c est pas dangereux comme technique ? ( après je suppose que ça dépend du nombre de valeur manquantes....)
    Ps il y a t il une vidéo qui parle spécifiquement du nettoyage ?

    • @MachineLearnia
      @MachineLearnia  4 роки тому

      Une règle d'or a respecter : ne pas imputer des données lorsque plus de 50% des données sont manquantes. Non je n'ai pas encore faire des vidéos sur ce sujet en particulier mais ca ne saurait tarder.

  • @thiernondiaye8043
    @thiernondiaye8043 3 роки тому

    À quand Le ivre sera disponible ?

    • @MachineLearnia
      @MachineLearnia  3 роки тому

      Bonjour, je n'ai pas encore de date de prévu, il faut que je repense ce projet.

  • @bilelsalem4512
    @bilelsalem4512 4 роки тому

    l'imputer comment il fait réellement la différence entre X et X_test pour qu’il puisse remplacer les "nan" dans X_test par les moyennes trouvées dans X?
    Sinon Merci pour cette formation :)

    • @MachineLearnia
      @MachineLearnia  4 роки тому +3

      Il garde en mémoire la valeur moyenne de X_train et l'applique au X_test.

  • @bouabdellahtahar5126
    @bouabdellahtahar5126 3 роки тому

    data.dtypes
    Dst Port object
    Protocol object
    Timestamp object
    Flow Duration object
    Tot Fwd Pkts object
    ...
    Idle Mean object
    Idle Std object
    Idle Max object
    Idle Min object
    Label object
    Length: 80, dtype: object
    come j-'ai tape a command sauivant data = data.astype(float).apply(pd.to_numeric)
    ValueError: could not convert string to float
    help