je ne sais pas comme à vous remercier, mais je tiens vraiment à vous dire merci. ce que vous nous présentez est très intéressant pour tout les étudiants en ingénierie informatique.
@MachineLearnia5 жыл бұрын
Timecode de la vidéo: 00:32 Qu'est ce que c'est le Broadcasting ? Pourquoi Numpy est si PUISSANT ?! 01:46 Les règles du broadcasting: meme dimensions ou dimension = 1 05:19 Mini exercice de broadcasting 07:27 Exemple en Machine Learning (DANGER) 10:49 Corrigé exercice de la dernière vidéo 12:45 BILAN sur NUMPY
@adrienalbarazi83404 жыл бұрын
"Si ça c'est pas un belle line! " j'adore :) Merci Guillaume pour votre travail et votre temp. votre façon d'expliquer vos idées est irreprochable vous avez rendu l'apprentissage de Machine Learning accessible à tous. Merci
@MachineLearnia4 жыл бұрын
Merci beaucoup, ca me fait très plaisir de lire vos compliments :)
@hubertorhant8884 Жыл бұрын
Encore un record de clarté pédagogique ! Jusqu'où iras tu ? Mils mercis 💥
@pierrebruzac69082 жыл бұрын
Merci pour cette vidéo de qualité. C'est toujours avec plaisir que je te regarde ! (On sent le passionné qui est en toi !!!)
@MachineLearnia2 жыл бұрын
Merci ! oui c'est ma passion :)
@2msynergygroup2 жыл бұрын
Excellent formateur. Merci beaucoup
@melodie69484 жыл бұрын
J'adore le super acteur à 03:40 :) :) Merci bcp pour toutes ces vidéos! J'ai remplacé Netflix par cette série de vidéo!!!!! :)
@MachineLearnia4 жыл бұрын
Ahaha ! J'avais oublié ça ! Mettre de coté les distractions pour se consacrer à son développement personnel ! BRAVO ! tu iras loin ;)
@melodie69484 жыл бұрын
@@MachineLearnia Mercii!! Je l'espère !! :) :)
@REN_CODE564 ай бұрын
Salut jai 14ans je suis en 3eme j'adore le code et l'ia ce que tu fais est super intéressant ça me permet d'apprendre ce que j'adore et pouvoir m'améliorer tu expliques super bien ! Merci beaucoup
@OuahibaBOUGLIMINA4 ай бұрын
Vraiment ! un grand travail. excellente méthodologie d'expliquer les choses .you are the best teacher
@belkassem065 жыл бұрын
Comme expected Merci pour cette video. You're the MAN. J'ai une question et une requete: Question: Quelle application utilises-tu pour faire tes videos (specialement montrez les exemples sur l'ecran a bandeau bleu en haut ET taper les codes en meme temps?). Pour moi la meilleure facon de savoir si j'ai compris c'est reprendre tes videos dans la peau du professor, dans mes propres mot. alors si je reecoute et suis satisfait alors je passe sur la lecons suivante, ELSE je reprend la boucle. Suggestion: Pourrais tu nous faire une serie sur OPENCV aussi si le temps te le permet un peu plus tard? The neural network et les computer vision field m'interessent a plus d'un point. Chacun a ses propres motivations en venant suivre tes explications ici. Pour moi le cancer m'a pris un etre tres cher et pour le reste de ma vie il(cancer) payera pour cela. Si un jour on le detecte plus tot ou meme predire son arrivee (ce que je crois possible avec l'IA) alors il ne fera plus du mal a un autre en ce moment je dormirais tranquille. Ca prendra le temp que ca prendra. Merci pour tes cours ca vaut de l'or crois moi.
@MachineLearnia5 жыл бұрын
Merci beaucoup pour ton commentaire ! un GRAND BRAVO pour ton engagement contre le cancer, je suis désolé pour ton proche. Oui le Deep Learning et le Machine Learning nous aide aujourd'hui pour prédire plus tôt certains cancers, dont le cancer du sein (le MIT a publié les résultats de leur recherches il y a quelques temps déjà) on espère tous que nous combattrons le cancer avec ça. Il ne faut pas hésiter à faire un don pour aider la recherche ! Pour répondre à tes questions: 1) Pour faire mes vidéos j'utilise Adobe Premiere Pro. Les graphiques sont en réalité fait sur power point et je fais un montage (parfois long ^^) pour intégrer le code avec et rendre ça plus ludique pour vous. -> Je mettrais tout le powerpoint accessible sur mon site Internet à la fin de la formation ! 2) Oui je ferai une série sur OPENCV à l'avenir, ca fait parti de mes plans :) Merci et à bientôt ! Bon courage dans ton apprentissage :)
@souery62803 жыл бұрын
Je vous adore et j'adore énormément tous vos vidéos, sachez que vous êtes génial !
@MachineLearnia3 жыл бұрын
Merci beaucoup ca me fait tres plaisir :)
@Gravenilvectuto5 жыл бұрын
Commentaire
@MachineLearnia5 жыл бұрын
Je valide ! ahah
@pulsorion5 жыл бұрын
Like
@master-tech18154 жыл бұрын
Voilà un Monsieur Qui maîtrise bien ce qu'il fait, vous êtes mon meilleur
@MachineLearnia4 жыл бұрын
Merci beaucoup !
@s.k.861511 ай бұрын
Juste incroyable, j'ai envie de taper à la main mille merci après chaque vidéo...
@nzakiesembongoarlain25134 жыл бұрын
Merci, je aimerai que vous fassiez si possible un cours complet sur les réseaux de neurones, j'ai assisteé beaucoup de cours sur youtube, mais sans flatterie vous êtes le meilleur, vraiment c'est mon avis
@MachineLearnia4 жыл бұрын
Merci beaucoup, c'est prévu pour très bientôt !
@nzakiesearlain32694 жыл бұрын
@@MachineLearnia merci
@darkmessiah8087 Жыл бұрын
Merci beaucoup pour ces explications très limpides et cette approche pédagogique, excellente vidéo !
@maryemroussafi45986 ай бұрын
merci pour cette formation vraiment grace a toi j'ai compris beaucoup de chose
@mohammedbellahcene95083 жыл бұрын
merci pour ce cours qui est très bien expliqué et félicitation pour cette intervention de très haut niveau
@MachineLearnia3 жыл бұрын
Je vous en prie. Merci a vous !
@jamesmaxwell_it3 жыл бұрын
J'ai commencé en écrivant du code en hexadécimal et avec les mémoires ne dépassant pas le mégaoctet.. je crois qu'il y a autant d'écart avec l'actuelle puissance de python que les lances des premiers hommes et la tsar Bomba ... excellente vidéo , très intéressant..et j'arrive à peu près a comprendre c'est très plaisant pour mon âge canonique....j'imagine dans seulement 10 ans .....merci pour votre travail
@MachineLearnia3 жыл бұрын
Bonjour et merci pour votre commentaire, c'est un honneur de recevoir un message de la part d'une personne avec autant d'expérience ! :)
@florianraulet89104 жыл бұрын
Salut Guillaume, avec mon pote d'école d'ingénieur (une ccp comme la tienne) on voulait apprendre le machine learning pour un projet qu'on a en commun, sans trop savoir par quoi commencer, et grâce à toi on se découvre une nouvelle passion pour la chose, après avoir toujours eu l'impression de s'être farci maths sup/spé pour ne jamais voir d'utilisation concrète de toutes ces connaissances. Et maintenant c'est enfin le cas. AU fur et a mesure qu'on apprend avec tes vidéos on pense tous les deux de plus en plus à se "réorienter" dedans tellement c'est passionnant. Donc merci pour tout, et on espère que tu vas continuer à nous apprendre des trucs parce que faire sans tes vidéos maintenant ça serait un sacré contre-temps, et merci pour cette incroyable pédagogie, j'ai partagé tout ça autour de moi ! :D
@MachineLearnia4 жыл бұрын
Merci beaucoup Florian ! Je me reconnais un peu dans ton histoire : quand j'ai découvert le Machine Learning en prépa j'ai tout de suite accroché et ça m'a permit de mieux comprendre certaines choses comme les valeurs propres et les vecteurs propres.
@florianraulet89104 жыл бұрын
@@MachineLearnia c'est pour ça que t'as l'air déjà si qualifié et expert à seulement 26 ans?
@amyd.28405 жыл бұрын
Merci pour cette vidéo, super qualité comme toujours :D
@MachineLearnia5 жыл бұрын
Merci beaucoup ! :)
@zakariabougassa30922 жыл бұрын
Merci infiniment pour ces videos de grande qualité
@pulsorion5 жыл бұрын
Super intéressant comme d'hab !
@MachineLearnia5 жыл бұрын
Merci, c'est une bonne nouvelle ! :)
@gazdallahamira27652 жыл бұрын
J'ai jamais vu un formateur aussi cool comme vous!! Je suis in love avec votre méthode d'explication. Pouvez vous faire un vidéo d'un projet de machine learning ? Merci beaucoup pour votre effort!
@MachineLearnia2 жыл бұрын
Merci, je suis flatté ^^ Oui j'ai fait des projets dans la suite de la série.
@jean-louissornay27562 жыл бұрын
bonjour, merci pour cette vidéos qui me permet de progressé dans mon apprentissage du machine learning. je suis à la retraite mais je me passionne pour cette technologie depuis quelques temps, merci encore pour ton aide.
@MachineLearnia2 жыл бұрын
Merci pour le message. Je suis ravi de voir que des gens qui sont a la retraite s'intéresse a cela ! (vous n'etes pas le premier dans ce cas sur la chaine youtube!)
@ld2037 Жыл бұрын
j aime beaucoup votre chaine tres instructive et j aime aussi votre musique d intro et de conclusion
@sohaibeboss Жыл бұрын
What a great course. This content shouldn't be free
@Zohranounou8 ай бұрын
Merci pour cette vidéo, super qualité comme toujours
@sanouba7779 Жыл бұрын
encore une fois merci
@Marie-OdetteATONDE Жыл бұрын
Merci pour tout😊
@yahiabammoune17162 жыл бұрын
merci pour la qulité de vos tutos
@ggidf4118 Жыл бұрын
Je découvre tes formations et j'adore ! Petite question : il y a-t-il un ordre dans lesquelles les suivres? Je suis actuellement sur cette playlist python ML, est il conseillé de terminer la formation ML d'abord? Merci d'avance si jamais tu vois ce com !
@aliounebadaraibnabutalibdi90954 ай бұрын
un grand merci
@gregcole27402 жыл бұрын
tout simplement parfait ! Merci !!!
@leodrouin30444 жыл бұрын
Bonjour Guillaume, J'ai une petite question sur la manière de profiter au mieux de ton travail. Tu penses qu'il est plus intéressant de suivre cette série, puis ta série machine learning, de faire l'inverse, ou de suivre les deux en parallèles? Et sinon merci pour ce que tu fais c'est super ;-)
@MachineLearnia4 жыл бұрын
Tres bonne question. Je pense qu'il est mieux de regarder cette série. Je vais faire une autre série sur les bases mathématiques des algorithmes a l'avenir qui remplacera la série ML que j'avais commencé par le passé
@noreddinektn9414 Жыл бұрын
bonjour guillaume pouvez vous nous faire une vidéo sur sklearn.decomposition et différents algorithme comme ica,pca ..ect merci
@Siamon344 жыл бұрын
Encore une fois super vidéo j'ai bien compris le problème des dimensions de tableau et l'interet de reshape surtout! Le broadcasting j'ai pas encore trouvé de moyen de m'en servir là comme ça mais j'ai hâte de voir la suite. J'espère que ta chaine va continuer longtemps si t'as un Tipee je participerais dessus quand j'aurais tout terminé :D Ma proposition de resultat pour l'exercice precedent: def standardization (Ex): meanEx = Ex.mean(axis=0) StdEx = Ex.std(axis=0) ExmeanEx = Ex-meanEx standEx = ExmeanEx/StdEx print(standEx) standardization(Ex) comme ca jpeux même standardiser quand je veux un tableau maintenant ;p (enfin jcrois j'ai pas essayé :) )
@MachineLearnia4 жыл бұрын
Salut et merci beaucoup ! Oui tu verras on se sert du broadcasting très souvent par la suite (en fait c'est tout le temps implémenté dans les librairies comme Sklearn ou le calcul matriciel est déjà implémenté pour faire des algorithmes de Machine Learning) Ta fonction est valide, mais elle a le petit défaut d’être écrite sur beaucoup de lignes, alors qu'il suffirait d'en écrire une ou deux (mais ce n'est pas grave, tu peux déjà te féliciter d'avoir fait l'exercice, c'est bien !) Comme d'habitude tu pourras trouver la réponse dans la vidéo suivante. Donc oui tu peux standardiser des dataset, bravo ! Dans la pratique on utilisera les fonctions toutes prêtes de Sklearn pour faire des opérations de normalisation (MinMaxScaler, StandardScaler, etc.) tu vas adorer, j'en suis sur ! ;) J'ai en effet un Tipeee, et également un serveur discord sur lequel tu es invité : il y a d'autres data scientists et nous discutons de projets, nous répondons aux questions etc. (et je te remercie d'avance si tu me soutiens un jour sur Tipeee)
@TBaguette4 жыл бұрын
Cette série de vidéos est une véritable mine d'or ! Un énorme Merci pour la qualité que tu offres. Il y a des tonnes de cours payants qui n'arrivent pas à la cheville de ta série sur le Machine Learning, j'ai vraiment l'impression de tout apprendre à vitesse grand V. Petite question : est-ce que tu aurais des idées de projets à essayer une fois toute cette série terminée ? Peut-être en proposes-tu déjà dans une vidéo plus loin mais je voulais être sûr de pouvoir pratiquer dès que j'ai fini ta série. Encore Mille Mercis, je sais même pas comment te remercier assez, t'as pas idée. Les non-francophones ont de quoi nous envier ta série de vidéos sur le ML sans même le savoir.
@MachineLearnia4 жыл бұрын
Merci beaucoup ton message me fait très plaisir :) Je fais de mon mieux pour aider les gens gratuitement avec tu contenu unique ! Pour t'entrainer, je te conseille de te rendre sur le site Kaggle.com et d'essayer de résoudre le dataset du titanic et celui de la prédiction immobiliere. Mais en effet nous allons faire des projets ensemble sur la chaine youtube (a partir de la video 26/30 qui est pour bientot !) Sinon a l'avenir je vais faire beaucoup de videos projet. PS : si tu veux me soutenir, je dispose d'une page tipeee sur laquelle j'offre quelques videos Bonus, mais surtout ne te sens pas obligé ! ^^ A bientot, et si tu as la moindre question, n'hésite pas !
@TBaguette4 жыл бұрын
@@MachineLearnia Merci beaucoup, je vais check ça au plus vite ! Je suis fauché actuellement mais si j'arrive à obtenir un boulot ça sera en partie grâce à toi donc je te revaudrai ça dès que je peux. :)
@MachineLearnia4 жыл бұрын
@@TBaguette Si tu arrives a trouver un travail grace a mon aide, fais le moi savoir, ca me fera tellement plaisir ! C'est bien plus important de savoir que j'aurais pu aider quelqu'un a changer de vie ! :D
@maximebonneau96853 жыл бұрын
Génial merci Guillaume
@MachineLearnia3 жыл бұрын
de rien :)
@automaticien-y6g20 күн бұрын
merci bcp
@sbdz-vs2mb3 ай бұрын
Hello, Tout d'abord Merci ! Est ce que vous avez des conseils pour apprendre les mathématiques pour bien maîtriser l'ia à partager ?
@pseudounknow55593 жыл бұрын
13 vidéos en 1 jour je suis épuisé je finirai la série demain après les cours haha
@MachineLearnia3 жыл бұрын
13 vidéos en 1 JOUR ! Mais WOW ! Je pensais pas que c'était possible sérieusement je rigole pas ! Ta motivation m'impressionne, je vais en prendre de la graine.
@SimonLiegeoisOfficiel Жыл бұрын
Salut, très intéressant ! As-tu un paypal ou utip pour te remercier ? Merci !
@kaistaboubi91464 жыл бұрын
merci infiniment pour ces vidéos, c'est vraiment très très intéressantes, vous fêtes bcp d'efforts. J'ai bcp aimé cette formation. SVP, et pour la corection de l'exercice de Standardisation d'une matrice (tableau NdArray), Au début, j'ai fais cette solution qui n'a pas donné les bons résultats: np.random.seed(0) A=np.random.randint(0,100,[10,5]) A for j in range(A.shape[1]): moyenne=np.mean(A[:,j]);print(moyenne) ecart=np.std(A[:,j]); print(ecart) for i in range(A.shape[0]): A[i,j]=(A[i,j]-moyenne)/ecart Par contre et lorsque je mets le résultat dans une autre variable B, ca fonctionne correctement. Voiçi la solution est: B=np.zeros((10,5)) for j in range(A.shape[1]): moyenne=np.mean(A[:,j]) ecart=np.std(A[:,j]) for i in range(A.shape[0]): B[i,j]=(A[i,j]-moyenne)/ecart B La question est: pourquoi le changement sur les cases de la matrice A ne se faitent pas correctement, et pourquoi la necessité d'utiliser un tableau intermediaire B, Les NdArray sont mutables n'est ce pas? et merci bcp d'avance.
@MachineLearnia4 жыл бұрын
Bonjour ! Tres bonne question et voici la réponse : Votre code ne contient pas d'erreur, c'est simplement que le tableau A a été initialisé pour etre de dtype = int. Voila pourquoi si vous effectué des calculs sur A, alors les résultats sont stocké sur la mémoire int Votre standardisation a donc bien fonctionné, mais les résultats sont arrondit pour etre contenu dans la mémoire dédiée au tableau A. A l'inverse, le tableau B est un tableau de dtype float, (quand on utilise np.zeros() cela nous donnes des float) Voila pourquoi vous obtenez les résultats avec décimales. Pour corriger tout cela en utilisant seulement le tableau A, vous pouvez faire la chose suivante : np.random.seed(0) A=np.random.randint(0,100,[10,5]).astype(np.float32) # voici la seule ligne que j'ai changé dans votre code print(A) for j in range(A.shape[1]): moyenne=np.mean(A[:,j]);print(moyenne) ecart=np.std(A[:,j]); print(ecart) for i in range(A.shape[0]): A[i,j]=((A[i,j]-moyenne)/ecart) print(A) Je vous invite a voir les videos sur Pandas et Sklearn, elles seront également utiles :) A bientôt et je reste disponible pour toute question ! :)
@kaistaboubi91464 жыл бұрын
@@MachineLearnia Bravooooooooooooo, et merci
@florentwinamou66503 жыл бұрын
honnêtement celui qui suit cette chaine et ne comprend rien ici, je ne sais pas ou il comprendra encore !!
@MachineLearnia3 жыл бұрын
Merci pour votre commentaire ! ^^
@mauriceguizard88134 жыл бұрын
Houlala , c'est un peu la 4ème dimension , tout s'explique tant que les 2 dimensions sont présentes , après avec la notation (1,) ou (x,) et x est égal aux colonne de l'autre matrice ...on ne joue plus avec des matrices , mais avec une espèce de liste qui peut produire n'importe quelle matrice carré Ta solution l'exercice en est une bonne démonstration. Pour avoir comparé cela avec ma méthode (classique) for i in range(b): for j in range(a): E[j,i]= (D[j,i]-D.mean(axis=0)[i])/D.std(axis=0)[i] la tienne est au moins 20 fois plus rapide, donc jouer avec le feu est vraiment intéressant (mais quelle souffrance de mise au point en perspective). Merci d'avoir appuyé sur ce qui ... fera mal
@MachineLearnia4 жыл бұрын
Tu as l'intelligence de comprendre que en effet les dimensions des tableaux numpy vont un jour ou l'autre te poser probleme, mais ce n'est pas un "Big Deal" comme on dit, on détecte le probleme rapidement, et Python nous indique souvent dans ses erreurs qu'il faut parfois utiliser un reshape ou bien un squeeze (selon le contexte) :)
@adyfall83193 жыл бұрын
Merci beaucoup!
@mohamedgarmouma15413 жыл бұрын
Merci infiniment Guillaume
@MachineLearnia3 жыл бұрын
De rien
@mimanehichem5863 жыл бұрын
Merci énormément
@MachineLearnia3 жыл бұрын
de rien :)
@boawendneerecasimirzongo56622 жыл бұрын
Bonjour Monsieur comment vous allez? Vraiment je ne sais pas par quelle langue utiliser pour vous remercier pour vos formations .....c'est du woooooooooooooooooooooooh .Je sollicilice une video sur les conceptes de la reconnaissance vocale
@aymenlazem20625 жыл бұрын
Merci infiniment cher Guillaume que dieu vous bénisse, Es possible de nous prévoir des exercices de petit scripte qui nous permet de comparais la génération des Axis 0 aléatoire et sélectionner la génération des Axis supérieur par rapport des autres lignes pour dessiné des graphe des nœuds dynamiques qui changes en fonctions des Axis 1 et merci beaucoup cher Guillaume
@MachineLearnia5 жыл бұрын
Merci Beaucoup ! :) Euuh.. pour une fois je ne suis pas sur d'avoir bien compris votre requête ?
@aymenlazem20625 жыл бұрын
@@MachineLearnia bon d'accord je suis vraiment désolé cher Guillaume , mon but c'est de créer un graphe pour des matrice qui ont des liaison aléatoire qui change de valeur aléatoirement et suit a ce changement les matrice la liaison ij entre les nœud change de liaison dynamiquement au cours du temps en fin j’espère que vous m'avez compris cher Guillaume et merci infiniment
@MachineLearnia5 жыл бұрын
@@aymenlazem2062 Je crois que je commence a comprendre. C'est pour faire de la programmation linéaire (optimisation) ?
@aymenlazem20625 жыл бұрын
@@MachineLearnia oui exactement merci infiniment
@MachineLearnia5 жыл бұрын
@@aymenlazem2062 Ah d'accord je comprends bien désormais ! :) Je n'ai pas prévu de montrer ceci dans la série Python, mais je compte faire de la programmation linéaire sur ma chaîne KZbin, je garderai votre requête en tete !
@GuilhermeZip4 жыл бұрын
Parfait! Merci beaucoup
@MachineLearnia4 жыл бұрын
De rien :)
@Francois923 жыл бұрын
J'avais résolu l'exercice de standardisation avec 2 boucles for, là je vois qu'avec le broadcasting 1 seule ligne suffit. Bon j'ai pas très bien compris la notion de reshape je vais approfondir ! Merci pour tes vidéo et pour les exercices et aussi l'essentiel à retenir.
@MachineLearnia3 жыл бұрын
Bien joué. reshape c'est juste pour redimensionner un tableau. Et parfois c'est important de bien préciser que les dimensions d'un tableau sont (100, 1) au lieu de (100, ). Ca confirme qu'il y a 2 dimensions sur le tableau et qu'il ne s'agit pas simplement d'une chaine de valeur.
@madiounimohsen69563 жыл бұрын
Bonsoir Guillaume j'ai essayer de travailler l'exercice et voici ma réponse N=np.zeros((A.shape[0],A.shape[1]) for i in range (A.shape[1]) : N[:,i]=(A[:,i]-A[:,i].mean())/A[:,i].std() N elle donne les meme resultats peut etre en terme de complexité algo et plus élevée .
@MachineLearnia3 жыл бұрын
En effet c'est un bonne réponse, mais vous gagnerez en temps, en efficacité et en simplicité si vous adoptez la technique de "Broadcasting" de Numpy. Dans tous les cas, bravo d'avoir résolu l'exercice !
@babeboom634 жыл бұрын
merci pour ce beau resumer ❤
@MachineLearnia4 жыл бұрын
de rien :)
@josephwandji86214 жыл бұрын
Un pur regal
@MachineLearnia4 жыл бұрын
Ca fait plaisir :)
@rubendanan6742 жыл бұрын
Bonjour Guillaume, je ne comprends pas pourquoi la technique du broadcasting marche dans notre exercice alors que l'on a deux tableaux de dimensions respectives (10,5) et (5,1) qui ne sont donc pas superposables et on ne peut les étendre non plus car le nombre de lignes est différent (10=!5). Merci pour ces vidéos !
@donellessame9194 Жыл бұрын
tu pourrait faire une vidéo sur la convolution stp.
@manu_n_attend_plus3 жыл бұрын
Travail vraiment incroyable ! Bravo et merci ! J'ai du mal à comprendre les tableaux avec la shape suivante : (x,). C'est un tableau à 1 dimension ? Pourtant le tableau : A = np.array([1,2,3]) qui a une shape de (3,) devrait être de dimension 3 non ?
@MachineLearnia3 жыл бұрын
Non c'est bien un tableau a 1 dimension, il s'agit d'un vecteur qui comprend 3 valeurs.
@alaincharbonneau36222 жыл бұрын
Bonjour, Bravo pour ces vidéos, qui vont au coeur du sujet. J'ai une question concernant la syntaxe des méthodes, manipulation numpy . Dans votre résumé, par exemple, vous employez A.concatenate (axis) au lieu de np.concatenate ((A,B)). Je ne comprends pas comment la première forme fonctionne. Aussi, dans les méthodes, quelle différence y-a-t-il entre, par exemple, A.mean(axis=0) vs np.mean (A,axis=0). Merci
@MachineLearnia2 жыл бұрын
Bonne question, c'est juste une redondance dans la librairie de Numpy, Vous pouvez parfois trouver des fonctions : np.mean() et des méthodes : A.mean() que l'on applique directement sur l'objet en question. Le résultat est le meme, ne vous prenez pas la tete ^^
@pierremonroux98594 жыл бұрын
Super vidéo claire et intéressante. Serait il possible que tu donnes accès en description à la fiche bilan.
@MachineLearnia4 жыл бұрын
Oui je vais tenter de la retrouver dans mes dossiers
@gregoiremenard38634 жыл бұрын
bonjour, merci pour les videos de qualité. la valeur A.mean(axis=0) est de type ndarray et de dimension (5, ) comment se fait-il que numpy arrive a faire un broadcasting pour faire le calcul de normalisation ? il ne devrait pas y avoir le meme probleme que dans la video ?
@MachineLearnia4 жыл бұрын
Bonjour et merci beaucoup. A est de dimension (10, 5) et A.mean() est de dim (5,). En assemblant ces deux tableaux, c'est le nombre de lignes qui est étendu. Donc le résultat est (10, 5). Je sais que ce n'est pas très facile a visualiser. Vous pouvez écrire vos deux tableaux, et vous comprendrez que l'assemblage s'effectue sans problème.
@darkiche36893 жыл бұрын
Merci encore ! :D
@MachineLearnia3 жыл бұрын
Merci a toi :)
@vgflyway10633 жыл бұрын
Tu es trop fort
@MachineLearnia3 жыл бұрын
Bonjour, la formation est disponible sur KZbin Gratuitement, je dois juste sortir les autres épisodes, qui arrivent rapidement
@cheikhaziz2 жыл бұрын
Like it🥰
@nekro31154 жыл бұрын
super,hate d'attaquer la suite ! :D
@MachineLearnia4 жыл бұрын
Ta motivation est légendaire, bravo ! :D
@nekro31154 жыл бұрын
@@MachineLearnia en espérant que sa dure après la rentrée -_-
@MachineLearnia4 жыл бұрын
@@nekro3115 Mais oui ! Courage !
@babyssbabyss59582 жыл бұрын
bonjour, Pour le broadcasting Numpy le gère tout seule ou il faut le faire a la main chaque fois et tout revérifier ?
@MachineLearnia2 жыл бұрын
je vous conseille de toujours vérifier vos fonctions de toute facon si vous voulez devenir un professionel, on appelle ca faire du unit testing.
@tmamadousalioubah77713 ай бұрын
S'il te plaît mon boss fais moi des cours complets sur data anylyst et tableau de bord avec python,
@LMGaming04 жыл бұрын
Perfect !
@MachineLearnia4 жыл бұрын
Thanks !
@redabenyoub77343 жыл бұрын
Hi, merci encore une fois pour votre travail , cependant j'ai bien compris que le BroadCasting sert à simplifier les calculs de type vecteur + vecteur, par contre comme vous l'aviez préciser des fois il est dangereux de faire ainsi car on frôle l'erreur, j'aimerai savoir quand est-ce qu'il ne faut pas l'utiliser et passer par reshape(()) , merci!
@MachineLearnia3 жыл бұрын
Il n'y a pas de cas particulier que je puisse vous fournir comme ca, mais pour savoir quand il faut "redimensionner" vos tableaux, il faut écrire sur papier le calcul matricielle que vous cherchez a effectuer. Vous verrez bien s'il y a un "pépin" ou non a ce moment la.
@redabenyoub77343 жыл бұрын
@@MachineLearnia ah d'accord je comprend mieux, Merci encore une fois.
@jipy32204 жыл бұрын
Bonjour, Pourquoi n'obtient t - on pas exactement 0 pour en moyenne pour les colonnes standardisées? Tes vidéos sont top!!
@MachineLearnia4 жыл бұрын
Bonne question ! C'est lié a la "précision" des calculs : mathématiquement ca devrait donner 0, mais les nombres stockés sur la mémoire de votre ordinateur (avec le dtype) ont une "résolution" limité (8 octects, 16 octets, 32, etc.) donc il arrive que vous n'obteniez pas exactement 0 au final
@jipy32204 жыл бұрын
@@MachineLearnia merci!
@cyrilww37503 жыл бұрын
Hello ! Great vid again !! J'ai eu un souci avec Numpy : ayant tenté l'exo de standardisation d'une matrice avant d'en savoir plus sur le broadcast, j'ai fait une boucle (shame on me): Voici le résultat pour B : C'est agréable à regarder mais pas bon du tout ! ^^ En remettant l'init de B à np.zeros(A.shape), j'obtiens la bonne matrice. Pourtant elle est totalement écrasée pendant la bouble... Une idée du souci ?
@MachineLearnia3 жыл бұрын
Désolé je ne vois pas de résultat pour B dans ton commentaire (il a du y avoir un probleme de copier coller entre ton code et le commentaire youtube ahah)
@abderrazakcroxup3215 жыл бұрын
great teacher ;)
@MachineLearnia5 жыл бұрын
Thanks :)
@ayoubrazouk6303 жыл бұрын
Merci bcp Guillaume pour votre efforts et votre temps ,cependant j'ai utiliser le code suivant pour résoudre l'exercice mais il ne donne pas la meme résultat si vous pouvez m'aider a comprendre l'erreur que j'ai commis merci infiniment : moyenne=a.mean(axis=0) ecartype=a.std(axis=0) for i in range(0,a.shape[0]): for k in range(0,a.shape[1]): a[i,k]=(a[i,k]-moyenne[k])/ecartype[k]
@ayoubrazouk6303 жыл бұрын
up
@ayoubrazouk6303 жыл бұрын
up
@ayoubrazouk6303 жыл бұрын
up
@ayoubrazouk6303 жыл бұрын
up
@MachineLearnia3 жыл бұрын
Bonjour, cela est étrange, je vous invite a en parler plus longuement avec nous sur discord.
@noel93354 жыл бұрын
Donc d'après cette vidéo : faut-il comprendre que la méthode reshape() corrige un bug de numpy ? A+ ;)
@MachineLearnia4 жыл бұрын
Le broadcasting que je décris n'est pas un "bug" a proprement parler. Mais en effet, il est indispensable de bien dimensionner nos matrices avec reshape pour éviter d'avoir un broadcasting indésirable
@noel93354 жыл бұрын
No response?
@MachineLearnia4 жыл бұрын
@@noel9335 Je vous ai écrit une réponse, vous ne pouvez pas la lire ?
@jean-baptisteriou55552 жыл бұрын
Bon eh bien forcément, je me suis lancé dans la double boucle for. Quand on voit la solution avec le broadcasting, on se dit que c'est sympa quand même 😅
@abdoubrk48142 жыл бұрын
je me demande si la normalisation n'influencera pas les resultas et notre modele puisqu'on a changer les donnes(est ce qu'on n'arrivera par exemple a predire la bonne valeur de y avec notre le model obtenu apres le feature scaling etant donne que notre nouveau model s'est base sur des donnees differentes que celles d'origine )
@MachineLearnia2 жыл бұрын
La normalisation facilite la convergence des algorithmes d'apprentissage statistiques, Mais bien sur si vous normaliser les données d'apprentissage, il faut aussi normaliser les données futures ! J'en parle plus en détails dans la suite de cette série.
@seyebabacar95393 жыл бұрын
XD je sais pas pour quoi je suis compliqué pour le meme resultat j'ai fais autrement lol J= np.zeros(A.shape) for i in range (A.shape[1]): J[:,i] = (A[:,i]-A[:,i].mean())/A[:,i].std() Merci énormément Guillaume 🙏 C'est pour quand pour les video de Deep Learning ?
@MachineLearnia3 жыл бұрын
Le plus important c'est d'avoir essayé, bravo ! (moi aussi il m'arrive de faire trop compliqué ^^) J'ai finit le tournage et j'ai fait environ 50% du montage de la 1ere video, il reste encore un peu de travail, en attendant tu peux voir les videos de Tipeee :)
@guillaume84374 жыл бұрын
Merci pour cette 13eme video. En revanche, vu que le compilateur réplique soit les lignes, soit les colonnes, (soit les 2 pour un scalaire), pourquoi il n'aime pas si je mets np.random.seed(0) A=np.random.randint(0,10,[2,4]) B=np.ones((2,2)) print(A) print(B) print(A+B) ? Il ne devrait pas répliquer le tableau 2x2 afin que ca fasse un tableau 2x4? Ceci dit, en C où on doit déclarer toutes nos variables, on ne peut pas avoir toutes ces fantaisies et de toutes les facons, ce n'est pas très propre en termes de codage. Sympa à la fin la musique pour histoire à raconter pour les petits enfants ;)
@MachineLearnia4 жыл бұрын
La dimension 1 de A et de B est égale (2 et 2) donc c'est ok En revanche la dimension 2 de A et B n'est pas égale (2 et 4) donc ca vous donne une erreur (pour rappel : seul les dimensions égales a 1 peuvent être étendues, c'est le broadcasting)
@guillaume84374 жыл бұрын
@@MachineLearnia "pour rappel : seul les dimensions égales a 1 peuvent être étendues, c'est le broadcasting" Ah OK. Donc si par exemple, je voulais faire sur un tableau [[0 2 4 6],[1 3 5 7]] l'addition de [[1 2],[1 2]] de sorte d'avoir en sortie [[1 4 5 8],[2 5 6 9]]... Tu confirmes que le broadcasting est indispensable ou si on préfère coder en détails avec des imbrications de for et des redimensionnements, on peut procéder dans cette voie plus complexe?
@MachineLearnia4 жыл бұрын
@@guillaume8437 Le broadcasting n'est pas indispensable, tu peux faire tout avec des boucles for. Mais l'intéret de numpy est justement d'utiliser les opération de vectorisation, car c'est beuacoup plus rapide qu'un boucle for (je rappelle que Python est un langage tres lent)
@guillaume84374 жыл бұрын
@@MachineLearnia effectivement, il est vraiment très lent. Dans les premières vidéos tu avais évoqué un temps d'exécution ou de compilation de qqch comme 6 ou 7 secondes. C'est énorme! Justement le problème des librairies c'est que l'exécution du code implique tout ce qui est programmé dans ces librairies et sur les choses essentielles, c'est mal fichu. Par exemple (désolé de sortir du sujet principal), sur Arduino, tu peux changer la valeur d'une IO en utilisant leur fonction simple digitalWrite mais elle consomme une quantité de cycles d'horloge processeur impressionnante alors que changer cette IO de la façon la plus rudimentaire (en écrivant directement dans les registres) ne consomme pas plus de 2 cycles d'horloge. L'idée intéressante des librairies est de simplifier ce qui requiérerait des heures de codage pour des choses complexes. Merci en tout cas pour ton aide et ta réactivité!
@MachineLearnia4 жыл бұрын
Oui, mais Arduino est un micro-controlleur, c'est son but d'etre ultra rapide ! Python est un langage de laboratoire, pour pouvoir coder tres rapidement des programmes complexes qui pourraient prendre 10x plus de temps a coder en C++. Ensuite, certes la machine fonctionne plus lentement, mais ca n'est pas grave, car nous on fait du travail a coté pendant ce temps. C'est la raison pour laquelle python a explosé depuis 2012.
@kodjoedemagossou22373 жыл бұрын
Merci beaucoup pour la vidéo. Je voudrais savoir quand est-ce qu'on utilise A.mean() et quand est-ce qu'on utilise np.mean(A)? Merci
@MachineLearnia3 жыл бұрын
les deux méthodes sont les memes, vous pouvez les utiliser dans n'importe quelle situation.
@kodjoedemagossou22373 жыл бұрын
@@MachineLearnia Merci
@yahiaouizakaria212 Жыл бұрын
bonjour , Meri pour ces vidéos et vraiment vous êtes le meilleur merci. j'ai un petit problème avec la solution suivante ( elle n' affiche pas les nombres en type float dans la matrice 😮💨😪) import numpy as np np.random.seed(0) A = np.random.randint(0, 100, [10, 5]) print(A, ' ') moy_cln = A.mean(axis=0) print('la moyen de chaque colone =',moy_cln, ' ') A[0:10,0:1] = [i-moy_cln[0] for i in A[0:10,0:1]] A[0:10,1:2] = [i-moy_cln[1] for i in A[0:10,1:2]] A[0:10,2:3] = [i-moy_cln[2] for i in A[0:10,2:3]] A[0:10,3:4] = [i-moy_cln[3] for i in A[0:10,3:4]] A[0:10,4:5] = [i-moy_cln[4] for i in A[0:10,4:5]] print(A,' ') ecr_typ = A.std(axis=0) print("l'ecare type de chaque colone =",ecr_typ, ' ') A[0:10,0:1] = [i/ecr_typ[0] for i in A[0:10,0:1]] A[0:10,1:2] = [i/ecr_typ[1] for i in A[0:10,1:2]] A[0:10,2:3] = [i/ecr_typ[2] for i in A[0:10,2:3]] A[0:10,3:4] = [i/ecr_typ[3] for i in A[0:10,3:4]] A[0:10,4:5] = [i/ecr_typ[4] for i in A[0:10,4:5]] print(A,' ') merci de me répondre.
@benoit24893 жыл бұрын
Merci pour ces vidéos, je les dévore !! Par contre je n'ai pas vraiment compris l'intérêt du broadcasting. A quoi ça sert concrètement ?
@MachineLearnia3 жыл бұрын
Ca sert a simplifier et accelerer les calculs de tableaux. ex : au lieu d'écrire (1, 1, 1, 1, 1) + (a, b, c, d, e) On peut écrire 1 + (1, b, c, d, e)
@benoit24893 жыл бұрын
@@MachineLearnia Merci !!
@soufiane_elbk Жыл бұрын
Done
@lilianenyinawineza77073 жыл бұрын
Y -A -IL une différence entre un tableau numpy, un objet ndarray et une matrice ?
@MachineLearnia3 жыл бұрын
un tableau numpy c'est un objet ndarray. Une matrice c'est différent (Avec numpy on peut faire du calcul matriciel, c'est a dire considérer nos tableaux ndarray comme des matrices, mais attention je ne dirais pas qu'un tableau numpy c'est un matrice.)
@romainmartin22804 жыл бұрын
Bonjour, Merci pour vos videos. Je voudrais savoir s'il est possible de faire du broadcasting avec des tableaux qui n'ont pas la meme dimension. Je souhaite additionner 2images et j'ai l erreur classique "cannot broadcast together with shape (251,251,4) et (64,64)" Est ce la méthode reshape peut m'aider? Dans l'idéal je prefererai que mon image finale ait une taille de 64,64 si c'est possible. Merci beaucoup :)
@MachineLearnia4 жыл бұрын
Bonjour. Oui le broadcasting fonctionne sur les tableaux de dimensions inégale comme on a pu le voir : en assant de 1D a 2D. Par exemple : A = np.zeros(10,) B = np.ones((2, 10)) A+B # est de shape (2,10) Mais dans votre cas ca ne va pas etre le nombre de dimensions le probleme, mais la regle du (1) ou des dimensions égales qui ne va pas etre respectée. (entre le 251 et le 64)
@romainmartin22804 жыл бұрын
Merci pour cette réponse rapide j ai pu résoudre mon problème :)
@ggizi63134 жыл бұрын
bon avec le broadcasting ça marche bien ! j'ai ecrit une petite expression qui simplifie peut etre le probleme de broadcasting selon moi :p (n,1) != (n,) = (1,n) ! il faut savoir quand on doit travailler avec un vecteur ligne ou colone !
@MachineLearnia4 жыл бұрын
Attention ! J'ai peut-etre mal expliqué la notion de dimension (n,) dans la vidéo. Un tableau a dimenion (n, ) ne contient que 1 dimension, donc on ne peut pas dire que c'est "égual" a un tableau (1, n), puisque ce deuxième tableau a 2 dimensions. Par contre le broadcasting va fonctionner comme tu l'as imaginé :) Bien joué ;)
@ggizi63134 жыл бұрын
@@MachineLearnia oui j'ai compris merci :) le plus important c'est qu'il faut toujours vérifier les dimensions d'un tableau :D
@joelkouadio46134 жыл бұрын
Merci pour tes vidéos. C'est extrêmement facile d'apprendre Python grâce à ton site. Concernant l'exercice de la vidéo 12, voici ce que j'ai écrit. Mais j'obtiens des arrondis à 0 chiffres (par exemple -1.55 = -1 ; 0.65659=0; 1.666=1). Pourriez-vous m'indiquer comment je peux avoir le même résultat que vous en modifiant le format des nombres dans le calcul ? np.random.seed(0) A=np.random.randint(0,100,[10,5]) print(A) mA=A.mean(axis=0) sA=A.std(axis=0) print('--------------------') print(mA,'*',mA.shape) print('--------------------') print(sA,'*',sA.shape) print('--------------------') print(A.shape[1]) for i in range(A.shape[1]): for j in range(A.shape[0]): A[j,i]=(A[j,i]-mA[i])/sA[i] A
@MachineLearnia4 жыл бұрын
Merci beaucoup :) Pour votre code, il faut écrire cela : A=np.random.randint(0,100,[10,5]).astype(np.float)
@joelkouadio46134 жыл бұрын
@@MachineLearnia Merci beaucoup. Ça marche très bien.
sinon ça c'est acceptable : moy = H.mean(axis=0,dtype=np.float64) ecartType = H.std(axis=0,dtype=np.float64) for i in range(0,10): for j in range(0,5): H[i,j]=(H[i,j]-moy[j])/ecartType[j] H j'ai aussi remarquer la non presence des nbr apres la virgule 🤷
@MachineLearnia2 жыл бұрын
Oui c'est possible, mais vous ne tirez pas avantage de la vectorisation en écrivant cela (ca ralentira beaucoup votre code a l'avenir sur de gros datasets)
@sohaibsoussi90422 жыл бұрын
@@MachineLearnia Merci bcp
@ggizi63134 жыл бұрын
bonjour merci que vous n'est pas dérangé de lire tout mon commentaire voila mon 'prochain' commentaire que vous l'attend ;D alors comme a chaque fois j'ai essayé d'ecrire mon propre code : np.random.seed(0) A = np.random.randint(0,100,[10,5]) m= A.mean(axis=0) m array([44.5, 47. , 60.5, 45.7, 64.5]) e= A.std(axis=0) e array([22.66384786, 22.28003591, 26.5678377 , 29.36341261, 23.2432786 ]) à ce stade m et e sont des tableaux de dimention (5,) alors pour acceder au different element j'ai ponsé à la boucle for ! for i in range (10): for j in range (5): A[i,j]= (A[i,j]-m[j])/e[j] A array([[ 0, 0, 0, 0, 0], [-1, 1, -1, 0, 0], [ 1, 1, 1, -1, 0], [ 0, 0, 0, 0, 1], [ 1, 0, -1, 1, 0], [-1, -1, 0, 0, 0], [ 0, 0, 0, 1, 1], [ 0, 0, -1, 0, -2], [ 0, 0, 0, -1, 0], [ 0, 0, 0, 0, -1]]) mais ça marche pas ! je ponse que la boucle for accede aux bon elements non ! hhhh je suis entrain d'ecrire ce commentaire précisement quand j'ai ecrit (bon elements) et bah j'ai posé la question : est ce que ce sont les bon elements ? :D et j'ai remarqué ma faute :D c'est que je doit garder les valeurs du taleau initiale A et non pas les changer a chaque fois dans la boucle for :/ alors j'ai crée un tableau D rempli des zeros et le remplcé dans l'expression et ça marche bien maintenant :D for i in range (10): for j in range (5): D[i,j]= (A[i,j]-m[j])/e[j] D array([[-0.02206157, 0. , 0.13173823, 0.72539252, 0.10755798], [-1.56637126, 1.61579632, -1.48676006, -0.33034307, 0.96802178], [ 1.12513992, 1.84021247, 1.03508612, -1.14768676, -0.27965074], [ 0.90452425, -0.35906585, 0.99744662, 0.0102168 , 1.01104497], [ 1.6104944 , -0.44883231, -1.33620208, 1.0659524 , 0.32267393], [-1.56637126, -1.21184724, 0.73397016, 0.7935045 , 0.62383626], [ 0.11030784, 0.76301493, 0.80924915, 1.81518411, 1.01104497], [ 0.1985541 , -0.80789816, -1.56203905, -0.90929485, -2.17267111], [-0.24267724, -0.67324847, 0.16937773, -1.24985473, -0.32267393], [-0.55153918, -0.7181317 , 0.50813319, -0.77307091, -1.26918412]]) hhhh bon je pense que je doit simplifier les choses et non pas les compliquer :D
@MachineLearnia4 жыл бұрын
les choses viennent avec la pratique. ;) Si vous rencontrez des problèmes, vous pouvez vous rendre sur le discord ! :)
@soubinan5 жыл бұрын
On ne peut pas aimer plusieurs fois une même vidéo (à la Medium) malheureusement :)
@MachineLearnia5 жыл бұрын
Ahah merci ! :) C'est pas tres grave, vous pouvez la partager et vos amis l'aimeront pour vous également ! C'est encore MIEUX ! :D
@ahmedsyed6713 жыл бұрын
à 11:21 quelquun sais quelle est la music de fond ?
@MachineLearnia3 жыл бұрын
la musique s'appelle Ticker
@OusmaneNdoye-z6p Жыл бұрын
je viens de me lancer dans quelque chose de trés interessant, prendre des photo de personne flou et de les eclaircir pour voir le visage
@OusmaneNdoye-z6p Жыл бұрын
coool non, imagine qu'il s'agit d'un voleur ma filmé par les camera de surveillance 😂😂
@Alpha-zf1tw3 жыл бұрын
Challenge accepted : 13/30
@epsiloc95994 жыл бұрын
J'ai du mal avec les formules alors je préfère écrire Les Régles du Broadcasting qui marchent comme suit: 1). Les tableaux A et B ont les mêmes dimensions. 2). Les tableaux A et B n'ont pas le même nombre de ligne, mais un des tableaux a UNE ligne. 3). Les tableaux A et B n'ont pas le même nombre de colonne, mais un des tableaux a UNE colonne. 4). Les tableaux A et B n'ont pas le même nombre de ligne et de colonne : On applique les règles 2) et 3) Enfin voilà quoi :)
@MachineLearnia4 жыл бұрын
Pas mal comme système :)
@m.ibrahim1283 жыл бұрын
super acteur hhhhhhhhh
@MachineLearnia3 жыл бұрын
Merci ^^
@hermesingenui26533 жыл бұрын
blablabla python python python :)
@MachineLearnia3 жыл бұрын
blabla héhé :)
@tcgvsocg14583 жыл бұрын
Aie aie aie il faut attendre la 13 video pour que cela sameliore...pas trop de bruit de bouche ça parle pas trop pour rien dire cest bien...faut peut etre refaire les 13 premier fmvideo ou du moins les regarder avant de les poster... Alors par contre quand tu montre la manier oop orienter objet si cest pour debutant tu dois leur dire pourquoi tu ne met rien en argument sinon il von pas savoir...14.00
@el-mehdilahlou37982 жыл бұрын
bonjours monsieur quelle est mon erreur de ma proposition de la correction d'exercice import numpy as np np.random.seed(0) A=np.random.randint(0,100,[10,5]) A.mean(axis=0)[0] for j in range(5): a=A.mean(axis=0)[j] b=A.std(axis=0)[j] for i in range(10): A[i,j]=(A[i,j]-a)/b et merci d'avance
@khalilkhazmi7581 Жыл бұрын
# Calculate EXECUTION TIME & COMPARE ;D !! import numpy as np import time np.random.seed(0) A = np.random.randint(0,100,[10,5]) A_stdrz = np.zeros([10,5]) tps1 = time.time() for i in zip(range(A.shape[1])): for j in zip(range(A.shape[0])): A_stdrz[j,i] = (A[j,i].T-A[:,i].T.mean())/A[:,i].T.std() tps2 = time.time() temps_execution = tps2 - tps1 print("temps d'execution est %s" % temps_execution) A_stdrz # on remarque que ça prends énormément plus de temps quand on utilise directement le calcul matriciel de numpy # comme proposé dans la solution de la vidéo # from Tunis with Love