Transcription
1. Les principes essentiels de l'apprentissage machine: Hé, tout le monde, c'est Max. Et bienvenue à mon cours sur l'essentiel de l'apprentissage automatique. Et cette conférence, nous allons aller et entrer dans l'apprentissage automatique. Donc je vais vous dire ce que ce cours est tout au sujet, ce que vous allez apprendre et aussi les choses que nous ne allons pas couvrir dans ce cours juste pour être sûr que vous savez à quoi vous attendre et que vous pouvez aussi décider si c'est le bon cours pour vous que vous voulez prendre en ce moment dans cette conférence. Je vais également vous présenter brièvement qui je suis, puis nous parlerons de ce qu'est l'apprentissage automatique et à quoi
ressemble généralement l'apprentissage automatique lorsque vous le faites en pratique. Ok, alors qu'est-ce qu'on va couvrir dans tout ce cours ? abord, nous allons apprendre une tonne de termes essentiels et ces termes aériens que le genre de portée dans tout le domaine de l'apprentissage automatique, et il est donc important de connaître ces termes. Quand vous parlez de quelque chose lié à l'apprentissage automatique, alors nous allons examiner les techniques de préparation des données. On va regarder les mères de performance. Alors, comment pouvez-vous évaluer l'efficacité de votre implémentation d'apprentissage automatique. Ensuite, nous allons examiner plus spécifiquement différents
algorithmes de régression et de classification . Enfin, nous allons également en apprendre davantage sur les différentes optimisations que vous pouvez utiliser et comment vous pouvez décider utiliser ou quel optimiseur vous devriez décider d'utiliser pour différents algorithmes d'apprentissage automatique. Bon, alors qu'est-ce que tu vas obtenir de ce cours ? Alors que vous aurez une bonne compréhension de ce que vous devez considérer lorsque vous approchez des problèmes d'apprentissage automatique, vous allez
donc en apprendre davantage sur les algorithmes d'apprentissage automatique et ce que vous devez prendre en compte lorsque vous choisissez un bien est ce que vous devez considérer avant et pendant que vous en formez un, vous serez en mesure de parler de différentes implémentations d'apprentissage automatique avec des gens. Donc, vous allez pouvoir avoir des conversations avec des gens où ils
vous parleront de leur mise en œuvre. Vous allez être en mesure de comprendre de quoi ils parlent, et vous pourriez même être en mesure de donner des commentaires ou des suggestions sur les choses à prendre en considération. Et vous allez avoir une idée globale de la façon dont l'ensemble du
processus d'apprentissage automatique ressemble. Alors qu'est-ce qui n'inclut pas ce cours ? Ce cours n'inclut pas d'exemples codés d'implémentations d'apprentissage automatique. Donc, comme je l'ai dit, c'est pour vous donner une compréhension des sujets d'apprentissage automatique afin que vous sachiez tout ce qui se passe et que vous puissiez en parler,
que vous pouvez comprendre quand les gens en parlent, puis vous pouvez avoir des conversations à ce sujet et donner des commentaires. Mais il n'inclut aucun exemple codé d'implémentation effective de l'un des algorithmes. Et nous n'allons pas non plus passer en revue l'arrière-plan mathématique et la privation des algorithmes et des différentes techniques. Maintenant, à ce stade, je tiens également à souligner que l'apprentissage automatique est un domaine extrêmement vaste et qu'il y a beaucoup de recherches actives en cours. C' est un domaine très rapide et en développement, et dans ce cours, nous n'allons pas aller dans les domaines tels que les réseaux neuronaux profonds, et nous ne reviendrons pas sur les dernières recherches. Le but de ce cours est que vous vous sentez à l'aise de parler de l'apprentissage automatique dans son ensemble dont vous pourriez avoir des conversations. Que vous pouvez comprendre la mise en œuvre est que les gens ont fait. Vous pouvez fournir des commentaires à ce sujet, et beaucoup de cela va vous donner Cela allait être basé sur la compréhension des techniques
fondamentales d'apprentissage automatique qui existent depuis un certain temps et que toute cette nouvelle recherche est en construit sur. Ok, alors qui suis-je ? Salut, m'appelle Max, et je vais être votre instructeur pour ce cours. Je travaille en tant que scientifique des données depuis plus de trois ans, et j'ai aussi eu la chance d'enseigner à plus de 13 000 étudiants le monde de la
science des données . Alors, qu'est-ce que l'apprentissage automatique ? Eh bien, le but général de l'apprentissage automatique est que vous entraînez une machine à effectuer une tâche et cette machine apprendra les règles derrière le système. Donc, c'est vraiment cool parce que vous n'avez pas besoin d'écrire toutes les règles individuelles et vous n'avez pas besoin de continuer à les changer. Donc votre système va apprendre les règles, et il peut réellement évoluer avec le temps et apprendre de nouvelles règles à mesure que les choses changent. Et en fin de compte, vous laissez la machine généraliser ses connaissances, donc elle va apprendre une certaine chose, et ensuite elle sera capable d'appliquer ces connaissances à un domaine plus vaste et aussi à de nouveaux problèmes qu'elle n'a peut-être pas vus auparavant. Alors, que ferait un ingénieur d'apprentissage automatique ? Eh bien, c'est un joli processus. Donc, vous devez d'abord avoir des données. Vous devez donc obtenir des données de processus. J' ai besoin de le convertir d'un format brut dans un format propre. Et vous devrez également être en mesure d'analyser et de comprendre vos données et de créer des fonctionnalités et des indicateurs. Donc, cette première partie est très similaire est en fait basée sur toutes les compétences de signes de données. Donc, si vous n'êtes pas vraiment sûr de la science des données, j'ai aussi beaucoup de choses sur la science des données. Donc si vous n'êtes pas sûr de ces deux choses, je vous recommande de vérifier ces choses. Mais bien sûr, l'apprentissage
automatique s'appuie sur toutes les compétences en signes de données. Maintenant, là où vous allez continuer à faire, c'est une fois que vous aurez fait tout ça, vous allez peser les différents algorithmes d'apprentissage automatique. Tu vas en appliquer différentes que tu vas choisir. Plusieurs veulent tester, et vous allez identifier les plus optimaux ou ceux que vous voulez utiliser. Et pendant tout ce processus, ils allaient se libérer, et tu vas l'entraîner jusqu'à ce que tu sois satisfait, et puis il sera lancé en production. Donc ça va être, ça va aller vivre essentiellement, et même après que ça aura pris vie, tu vas toujours avoir besoin de le surveiller. Vous allez toujours avoir besoin de voir comment il fonctionne et au fil du temps, également corriger cela va l'améliorer ou simplement le garder à jour.
2. Terres essentielles de l'apprentissage machine: Dans cette conférence, nous allons passer en revue la première partie des termes essentiels. Maintenant, je veux juste dire que si vous ne
comprenez pas tout ce qui se passe en ce moment, ne vous inquiétez pas. Je veux vous présenter tous ces termes avant
d' entrer dans les différents domaines afin que, quand ils apparaissent à nouveau,
vous soyez prêt, familier, et nous n'avons pas besoin de nous détourner pour expliquer de nouveaux termes. Donc la plupart de ces termes que nous allons revoir, et si vous ne comprenez pas le maintenant,
encore une fois, ne vous inquiétez pas à ce sujet. Nous les recouvrons probablement dans les conférences ultérieures. L' idée ici est juste de vous faire comprendre tous les termes possibles qui ne sont pas vraiment relatifs à un domaine particulier ou à un autre que vous pouvez,
vous avez vu tous ces termes et que vous comprenez
ces termes et que vous savez comment les contextualiser. Et que vous compreniez le plus grand tableau de tout. Et puis nous savons, plonger un peu plus en détail dans chacune des choses que nous avons mentionnées dans la vidéo précédente. Bon, alors on va y sauter. La première chose dont nous allons parler est différentes approches que vous pouvez adopter un apprentissage automatique. Celles-ci sont divisées en une approche supervisée et non supervisée et de renforcement. Maintenant, une approche supervisée est lorsque vous avez des données et que vous êtes également fourni une solution, donc des réponses idéales que vous voulez. Donc, dans ce cas, ce que nous voyons sur l'image sur la gauche que vous avez une ligne droite. Et chacune de ces valeurs peut venir avec une réponse idéale. Ainsi, vous pouvez obtenir toutes les valeurs sur l'axe des x et vous voulez prédire les valeurs sur l'axe des y. Dans ce cas, vous savez déjà ce qu'est le jumelage. Et l'idée d'approches d'apprentissage automatique supervisé est de séparer vos données. Donc, vous ne prenez que les données sur lesquelles vous voulez faire des prédictions, puis vous vérifiez ces prédictions par rapport aux réponses. Et en fonction de la façon dont vos prédictions sont correctes ou erronées, vous changez ensuite votre algorithme d'apprentissage automatique pour
finalement le rendre meilleur à venir très près de ces réponses. Maintenant, l'autre type d'approche que vous pouvez adopter est sans supervision, où il n'y a pas réellement de réponses correctes ou vous n'avez pas de réponses spécifiques. Et donc le but de votre algorithme ici est d'essayer de trouver des modèles eux-mêmes. Donc, un bon exemple est si nous regardons l'image au milieu, si nous avons juste un jeu de données comme celui-ci et nous voulons comprendre,
sommes-nous voulons savoir s'il y a différents groupes présents. Quelque chose que nous pouvons exécuter est de trouver des clusters, dont nous parlerons plus en une seconde et aussi plus dans les conférences ultérieures. Et donc l'idée est que notre algorithme d'apprentissage automatique dans ce cas trouvera deux groupes différents, qui sont montrés ici en bleu et en orange, qu'il a appris à séparer. Enfin, la troisième
approche d'apprentissage automatique que vous pouvez prendre comme approche de renforcement. Et c'est en quelque sorte similaire à non supervisé, mais cela passe vraiment au niveau suivant où vous laissez votre algorithme d'apprentissage automatique juste un peu aller seul. Et ça va commencer à faire des choses. Et il recevra des commentaires basés sur si c'est l'action était bonne ou si c'est la vente aux enchères était mauvaise. Et vous pouvez définir ce qui est bon et vous pouvez définir ce qui est mauvais. Et ce sont quelques-unes des approches
les plus modernes et elles sont aussi très complexes et elles peuvent, vous savez, vous pouvez vraiment obtenir très précis. Et essentiellement, l'idée est que c'est une sorte d'imiter la façon dont nous apprenons. Et donc le point ici est que vous laissez votre algorithme d'apprentissage automatique et chacun juste un peu de flux de données, puis vous le laissez prendre ses propres décisions. Et sur la base de la décision qu'il prend, vous dites alors, oui, mais c'était une bonne décision ou c'était une mauvaise décision. Et puis il apprendra au fil du temps à prendre plus de bonnes décisions. Main également éviter que les décisions. Donc, les différents types d'algorithmes d'apprentissage automatique qu'il existe, essentiellement vous pouvez avoir des objectifs différents avec vos algorithmes d'apprentissage automatique. Il y a une régression, une classification, et il y a aussi une réduction dimensionnelle. Donc, passons à travers chacune de ces régression est lorsque vous essayez de prédire une valeur spécifique. Donc le but ici est, disons que vous essayez de prédire un nombre. Donc, si nous avons nos données X ici, nous essayons juste de prédire la valeur y correspondante. Donc, cela pourrait être que vous essayez de prédire sont une sorte de séries continues de nombres où vous essayez de prédire des nombres et des intervalles spécifiques ou quelque chose comme ça. Mais le but ici est que vous essayez d'en prédire un certain nombre. Alors que la classification, d'un autre côté, est que vous essayez de diviser vos données en différents groupes. Donc, dans ce cas, et c'est le même graphique que nous utilisons la dernière fois, nous aurions deux groupes différents. Et le but de l'algorithme est juste de trier les points de données dans le groupe a ou le groupe B. Ainsi, par exemple, si vous avez des utilisations sur votre site Web, l'algorithme d'apprentissage automatique pourrait examiner ce que fait l'utilisateur. Et ils pourraient alors dire que
c' est un utilisateur qui est susceptible d'acheter chez nous à l'avenir. Ou il s'agit d'un utilisateur qui a besoin de plus de mains ou qui a besoin plus d'éducation sur la façon d'utiliser notre produit ou quoi que ce soit vos groupes peuvent venir. Mais c'est l'idée que vous n'essayez pas de lui attribuer des valeurs numériques. Vous essayez plutôt de les trier en différents groupes. Désormais, la réduction dimensionnelle est une approche que vous pouvez adopter pour préparer les données pour l'apprentissage automatique. Et c'est en fait lui-même une sorte d'ensemble d'algorithmes d'apprentissage automatique. Mais l'objectif est que souvent lorsque vous
avez des données et surtout lorsque les choses deviennent très compliquées, vous avez beaucoup de dimensions différentes. Prenons donc un exemple ici. Si vous avez une image et que vous essayez d'identifier quelque chose sur cette image, une image est composée d'un tas de pixels différents, en fonction de votre résolution. Et chaque pixel, si l'image est colorée, a
également des valeurs de couleur différentes avec elle. Il est donc livré avec trois valeurs de couleur différentes. Donc très rapidement, même si vous avez juste un 100 pixels, vous avez un 100 pixels fois trois couleurs. C' est 300 valeurs différentes que vous pouvez emporter. Et un 100 pixels n'est pas non plus une très grande image. Donc, vous pouvez le voir très rapidement. Vos dimensions peuvent devenir très, très grandes. L' idée de la réduction dimensionnelle est donc de prendre toutes ces images. Ce ne sont pas seulement des images, mais toutes ces sources de données qui contiennent des tonnes et des tonnes de données. Et vous essayez de le réduire de sorte qu'au lieu
d'avoir un million ou 5 millions de points de données différents pour chaque ensemble de données que vous avez, vous pouvez réduire ce nombre à des niveaux beaucoup plus bas, ce qui aidera votre algorithme d'apprentissage automatique parce qu' en fin de compte, vous vous concentrez simplement sur les choses importantes. Très bien, Alors plongons un peu plus profondément dans la construction
ou l' évolution d'un algorithme d'apprentissage automatique solo, flux d'apprentissage automatique. La première chose que nous allons devoir faire est vous allez avoir besoin de former votre algorithme. Maintenant, vous pouvez soit prendre un tout nouvel algorithme, soit vous pourriez avoir un algorithme partiellement formé ou déjà existant que vous devez améliorer. Mais quoi que vous
commenciez, vous voudrez toujours l'entraîner sur les données que vous avez recueillies. Donc, vous allez utiliser ces données. Je vais faire des prédictions. Ensuite, vous allez évaluer ces prédictions et vous allez chercher
les erreurs en fonction des données dont vous disposez. Maintenant, à côté de la formation, vous allez aussi vouloir faire de la validation. L' objectif de la validation est en fin de compte d'avoir un jeu de données sur lequel vous pouvez évaluer vos prédictions ou votre modèle actuel et voir comment il fonctionne sur des données qui n'ont pas encore été vues. Et le but de ceci est que vous pouvez éviter les problèmes de suréquipement maintenant. On en reparlera un peu plus tard. Mais en général, c'est juste que votre algorithme trouve des modèles qui n'existent pas vraiment. Donc, le point de validation est qu'une fois que vous avez formé, Vouliez-vous le tester sur certaines données qu'il n'a pas vues auparavant afin que ses prédictions n'aient pas été corrigées et voir comment il fait à propos de cela. Et la validation est vraiment agréable parce que vous prenez simplement votre ensemble d'entraînement et vous en divisez une partie. Et vous utilisez la plupart de votre ensemble d'entraînement pour l'entraînement et ils vont
utiliser une autre pièce pour valider. Et cela peut vraiment vous aider à identifier les problèmes de surajustement. Et il peut vous dire quand vous devez arrêter l'entraînement. Et vous savez, qu'est-ce qu'un bon 0,1 est que mon modèle ne fonctionne pas vraiment bien ? Maintenant, la dernière partie va être la partie test. Et le point de test est en fait très similaire à la validation. Mais il y a une très grande différence est que votre modèle ne peut voir les données de test qu'à la fois. Et vous n'allez pas continuer à améliorer votre modèle pour essayer de mieux adapter les données de test. Donc, en général, ce que vous voulez faire est de prendre votre jeu de données initial et vous en divisez 80 et vous le mettez dans la partie d'entraînement. Donc, ce sont des données que votre modèle va probablement voir plus d'une fois. Et 20 % tu mettrais de côté et tu ne le toucheras pas, tu ne le regardes même pas. Pas même hors de l'humain parce que vous ne voulez pas introduire de biais dans votre algorithme. Vous le mettez de côté et vous le laissez juste là et vous ne le touchez pas jusqu'à la fin, jusqu'à ce que vous vouliez vraiment savoir, ok, comment fonctionne mon algorithme maintenant avec les données d'entraînement pour que 80%, vous pouvez diviser dans la formation et la validation. Et la très grande différence entre la validation et la chose de test est que la validation et test de votre modèle ne vont pas voir le datum et il ne va pas apprendre à prédire à partir de ces données, mais c'est va être évaluée par rapport à elle. Maintenant, avec la validation, vous pouvez former votre modèle plusieurs fois et vous pouvez toujours le tester rapport à des données invisibles et à la validation où vous allez voir et vous allez tester plusieurs fois par rapport à ces données de validation. Alors que pour l'ensemble de tests, vous ne le laissez vraiment qu'à la variante. Et vous prenez ce que vous pensez être votre modèle final. Ensuite, vous l'exécutez sur les données de test et vous voyez comment il fonctionne. Et à partir de là, vous obtenez une réelle bonne représentation de la façon dont votre modèle est susceptible de fonctionner lorsqu'il voit des données complètement nouvelles. Maintenant, l'important est qu'une fois que vous l'exécutez,
il contre l'ensemble de tests, vous ne voulez pas. Entraînez-le plus et vous ne voulez plus l'accorder pour qu'il fonctionne mieux sur le centre de test car l'objectif de
l'ensemble de tests est d'introduire des données complètement invisibles et inconnues et sans biais et sans toute entrée de ce qui est correct ou non. Et donc, si vous commencez à ajuster vos données par rapport à l'ensemble de tests, alors ce n'est plus un ensemble de tests, alors c'est juste un autre ensemble de validation. Et à partir de là, il est peu probable que le résultat que vous allez obtenir sur la validation soit représentatif de ce que vous allez réellement voir lorsque vous déployez votre modèle sur l'endroit où vous pouvez l'utiliser sur complètement invisible données. Sur. Le but de l'ensemble de tests est
d'obtenir une perspective presque complètement nouvelle et d'
avoir vraiment une bonne compréhension de la façon dont votre modèle va fonctionner
quand il est réellement là et quand de nouvelles valeurs entrent dans qu'il n'est jamais vu avant. Très bien, donc un terme important à connaître pendant tout
le processus d'entraînement est quelque chose appelé hyperparamètres. Maintenant, les hyperparamètres sont essentiellement des paramètres
réglables de votre modèle ou de l'ensemble de votre processus, de l'ensemble de votre processus d'apprentissage. C' est donc votre modèle, comment vous décidez de créer les erreurs, et aussi comment vous décidez de faire l'apprentissage. Donc, un exemple serait, quelle vitesse votre algorithme apprend-il ? Maintenant, vous pouvez dire, Oh, eh bien, c'est facile. Rendons-le aussi vite que possible. Maintenant, le problème avec ceci
est, parfois, si votre modèle apprend trop vite, il peut effectivement fonctionner de pire en pire avec le temps parce qu'il essaie de trop corriger. Donc choisir la rapidité d'apprentissage est un équilibre assez important, car c'est l'équilibre entre prendre trop de temps pour atteindre la solution ou surcorriger et ne jamais devenir aussi bon que possible. Donc, les hyperparamètres sont des choses que votre modèle n'apprendra généralement pas. Bonjour, vous pouvez utiliser différents algorithmes d'apprentissage automatique pour apprendre les hyper paramètres de votre modèle. Mais il y a beaucoup de ces paramètres libres que vous choisissez. Un autre exemple est la complexité de mon modèle que nous allons être. Donc toutes ces choses qui sont en quelque sorte laissées à vous, et cela fait partie de cet art d'apprentissage automatique. Ce sont ces hyperparamètres que vous décidez en fin de compte, d'accord ? Comment devrait, tu sais, comme, quelles sont les choses qu'il devrait essayer ? Est-ce que cela doit être très compliqué ? Est-ce que cela doit être simple ? À quelle vitesse est-ce que je veux que cela apprenne ? Tout ce genre de choses ? Donc, une bonne chose à savoir sur les paramètres
hybrides est que vous pouvez faire cette chose appelée recherche de grille. Donc, plutôt que de simplement choisir des hyperparamètres et d'espérer que tout fonctionne bien, vous pouvez utiliser cette technique appelée recherche de grille, où vous pouvez donner une liste des hyperparamètres que vous voulez
essayer et juste exécuter les calculs plusieurs fois et exécuter la formation plusieurs fois. Ensuite, comparez les performances des modèles en fonction de ces différents hyperparamètres. Et puis vous pouvez voir, ok, quelle combinaison de tous ces paramètres libres est la meilleure. Cela me donne finalement une bonne performance de modèle. Et peut-être aussi que cela fait apprendre le modèle rapidement. Donc ce sont aussi quelques-unes des choses que vous pourriez avoir besoin de considérer est correct, combien de temps ai-je réellement disponible pour l'entraîner ? Et combien de performances ai-je vraiment besoin ? De quelle précision ai-je vraiment besoin ? Maintenant, la recherche de grille que vous pouvez faire soit en redéfinissant les paramètres que vous souhaitez utiliser. Donc vous pouvez dire, d'accord, je veux que vous essayiez toutes ces combinaisons différentes. Ou vous pouvez simplement laisser votre ordinateur choisir combinaisons
aléatoires et lui dire pendant combien de temps vous voulez qu'il s'exécute. Donc, le compromis ici est un, vous pouvez choisir l'art. Qu' est-ce que je veux explorer ? Et l'autre est, d'accord, combien de temps je veux le laisser courir jusqu'à ce que je puisse le passer et passer à l'étape suivante. Et enfin, quelque chose d'important à savoir est la validation croisée. Nous avons donc parlé de validation dans la partie précédente. Mais l'idée de la validation croisée est de
prendre vos données et de les diviser en sous-ensembles plus petits. Main, vous prenez tous ces sous-ensembles sauf un pour l'entraînement, puis vous prenez le dernier pour validation. De cette façon, vous pouvez former plusieurs modèles différents et, ou le même modèle plusieurs fois en utilisant différents ensembles de formation et de validation. Ensuite, vous pouvez avoir votre modèle avec différents types de données qui entrent dans et aussi différentes données invisibles. Et ce qui est cool pour la validation croisée,
c'est que vous comprenez non seulement comment mon modèle fonctionne-t-il en ce moment, mais aussi combien mon modèle varie-t-il ? Alors, quelle est la gamme de performances attendue que je peux attendre de ce modèle ?
3. Les termes essentiels du ML ont continué: Cette conférence, nous allons continuer à examiner les termes essentiels. Maintenant, à ce stade, vous demandez peut-être, Ok, cool. Je comprends donc comment fonctionne l'ensemble du processus de formation. Mais comment puis-je commencer par savoir quel modèle choisir ? Eh bien, la première chose à savoir, et c'est extrêmement important, c'est que chaque modèle est toujours juste une approximation de la réalité ou juste une approximation de ce que vous essayez de faire. Maintenant, c'est vrai pour essentiellement tout va de la physique. Même les modèles physiques ne sont que des approximations. Maintenant, l'objectif que vous essayez d'atteindre avec le modèle est que vous essayez d'imiter ou de comprendre la réalité aussi près que possible afin que les différences entre votre modèle dans réalité ne soient plus vraiment importantes parce qu'elles se comportent essentiellement de la même manière. Maintenant, chaque modèle est généralement livré avec une hypothèse. Et en fonction des hypothèses que vous avez concernant vos données, vous allez choisir un modèle spécifique. Par exemple, si vous supposez que vos données sont linéaires, vous pouvez choisir la régression linéaire. Si vous supposez que vos données sont plus compliquées, vous pouvez choisir une régression polynomiale ou des arbres de décision, ou vous pouvez même vouloir descendre les racines des réseaux
neuronaux en fonction de la complexité que vous souhaitez ajouter. Maintenant, si vous ne faites pas d'hypothèses sur vos données, alors il y a ce théorème cool qui s'appelle le théorème sans déjeuner gratuit. Et cela dit essentiellement qu'il est impossible pour vous de savoir quels modèles le bon choix. Ils sont tous aussi viables. Donc, en appliquant cela à l'apprentissage automatique, ce que
cela dit est que vous pouvez avoir une compréhension initiale de vos données, mais c'est toujours une très bonne idée de prendre plusieurs modèles différents qui,
selon vous , fonctionneront bien sur la tâche que vous essayer de réaliser et de former tous ces modèles. Tu sais, tu n'as pas besoin de les optimiser complètement. Mais juste sorte de choisir certains paramètres par défaut sont changés à peu près un peu, et former ces différents modèles et voir comment chacun d'eux fonctionne. Maintenant, ce que vous allez obtenir, parfois si vous avez de la chance, vous allez obtenir différents modèles et certains fonctionnent extrêmement mal et d'autres fonctionnent généralement bien. Donc, vous voulez choisir vos gagnants. Maintenant, s'ils fonctionnent tous aussi bien, alors à ce stade, vous êtes libre de choisir. Mais en général, vous essayez de réduire le nombre de modèles. Et donc souvent, vous ne venez pas simplement avec le modèle parce que c'est souvent presque, il est extrêmement difficile de savoir ce que le bon initial approche. Donc, la bonne chose à faire est de choisir plusieurs modèles, de les former tous, les
essayer tous, de voir ceux qui fonctionnent le mieux, puis de les utiliser, les
optimiser davantage, de voir comment ils les exécutent, puis de décider finalement d'un et aller complètement sur la voie de l' optimiser vraiment et de l'entraîner sur l' ensemble de
votre grand jeu de données ou tout ce que vous pouvez avoir. En parlant de jeux de données, passons en revue certains
des termes importants que vous rencontrerez lorsque vous parlez de jeux de données, en
particulier dans le domaine de l'apprentissage automatique. Le premier terme va être fonctionnalités. Maintenant, les fonctionnalités sont toutes les données que vous allez utiliser pour former votre algorithme. Donc, disons que vous construisez un algorithme pour prédire la hauteur d'un individu. Les caractéristiques peuvent être leur sexe, leur taille, leur profession, où ils vivent, leur activité quotidienne, quoi que ce soit, tout ce que
vous utilisez, vous voulez alimenter votre algorithme que votre algorithme utilisera pour essayer de prédire cette dernière façon. Est-ce que ça va être une fonctionnalité ? Maintenant, cela peut être soit des données brutes qui peuvent être formatées, soit elles peuvent être traitées. Ça n'a pas d'importance. C' est juste que ce sont les données que vous allez alimenter dans votre algorithme. Et ce sont les données que vous allez utiliser pour essayer de faire vos prédictions. Maintenant, si nous regardons à droite, c'est généralement comme ça que tout est un peu noté lorsque vous
parlez d'avoir plusieurs observations est ce qu'ils sont appelés, mais ce ne sont que plusieurs rangées de données. Ainsi, chacune de ces lignes dans cet exemple correspondrait à une personne différente. Et chaque fonctionnalité, qui est ce que nous avons sur le dessus, correspondrait aux différentes caractéristiques. Donc fonctionnalité un, par exemple, il pourrait être sexe, fonction deux pourrait être leur taille, et ainsi de suite. Et la fonctionnalité n pourrait être où ils peuvent vivre. Maintenant, l'observation serait la personne numéro 1, observation 2 serait la personne numéro 2, et ainsi de suite jusqu'à ce que vous descendiez à la personne numéro m, qui est le nombre d'observations que vous avez. Et comme vous pouvez le voir, cela est très souvent indiqué par juste le capital X. Et X contient la matrice. Chaque ligne contient une observation et chaque colonne correspond à une entité spécifique. Maintenant, l'autre chose qui est important à savoir sont les cibles, et celles-ci sont souvent désignées par y minuscules. Maintenant, la cible est votre valeur de référence que votre algorithme essaie d'apprendre. Dans cet exemple, nos cibles ne seraient que le poids final. Et nous pouvons voir que nous n'avons pas plusieurs colonnes, nous avons juste une colonne, mais nous avons toujours le même nombre d'observations. Et donc pour chaque observation, qui dans ce cas serait juste une personne, nous avons dans notre x et nos caractéristiques, toutes les fonctionnalités pertinentes. Et dans notre y, dans nos cibles, ce serait juste le poids. Donc y, y1 serait le poids de la personne une, Y2 serait le poids de la personne 2, et ainsi de suite. Maintenant, il y a aussi des termes importants à connaître sur les modèles d'apprentissage automatique. Le premier de ceci est appelé un biais. Maintenant, ça va être
différent d'un autre type de biais que nous allons apprendre. Mais l'idée d'un biais dans les modèles d'apprentissage automatique est juste de fournir un décalage, et c'est aussi connu sous le nom d'interception. Et la façon la plus simple de penser à cela est si vous pensez juste à une ligne droite ici biais ou si votre interception est de déplacer cette ligne de haut en bas, en passant autour de cette interception Y. L' autre chose que vous avez, nos poids de fonction. Donc, dans ce vecteur, nous stockons l'importance de chaque fonction. Et finalement, si vous avez plusieurs fonctionnalités, votre algorithme va essayer d'apprendre ces fonctionnalités en fonction de la formule qu'il utilise, quel que soit l'algorithme qu'il utilise. Et il va attribuer des poids à vos entités. Ça va attribuer une importance relative. Et donc ce que nous avons, c'est que chaque fonctionnalité a un poids spécifique qui leur est associé. Enfin, nous avons également le vecteur de paramètres. Maintenant, le vecteur de paramètre n'est qu'une combinaison
du biais et des poids d'entité jusqu'à ce qu'un vecteur complet m. Et vous le faites souvent simplement parce qu'il facilite l'écriture afin que vous ayez un vecteur qui contient à la fois votre décalage ou votre interception ou votre biais, quoi que vous vouliez, appelez-le, ainsi que tous les poids de vos entités. Donc on peut voir si on y retourne, on a nos caractéristiques ici. Et quand nous allons de l'avant à nouveau, nous avons pris un poids pour chaque fonction. Et c'est finalement ce que nos algorithmes vont vouloir apprendre. Et certains algorithmes auront plusieurs ensembles de poids d'entités. Et certains algorithmes, nous allons juste utiliser un seul ensemble de poids de fonction avec un biais. Et le moyen le plus simple, bien sûr, de représenter cela est d'utiliser le vecteur de paramètres, car cela vous permet de tout regrouper, qui le rend juste un peu plus propre.
4. Résoudre les termes essentiels: Maintenant, vous vous demandez peut-être, quelles sont les différentes approches que je peux adopter pour créer un algorithme ou comment
puis-je m'assurer que mon modèle reste à jour ? En général, lorsque vous vous entraînez, il y a deux approches différentes que vous pouvez suivre. Maintenant, le premier s'appelle l'apprentissage par lots et le second s'appelle l'apprentissage en ligne. La grande différence entre les deux, c'est que l'apprentissage par lots. Et vous pouvez voir que aussi sur l'image à droite est que vous entraînez votre modèle à l'avance. Vous avez donc des lots de données qui entrent. Donc, des morceaux de données sur tous ces enfants n'étaient pas des sous-ensembles plus petits ou ils peuvent être énormes. Les lots sont des ensembles de données sur lesquels vous entraînez votre modèle. Et fondamentalement chaque ligne verticale de rêve que vous voyez il y a un nouveau modèle en cours de création. Ainsi, vous entraînez votre modèle plusieurs fois et vous continuez à y apporter des améliorations. Et à un moment donné, vous décidez que ne le sont pas, il est temps de très bien performer. Mettons-le à disposition, mettons-le en production, ou mettons-le en direct ou comme tu veux l'appeler. Et puis vous avez des données en direct qui arrivent. Mais à ce stade, votre modèle ne change plus. Votre modèle a été réparé à l'avance. Maintenant, les données entrent et s'ajustent, les sorties, sa prédiction ou tout ce que le modèle est censé faire. Apprentissage en ligne, d'autre part, généralement vous commencez aussi avec un baccalauréat en lui. Donc, vous voulez l'entraîner d'abord pour qu'il fonctionne bien à l'avance. Mais l'option avec l'apprentissage en ligne est que vous pouvez continuer à l'entraîner au fur et à mesure que de nouvelles données arrivent. Maintenant, cela semble vraiment sympa, mais bien sûr, il y a aussi des complications qui viennent avec. Par exemple, lorsque de nouvelles données arrivent,
comment savez-vous quelle est la bonne décision ou quelle est la bonne réponse ? Si la bonne réponse ne vient pas avec. Donc, si vous n'avez pas une bonne réponse évidente qui vient avec votre système quand il est en ligne et qu'il en est un, cela fonctionne simplement dans la performance. Vous pouvez rencontrer certains problèmes parce que vous allez juste
avoir à deviner la réponse ou vous allez devoir trouver une autre solution intelligente pour trouver comment évaluer la bonne réponse et ce que vous devriez utiliser pour former ça. Le fait est que si vous avez ces réponses ou si votre jeu de données change avec le temps, l'apprentissage
en ligne peut être vraiment agréable parce que votre modèle va s'
adapter au fur et à mesure que le type de données évolue avec le temps. Donc, disons que vous créez un produit et que vous n'avez que quelques milliers d'utilisateurs au début. Et vous avez votre modèle en ligne et vous avez une bonne compréhension de la façon d' évaluer ses performances et comment faire un changement avec le temps à mesure que de nouveaux utilisateurs arrivent, font un tas de choses que votre algorithme peut développer ou que votre modèle peut développer avec ces utilisateurs. Ainsi, au fur et à mesure que
votre produit grandit, vos modèles vont également croître et il va changer. Et vous pouvez voir ici tous ces petites lignes verticales vertes est également en direct, est fondamentalement de nouvelles versions de votre modèle. Maintenant, il est également important ici, ou pour ces deux cas, d'évaluer le rendement sur une période plus longue. Donc, vous voulez revenir au moins quelques
mois après l' avoir déployé pour voir comment les choses
fonctionnent maintenant Pour le Bachelor au cas où cela serait
important parce que votre modèle sera probablement obsolète à un moment donné. Et donc il se peut qu'il ne soit plus performant aussi bien
que, comme initialement, simplement parce que les choses ont changé. Pour le cas d'apprentissage en ligne, il se peut que votre modèle aille dans sa propre direction. Et à un moment donné, c'est juste,
c'est, il n'a pas appris correctement et il est parti dans une mauvaise direction, et il ne fonctionne plus aussi bien que vous le souhaitez. Et donc à ce stade, vous devez arrêter et vous devez ensuite revenir à une version antérieure. Ou vous voulez le recycler sur des données plus récentes, ou vous avez juste besoin de les mettre à jour. Donc, dans ces deux cas, vous ne voulez pas simplement les mettre en ligne et les laisser là. Le cas d'apprentissage par lots, il se peut que le type de données mises à jour et votre modèle devienne démodé. Alors que pour le cas d'apprentissage en ligne, le modèle peut changer avec les données sur l'endroit où votre modèle peut commencer à aller dans la mauvaise direction. Maintenant, à ce stade est également important de parler des données et de l'efficacité des données. Et il est important de noter, tout d'abord, qu'un plus grand nombre de données signifie généralement de meilleures performances. Et avec suffisamment de données, même les modèles simples peuvent très bien fonctionner sur des tâches complexes. Donc, si vous avez des tonnes et des tonnes de données, à un moment donné, vous ne voudrez peut-être pas passer autant de temps à réfléchir à, ok, quel algorithme exactement. Et encore une fois, est-ce que je vais utiliser ? Vous allez vouloir aller avec celui qui a généralement effectué petite tâche. Et vous allez vouloir vous concentrer davantage sur, ok, quel modèle peut apprendre rapidement. Parce que lorsque vous avez des tonnes et des tonnes de données, ce que cette efficacité de Theta signifie fondamentalement, c'est que, eh bien, plusieurs algorithmes peuvent fonctionner tout aussi bien. Et ça va devenir important. À quelle vitesse pouvez-vous obtenir un modèle pour bien fonctionner ? Alors, comment puis-je gagner du temps avec l'entraînement pour que je puisse mettre mon modèle en place plus rapidement ou que je puisse y apporter des améliorations plus rapides. Maintenant, une autre chose importante à savoir sur les données ou à
penser lors de la création d'un modèle et de la tentative de modélisation des données est la sous-adéquation. Maintenant, sous ajustement est lorsque votre modèle est trop simple pour comprendre correctement les données. Et cela peut aussi être appelé biais. Maintenant, sous ajustement et biais sont les deux variations sont des formes de sursimplicité. Donc, ce que vous avez dans ce cas, c'est que
vous supposez que quelque chose est beaucoup plus simple qu'il ne l'est en fait. Prenons donc un exemple. Le marché boursier, qui est l'une des choses
les plus compliquées et il y a tellement de choses qui s'y nourrissent. Si vous essayez de prédire le marché boursier à l'aide d'un modèle linéaire simple, il ne fonctionnera pas particulièrement bien. Et c'est parce que le marché boursier n'est pas quelque chose qui est si simple qu'il peut être compris simplement en utilisant un modèle linéaire. Et si vous essayez d'aller dans cette voie, vous allez très mal en forme ou vous allez avoir un modèle fortement mal adapté parce que vous supposez tellement de simplicité et le marché boursier est extrêmement compliqué. Une autre forme que la simplicité peut être introduite dans votre modèle est par la régularisation. Maintenant, la régularisation fait partie de la fonction de perte ou la fonction de coût va être quelque chose que nous allons examiner plus loin, dans les conférences ultérieures. Mais en fin de compte ce qu'il
est et très court, c'est que vous pénalisez le modèle et que vous essayez de le
rendre aussi simple que possible que vous essayez de limiter sa flexibilité. Maintenant, d'un autre côté, vous pouvez avoir un surajustement ou la variance va aussi être un peu, ils vont dans la même direction. Et c'est alors que votre modèle est trop complexe ou qu'il a trop de liberté et qu'il trouve des choses qui ne sont pas là. Donc, si votre modèle est suradapté, cela signifie
qu'il a trouvé des modèles qui n'existent pas réellement. De même, lorsque vous avez plus de variance, cela signifie que votre modèle devient extrêmement complexe. Et il a trop de liberté. Et parce qu'il a trop de liberté, il ne fonctionne plus bien parce qu'il se concentre sur des choses qui ne sont pas importantes. Et c'est trouver ces choses parce que tu lui donnes tellement de liberté. Et le surmontage ou les variantes peuvent provenir si vous utilisez des modèles extrêmement compliqués. Ainsi, par exemple, si vous décidez d'aller avec comme des arbres de décision profonds sont des fonctions polynômes élevées ou des réseaux neuronaux profonds. Et vous n'essayez pas de restreindre leur liberté si vous les laissez fonctionner librement, il est probable qu'ils vont surdimensionner vos données parce qu'ils vont aller si profondément dedans et ils vont penser qu'ils ont trouvé quelque chose d'extrêmement intéressant, extrêmement complexe. Et ce ne sera probablement pas vrai. Et donc l'idée de surajustement et dans la même région, l'idée de variance est la complexité d'un modèle. Et si souvent vous voulez penser à,
ok, quel est mon parti pris et quelle est ma variance ? Quels sont les échanges ? Essentiellement, l'eau est l'une des simplifications et quelles sont les complexités ? Et comment puis-je faire mon modèle que ce n'est ni trop simple, qu'il ne trouve pas de choses importantes, ni qu'il est trop complexe, qu'il a tellement de liberté qu'il trouve des choses qui ne sont même pas là. Donc, si vous regardez sur le graphique à gauche, par exemple, l' un des jeux de données de test que vous avez à partir d'une bibliothèque appelée SKLearn, qui est une bibliothèque d'apprentissage automatique pour Python. C' est l'un de ces jeux de données de test pour le jeu de données iris en particulier. Et ce que nous avons ici est juste un arbre de décision simple, qui apprendra également dans les conférences ultérieures. Et la chose importante à noter ici est que nous avons trois classes différentes, que vous pouvez voir pour les trois différents types de points colorés. Et nous avons aussi trois identifications différentes que notre modèle fabrique, que vous pouvez voir avec les trois couleurs différentes. Donc nous avons ce violet, ce rose, et ce jaune. Et vous pouvez voir dans le jaune, il y a une série. Et la série de rose ne frappe qu'un point jaune. Et même si ces données sont assez simples, c'est déjà un exemple de surajustement où le modèle essaie devenir trop complexe et il introduit ces complexités, dans ce cas, une petite ligne étroite pour s'adapter un point de données dans une région qui est autrement dominée par une autre classe. Et même dans, mon point est ici que même pour ces jeux de données très simples, surajustement peut devenir un problème si vous laissez votre modèle trop de liberté, et si vous le laissez partir seul sans le contrôler. Alors, à quoi ressemble généralement le flux
de projet d'un projet d'apprentissage machine à impression automatique ? Eh bien, la première chose que vous allez devoir faire est de penser à l'objectif. Et avant de faire autre chose, vous voulez savoir quel est l'analyse de rentabilisation ou quel est le cas d'utilisation de mon modèle ? Quel est l'objectif réel que j'essaie d'atteindre ? Quelle est la précision que je vais chercher ? Et quelles sont les choses acceptables. Donc, l'eau erreurs acceptables et quelles sont les erreurs inacceptables ? Donc, par exemple, si vous êtes dans le domaine de la médecine, et si vous essayez de détecter un certain nu, si vous essayez d'aider les médecins à détecter une maladie ou à faire une sorte de pré-tests. Une erreur acceptable serait de détecter parfois quelque chose qui n'est pas là. Donc un faux positif. Donc, parfois, vous pouvez dire, oh, ceci, nous pouvons vouloir faire d'autres recherches parce que cette maladie peut être présente. Et s'il s'avère que ce n'est pas là, alors c'est bon parce que la personne ne sera pas difficile. Même si à court terme, il peut ne pas être si agréable de passer par cela et l'anxiété. Et à long terme, il a des effets corrects. Mais une erreur inacceptable parce que si votre modèle manque la maladie, donc s'il dit qu'il n'est pas là et qu'il n'y a pas d'autres tests qui sont effectués et que la personne finit par avoir ce diagnostic. Donc, dans ce cas, par exemple, vous allez vouloir vous concentrer sur cela. Vous ne faites pas d'erreurs lorsque vous manquez quelque chose qui est vraiment là parce que cela peut causer des dommages irréparables et que ce n'est pas une route que vous voulez descendre. Donc, dans ce cas, vous pouvez voir que parfois il ne s'agit pas seulement de combien vous obtenez bien, combien vous vous trompez ? Mais plus important encore, quelles sont les choses les plus importantes dont vous avez besoin pour réussir ? Et où est-ce que c'est normal de se tromper ? Et puis vous devez, parce que finalement vos modèles tropique ne sera jamais parfait. Donc, vous devez l'accorder pour vous assurer que les choses dont vous avez besoin pour obtenir le droit notre aussi souvent que possible. Et seulement après cela, voulez-vous alors vous assurer que les choses qui, vous savez,
vous devriez obtenir le droit sont aussi correctes EST aussi souvent que possible. Mais le plus important, il est si important qu'avant de faire quoi que ce soit d'autre, vous sachiez quel est le but ultime. Grognement. Donc tu vas aller dans la mauvaise direction. Allez-vous passer tellement de temps à essayer d'opter pour un niveau de précision extrêmement élevé qui n'est même pas nécessaire parce que c'est juste, vous savez, quelque chose qui est le but de votre entreprise. Maintenant, une fois que vous avez une idée de ce que vous voulez
vraiment faire et ce que vous devez réellement faire. Ensuite, il est temps de plonger en profondeur dans vos données. Vous voulez vous assurer de bien comprendre vos données. Et vous voulez également vous assurer de passer par toutes les étapes de préparation des données dont nous avons parlé plus tôt. Donc, une grande partie de cette première partie est en fait le processus de science des données. Donc comprendre les questions de l'entreprise, comprendre, d'accord, comment puis-je analyser mes données ? Quelles sont les différentes façons dont je peux contextualiser mes données ? Comment puis-je apporter plus d'informations grâce à ma connaissance de domaine dans les données que l'algorithme d'apprentissage automatique peut peut-être utiliser. La première partie sera donc très fortement basée sur les compétences en science des données. Maintenant, la deuxième partie est l'endroit où les trucs d'apprentissage automatique entrent vraiment en jeu. Ce qui est que vous allez alors vouloir créer votre scission de train et de
test ou votre validation de train et de test de scission. Et vous allez vouloir commencer la formation, valider et effectuer validations sur vos données sur ou sur votre modèle afin que vous puissiez les améliorer avec le temps. Bien sûr, vous voulez choisir plusieurs modèles au début et vous voulez choisir une fonction de perte ou une mesure d'erreur que vous pensez être bonne. Et puis lui, alors vous allez vouloir former ces différents modèles et nous allons vouloir les comparer, choisir quelques-uns des gagnants, optimiser ceux-ci. À ce stade, vous aurez également besoin de bons optimiseurs pour vous assurer que vos modèles apprennent le plus rapidement possible. Vous allez vouloir faire une recherche de grille avec validation croisée et juste itérer sur des lots de données d'entraînement. Et puis en fin de compte, vous voulez évaluer sur votre ensemble de test et vous voulez voir s'il y a des signes de sous-ajustement ou de surajustement. Et vous voulez aussi prendre cela à d'autres personnes, obtenir des commentaires d'eux. Voyez ce qu'ils pensent du processus, voyez s'ils ont d'autres données basées sur les performances du modèle ou sur les données que vous avez décidé de lui fournir, puis itérer à partir de là. Et une fois que vous vous sentez bien sur la performance de votre modèle, il est temps de le lancer pour le rendre disponible pour vous. Non. Mettez-le partout où il a besoin d'aller. Et même alors, vous voudrez toujours surveiller les performances de votre modèle. Et vous voulez, vous allez vouloir y revenir et voir
comment il se produit une semaine plus tard, un mois plus tard. Et en fin de compte, vous devrez également l'atteindre, sur de nouvelles données pour vous assurer que le modèle reste à jour.
5. Préparation de données: Bienvenue à la leçon sur les techniques de préparation des données. Préparer correctement vos données a des effets incroyables sur les performances de vos algorithmes d'apprentissage automatique et constitue une étape cruciale dans l'apprentissage automatique. Et ce n'est certainement pas quelque chose que vous devriez penser à sauter. C' est en fait l'une des parties les plus importantes pour s'assurer que vos algorithmes d'apprentissage machine sont correctement configurés. Alors regardons d'abord un exemple. Comment traiteriez-vous avec une distribution qui ressemble à la suivante. Donc, ce que nous avons ici, c'est juste une distribution de générateurs pour moi qui montre la répartition des revenus de n'importe quelle ville. Et sur l'axe y, vous avez les comptes ou pouvez aussi le regarder. Et comme le taux d'occurrence. Et sur le x vous avez le revenu et des dizaines de milliers de dollars. Donc, ce que vous voyez ici, c'est une ville avec une sorte de classe moyenne, mais bien sûr, elle a des gens dont le salaire est étendu à des taux très élevés. Et donc essentiellement ce que nous avons ici, c'est que nous avons une distribution biaisée ou quelque chose qui a une très longue queue. Nous avons une sorte de distribution normale que nous reconnaissons au centre. Et puis vers la droite, cette distribution continue en quelque sorte. Et cela a des effets significatifs sur notre
algorithme d'apprentissage automatique parce que l'échelle des données et devient extrêmement grande. Donc, vous pouvez voir que nous sommes en quelque sorte allés vers la droite et la droite et que notre compte diminue. Mais nous pouvons toujours rencontrer des valeurs à moins de portée plus élevée. Et cela peut en fait être des problèmes. Lorsque nous essayons de mettre ces données dans notre algorithme d'apprentissage automatique. Et il peut ne pas toujours le faire aussi bien que vous le voudrez. Et alors, comment abordons-nous des problèmes comme celui-ci ? Comment traitons-nous ces types de distributions ? Eh bien, une chose que vous pouvez faire est que vous pouvez prendre le journal des revenus et vous pouvez voir les effets ici. Ce qu'il fait, c'est plutôt que d'avoir une échelle d'environ 2,5 à 20, qui est ce que nous avions dans cette distribution. Ici, nous allons à environ un à 3.25 ou quelque chose comme ça. Nous avons donc considérablement réduit la portée des données dans notre distribution et la portée d' une partie importante des données et de notre distribution. Donc, plutôt que de passer d'environ huit fois, soit de 2,5 à 20, nous n'avons qu'un triple changement de un à trois. Et c'est extrêmement important pour notre algorithme d'apprentissage automatique car l'annonce doit maintenant se concentrer sur une plus petite gamme de données. Et une autre chose importante que nous faisons avec cette mise à l'échelle des journaux est nous disons que les nombres plus élevés sont moins différents les uns des autres. Donc, dans ce cas, la différence entre 2,55, donc 25000 et 55 mille est beaucoup plus grande que la différence entre disons, cent cinquante mille cent soixante-quinze mille. Et ça a aussi du sens, non ? Comme à un moment donné, cette différence n'a plus d'importance. C' est donc ce que nous disons physiquement lorsque nous utilisons la mise à l'échelle des journaux. Mais il a également des impacts significatifs pour un algorithme d'apprentissage automatique parce que c'est vraiment bon si nous pouvons réduire cette plage et ne pas la rendre si grande. Une autre chose que nous pouvons faire pour réduire la portée nos données est simplement de prendre un seuil. Donc nous pourrions dire, par exemple, que, vous savez, tout après 125 000 ou 12,5 dans ce cas est fondamentalement tout de même pour n'importe quel projet que nous envisageons. Comme, disons que notre projet est de voir quels types de personnes peuvent se permettre quelles maisons. Et nous disons, eh bien, tous ceux qui
courent 125 K ou plus peuvent essentiellement se permettre toutes les maisons que nous regardons. Et il n'y a plus de différence entre eux parce que ce revenu supplémentaire ne fait pas de différence pour notre projet. Donc on peut dire, ok, on va prendre un seuil difficile ici, qui est basé sur ce sens physique de la raison pour laquelle exactement on a choisi un 125 K parce qu'on a décidé à ce stade ça ne fait plus de différence. De cette façon, nous réduisons également ou varions de 2,5 à 20 à 2,5 à 12,5. Donc, nous n'avons pas une réduction aussi importante que nous le faisons dans la jurisprudence, mais c'est quand même une bonne réduction. Cependant, le problème dans ce cas est si nous examinons la distribution de cette distribution normale
que nous voyons autour de la marque de cinq ou de la marque de 50 k. Et j'ai mis une barre verte au-dessus pour que vous puissiez visualiser où se trouve la distribution. Et maintenant, si nous regardons vers la queue droite, nous voyons que les indicateurs verts sont environ la taille de la distribution que nous avons sur la gauche. Et nous pouvons voir que la queue est encore beaucoup plus longue qu'eux. Et donc notre distribution dans ce cas a toujours une queue extrêmement longue. Et donc ce seuil peut être une bonne chose à utiliser dans certains cas, mais en fait pour cet exemple spécifique, ce ne serait pas une bonne chose à utiliser juste parce que notre queue est encore si longue, même si nous avons utilisé un seuil et une sorte de coupure, une part importante allant de 12,5 à 20. C' est encore extrêmement long et en fait plus long. La partie principale de la distribution elle-même. Maintenant, quelque chose d'autre que vous pouvez faire est que vous pouvez prendre des centiles de vos données sur. Donc, vous prenez toutes les données que vous avez et vous les divisez en 100 groupes. Et puis vous pouvez prendre chacune de ces valeurs de revenu et la remplacer par le percentile. Et ce que vous obtenez d'ici est ce que vous pouvez voir à l'écran. Vous obtenez un 100 groupes répartis également et vous obtenez le score est compris entre 0 et un 100, que vous pouvez également mettre à l'échelle pour aller de 0 à un ou ce que vous voulez. Mais l'important ici est que vous avez une plage bien définie et qu'il n'y a pas de déséquilibre comme nous le voyons, surtout dans ce cas, où la queue s'étire si longtemps dans une direction et il y a
une sorte de décalage à la partie principale de leur distribution et à quelle distance les données s'en éloignent. Ce n'est pas quelque chose que nous voyons ici. Donc, maintenant que nous connaissons la mise à l'échelle, quelque chose d'autre dont nous devons parler est la préparation de l'entrée pour nos données. Dans ce cas, nous avons examiné une échelle qui va d'environ 2,5 à 20. Et si nous n'avons qu'une seule plage d'entrées et que nous faisons une partie de la préparation des données dont nous avons parlé précédemment, où nous avons essayé de les déplacer ou de les mettre à l'échelle pour réduire l'impact de la queue, cela peut être une bonne chose. Mais si nous avons plusieurs fonctionnalités différentes que nous utilisons
pour l' entrée et que leurs échelles sont significativement différentes, cela peut avoir des effets négatifs sur la performance de l'algorithme. Donc, les algorithmes, et généralement les algorithmes d'apprentissage automatique aiment avoir des nombres qui viennent dans des plages similaires. Par exemple, si vous avez ici des valeurs allant d'environ 2,5 à 20, ou environ un à 20, alors vous voulez vous assurer que vos autres valeurs sont également dans la plage comparable. Ainsi, par exemple, passer de cinq à 30 ou de un à 15 ou quelque chose comme ça. Vous ne voulez pas est une distribution qui va d' environ 0 à 20 et une autre qui va d'environ 0 à 100,
puis une distribution qui va de 50 à 500 mille. Les algorithmes d'apprentissage automatique ont parfois des
problèmes avec ces types de distribution. Et donc ce que vous voulez vraiment, c'est que l'échelle que vos entrées ont sont comparables les unes aux autres. Donc, ce dont nous parlons ici n'est pas de réduire l'effet de la queue. C' est ce que nous avons fait précédemment, mais en veillant à ce que vos entrées soient de taille
comparable les unes aux autres lorsque vous utilisez plusieurs entrées. Donc, ce que vous voulez faire ici, c'est essentiellement vous voulez mettre à l'échelle vos entités pour avoir une portée plus concrète ou une plage plus petite et plus définie. Et une façon de le faire est d'utiliser simplement quelque chose appelé min-max scaling. Donc, ce que vous faites est que vous prenez la valeur minimale et que vous prenez la valeur maximale et vous dites, ne sont pas un nombre qui est au minimum est 0. Et le nombre qui est au maximum est un. Et tout ce qui se trouve entre les deux, comme un nombre entre 01, qui dépend linéairement de l'endroit où il se trouve. Donc, si c'est à mi-chemin du maximum, sa valeur sera de 0,5. Maintenant, le problème est que nous pouvons encore avoir une distribution inégale des données. Nous pouvons donc voir que nous avons changé l'échelle en bas ici. Nous allons de 0 à 1 plutôt que de 2,5 à 20. Mais nous gardons toujours la queue. Et donc, dans ce cas, il est bien sûr toujours important qu'en plus de faire cette mise à l'échelle des fonctionnalités, nous faisons également une autre forme de préparation des données pour nous assurer de réduire les effets de cette queue. Cependant, c'est une bonne façon d'aborder avoir, avoir plusieurs fonctionnalités et les mettre sur la même gamme. Maintenant, bien sûr, un problème que vous pouvez également obtenir de ceci est si nous
avons la plupart de nos données dans la partie inférieure et nous avons des valeurs aberrantes. Ces valeurs aberrantes peuvent affecter fortement l'étendue de notre distribution. Donc, dans ce cas, nous pouvons voir que la plupart de nos données se situent autour du point 3, mais seulement quelques unes des valeurs aberrantes, qui est le 20 ici, c'est ce
qui le ramène jusqu'à un. Et donc, dans ce cas, nous avons toujours le problème que nous avons encore une gamme dominante plus petite dans notre distribution. Donc, la plupart des données se situent maintenant entre environ 0,1,4. Mais notre gamme va jusqu'à un seul à cause des effets de l'aberrant. Il est donc important de faire une partie de la mise à l'échelle ou de la préparation dont nous avons parlé plus tôt pour réduire les effets de ces valeurs aberrantes qui
devaient réduire les effets de la longue queue que nous voyons. Maintenant, une autre approche que vous pouvez adopter est quelque chose appelé la normalisation. Maintenant, ce que vous faites ici, plutôt que de définir une échelle définie comme nous le faisons dans eux et max cas, nous utilisons une échelle relative. Ainsi, nous trouvons la moyenne de toutes nos données et nous trouvons l'écart-type. Et nous appliquons une transformation à chaque point de données où nous prenons la valeur, nous soustrayons la moyenne, puis nous la divisons par l'écart-type. Et pour que nous puissions voir sur le graphique à gauche, nos données disposées vont maintenant d'environ un à quatre points négatifs. Mais ce n'est pas quelque chose qui est prédéfini. C' est juste que nous le réduisons en fonction de notre jeu de données et de la façon dont il est distribué. C' est donc une bonne façon de régulariser vos données parce que vous ne définissez pas une échelle définie et que vous laissez la distribution des données gouverner à quoi ressemble la nouvelle échelle. Mais c'est toujours utile car si vous le faites sur plusieurs fonctionnalités ou plusieurs entrées différentes, cela le ramènera à une échelle comparable. Et donc, plutôt que de définir une échelle absolue, comme nous le faisons pour le min-max, qui va de, par exemple, 0 à un, nous pouvons encore avoir des échelles variables qui sont encore comparables les
unes aux autres en utilisant la technique de normalisation.
6. Préparation des données s'est suivi: Dans cette conférence, nous allons continuer à examiner les techniques de préparation des données. Ok, donc quelque chose d'important à
savoir est un biais d'échantillonnage et d'échantillonnage. Parce qu'en fin de compte, lorsque vous formez un algorithme d'apprentissage automatique, vous choisissez les données que vous utilisez pour la formation et vous choisissez les données que vous utilisez pour les tests. Maintenant, il est important de savoir que parfois la distribution de vos données peut avoir un impact significatif sur la façon dont votre algorithme d'apprentissage automatique fonctionne sur votre formation ainsi que sur vos ensembles de tests. Donc, si nous regardons le graphique à droite, nous avons une répartition des groupes d'âge. Donc on va de 15 à 25 ans. C' est notre premier groupe, qui compte un peu plus de 30 participants. Ensuite, nous avons de 2006 à 59, qui en a presque 15, et puis nous avons le 60 plus, qui en a environ 20. Maintenant, une technique que vous pouvez faire est de prendre
au hasard des participants de ce groupe d'âge. Et si vous faites cela, vous ne pouvez pas imiter la distribution sous-jacente. Parfois, ce n'est pas une mauvaise chose, parfois ça va. Mais dans certains cas, quand il y a une, une fonctionnalité importante que vous voulez imiter et votre distribution. Parfois, ces caractéristiques importantes peuvent avoir des effets sur
la façon dont les sujets se comportent ou sur le résultat de quelque expérience que ce soit. Ainsi, par exemple, dans le cas du groupe d'âge, les différents âges peuvent avoir des opinions ou des points de vue différents, et donc leurs réponses aux questions
ou autres peuvent avoir un effet significatif sur le résultat. Et donc si nous faisons juste un échantillonnage aléatoire, alors ce que ces barres d'erreur montrent est une sorte d'écart type que nous pouvons attendre. Et donc nous pouvons voir que ce que nous avons dans la distribution réelle par rapport aux valeurs que nous pouvons obtenir si nous échantillonnons simplement aléatoirement. Il y a beaucoup de variantes là-dedans et il y a beaucoup d'incertitude. Et donc nous pouvons, ici par exemple, voir ça, d'accord, si nous avons notre train, qui est représenté en bleu, et notre ensemble d'essais qui a représenté en vert. Certains de ces groupes d'âge peuvent être sous-représentés. Dans ce cas, le groupe d'âge de 60 ans et plus est sous-représenté dans la formation et surreprésenté dans les tests. Maintenant, l'effet que cela a sur notre algorithme est que notre algorithme aura moins d'entrées de 60 plus. Et il devra évaluer plus bien que sur le 60 plus. Il peut donc dire que les pensées du groupe d'âge
de 60 ans et plus ne sont pas aussi importantes ou quelque chose comme ça. Ils ne sont pas aussi importants. Mais quand il est testé contre, il doit en fait évaluer beaucoup des pensées du groupe d'âge de 60 ans et plus. Et ce n'est pas bien préparé pour ça. Il y a une disproportion que la quantité de formation par rapport
aux autres groupes d'âge que nous avons faite dans la formation par rapport à la quantité de tests effectués. Et cela peut avoir des conséquences
importantes sur les performances de votre algorithme d'apprentissage automatique. Donc, ce que vous pouvez faire est quelque chose appelé échantillonnage stratifié, où vous essayez d'imiter la distribution sous-jacente. Et donc nous pouvons voir dans la formation et les tests, qui sont à nouveau montrés en bleu et en vert, que les distributions sont maintenant beaucoup plus similaires. Maintenant, ce ne sera pas toujours un match parfait. Et dans certains cas, l'échantillon aléatoire peut ressembler à un échantillon stratifié, comme nous l'avons fait. C' est l'échantillon stratifié que nous voyons ici. Parfois, lorsque vous choisissez des groupes au hasard, cela ressemblera à ceci, mais vous n'êtes pas garanti. Alors qu'avec un échantillon stratifié, vous vous assurez que ces distributions ressemblent tant dans l'entraînement que dans le cas de test. De cette façon, vous pouvez vous assurer que ces distributions sous-jacentes sont conservées les mêmes. ainsi que ces données, estainsi que ces données,
que la façon dont ces données sont allouées à votre formation et vos jeux de tests est conservée de la même manière afin que vous ne jouiez pas avec certaines de ces fonctionnalités importantes. Maintenant, dans certains cas, ce que vous voulez vraiment faire, c'est que vous voulez avoir une surreprésentation d'un échantillon. Parfois, vous ne voulez pas stratus, vous voulez, vous ne voulez pas stratifier votre échantillon. Vous ne voulez pas une distribution uniforme car cela peut avoir des effets négatifs sur votre algorithme d'apprentissage automatique. Par exemple, prenons un filtre anti-spam qui essayait de détecter si un e-mail est du spam ou non. Et disons que la plupart des données que nous avons pas de spam. Maintenant, si vous faites un échantillonnage stratifié ici, ce que votre algorithme d'apprentissage automatique peut apprendre, c'est que s'il classifie tout comme non du spam, ça va très bien se passer. Si la probabilité que l'e-mail soit un spam est assez faible, il va faire un bon travail en disant que rien n'est du spam, mais ce n'est pas du tout ce que vous voulez. Ce genre de défait tout le but. Donc quelque chose que vous pouvez faire ici est que vous pouvez suréchantillonner la quantité de spam. Donc, plutôt que d'avoir très peu de spam, vous pouvez créer vos ensembles de sorte que vous suréchantillonnez la quantité de spam. Et de cette façon, votre algorithme ne va pas apprendre que le spam est sans importance parce qu'il apparaît à peu près autant que le contenu non-spam. Il doit donc apprendre à l'identifier. Et puis quand vous revenez au cas de test ou au cas en ligne, le cas en direct, vous pouvez toujours pas recevoir autant de spam, mais maintenant il peut encore, beaucoup mieux identifier le spam parce qu'il a dû le faire pendant le processus de formation. Donc, parfois quand vous avez des cas extrêmement bas. Événements, vous pouvez penser à suréchantillonner ces événements, y compris plus de ces événements, alors vous pouvez réellement vous attendre lorsque votre algorithme direct pour vous assurer que votre algorithme apprend,
facturer des parties importantes et il apprend à distinguer même les événements rares qu'il apprend à les identifier. Donc, même si l'échantillonnage stratifié peut sembler une bonne idée au départ, parfois vous voulez vous assurer que la distribution des données, n'est pas la même chose parce que cela aura en fait beaucoup plus de implications pour la performance de votre algorithme. D' accord, la prochaine chose dont je veux parler est comment traitez-vous les données non numériques ? Nous allons donc examiner les premiers types de données, qui vont être des données catégoriques. Donc, vous avez différentes catégories. Encore une fois, dans les données catégoriques, nous pouvons diviser cela en différentes choses. L' un de ces numéros est les numéros de type ordinal, ce que nous pouvons faire ici est, par
exemple, nous avons le système d'évaluation des étoiles. On a une étoile, deux étoiles, trois étoiles, quatre étoiles et cinq étoiles. Et ce que nous pouvons faire, c'est que nous pouvons faire, nous pouvons traiter ces chiffres ordinairement. Et nous pouvons dire, d'accord, nous allons dire qu'une étoile, nous allons donner la valeur numérique d'un au sras, valeur
numérique de 2, trois histoires,
trois, quatre étoiles pour cinq étoiles, cinq. Donc, ce que nous devons faire pour les données catégoriques, c'est que nous devons les transformer en valeur numérique. Maintenant, faire ce type de transformation en nombres séquentiels est bon. Lorsque les valeurs sous-jacentes ont un
distingué, distingué est allé entre eux s'il ya une hiérarchie, donc deux étoiles est meilleur qu'une étoile, quatre étoiles est meilleur qu'un trois étoiles, et cinq étoiles est le meilleur. C' est donc un bon moyen de traiter les données qui ont un ordre sous-jacent. Un autre exemple est si vous avez des évaluations qui disent
généralement que c'est mauvais, c'est bon, c'est bon, génial, que vous pouvez à nouveau attribuer des valeurs numériques qui augmentent. Donc, vous allez 12345 et les cinq sont en fait meilleurs que les quatre. L' utilisation de ce type de transformation est donc bonne lorsqu'il y a un ordre clair dans vos données. Mais sinon cela peut réellement causer des problèmes. Donc, si vous faites cela, par exemple, si vous avez des catégories d'étudiants, anciens élèves, d'enseignants et de parents, vous ne pouvez pas vraiment attribuer 1234 parce que de cette façon votre algorithme peut apprendre qu'un étudiant est inférieur à un ancien, qui est inférieur à celui d'un enseignant, qui est inférieur à celui d'un parent. Et vous ne pouvez pas vraiment comparer les catégories comme ça parce que ce sont catégories
différentes et qu'elles peuvent connaître la même chose sous des perspectives différentes. Donc, ce que vous pouvez faire dans ce cas, quand il n'y a pas d'ordre clair entre ces différentes catégories, vous pouvez faire quelque chose appelé encodage one-hot. Et c'est ce que nous voyons sur la table à gauche, où pour chacune des catégories, vous créez votre propre colonne. Et chaque fois que cette valeur est présente, cette valeur obtient alors une. Et donc nous pouvons voir ici, si c'est un étudiant, la colonne étudiante va en avoir une et toutes les autres colonnes vont avoir un 0 si c'est un ancien, toutes les autres colonnes vont avoir un 0 sauf pour la colonne des anciens qui en a un. Si c'est un enseignant, la colonne
enseignant va en avoir une et tout le reste sera 0. Et si c'est parent, le parent va arriver un et tout le reste sera 0. Et donc ce que vous pouvez faire ici, c'est que vous pouvez prendre des catégories et vous pouvez les transformer à la place de cet encodeur à chaud, qui permet d'entendre l'algorithme mieux traiter ces types catégoriques. Maintenant, c'est généralement bon à faire si vous avez un petit nombre de catégories, donc environ 10. Mais vous ne voulez pas le faire si vous avez environ 100 catégories, car cela gonfle simplement la quantité d'entrée que vous avez et votre algorithme peut ne pas traiter très bien car il doit apprendre tous ces différents facteurs d'entrée. Donc une autre façon d'y arriver est d'utiliser quelque chose appelé « embeddings ». Maintenant, c'est un très souvent utilisé pour le texte, c'est pourquoi nous allons également le regarder à partir de la partie texte des données non numériques. Mais l'intégration est quelque chose que vous pouvez faire pour les catégories ainsi que le texte. Et l'idée ici est que vous prenez une valeur et que vous la
transformez en un ensemble de valeurs numériques. Donc, par exemple, ce que nous pouvons faire est que nous pouvons prendre le mot pomme de terre et nous pouvons utiliser une intégration 3D. Et donc chaque mot ou chaque catégorie se voit attribuer trois numéros. Maintenant, ces nombres peuvent initialement, initialement être randomisés, eh bien, seront initialement définis aléatoirement. Mais ces catégories sont, ces incorporations sont en fait quelque chose que vous pouvez apprendre. Et la dimension d'intégration est en fait un hyperparamètre de votre modèle maintenant aussi. Mais un exemple de ceci est que si nous prenons les mots nuages, soleil, pluie et os de pluie, alors si nous apprenons que ces incorporations sont, les incorporations peuvent ressembler à ce que nous voyons à gauche. Et vous pouvez voir que pour avoir un arc-en-ciel, ce que vous avez c'est, eh bien, vous allez au Soleil, vous soustrayez les nuages, vous ajoutez la pluie, et en gros vous avez un arc-en-ciel. Donc vous pouvez le faire, ou, désolé, Vous allez dans les nuages, ajoutez la pluie, et vous ajoutez le soleil, et vous avez un arc-en-ciel ici. Et donc vous pouvez voir qu'il y a un, il y a une relation entre les nombres que nous assignons à chacun des mots. Et donc nous sommes des catégories
apparentées ou des mots connexes vont réellement être commencé à regrouper ensemble. Et des mots différents vont être écartés. intégrations sont donc extrêmement utiles car elles vous permettent de prendre un grand nombre de mots ou un grand nombre de catégories et de
les réduire à un ensemble beaucoup plus bas de dimensions. Ainsi, par exemple, si nous faisons des intégrations 3D, ce qui peut prendre une tonne de mots et nous pouvons simplement les réduire à trois valeurs numériques différentes plutôt que d'avoir, disons, un encodeur 100 one-hot. Donc un 100 colonnes différentes. On en a juste trois. Et c'est beaucoup mieux pour notre algorithme car il peut alors beaucoup mieux gérer ces intégrations. Et il peut savoir quelles valeurs sont similaires ainsi que quelles valeurs sont différentes. Et il peut les traiter de manière plus appropriée et il n'a pas besoin d'
apprendre ou n'a pas à traiter toutes ces différentes catégories.
7. Algorithmes de classification: Dans cette conférence, nous allons en apprendre davantage sur les algorithmes de classification. Alors tout d'abord, qu'est-ce qu'ils sont ? Ce sont essentiellement des algorithmes qui vous permettent de prédire des catégories à partir de vos données. Maintenant, il existe également des algorithmes de classification qui vous permettent d'identifier des groupes dans vos données. Alors faisons cela avec un exemple plus pratique en utilisant le graphique sur la droite. Ce que nous avons n'est qu'une simple distribution de temps. Ainsi, chaque point de données représente, par
exemple, une personne sur l'axe des x, nous avons le temps passé au travail avec le droit étant plus de temps, la gauche étant moins de temps. Et sur l'axe des y, nous avons le temps passé avec la famille, encore une fois en haut et en bas étant moins. Maintenant, disons aussi que nous savons que ce groupe est divisé en deux catégories différentes. Nous avons le groupe a, qui est celui en haut à gauche, ce
qui est plus de temps avec la famille et moins au travail. Et on a celui en bas à droite. Maintenant, ces groupes ne sont pas seulement identifiés par la façon dont ils agissent socialement,
mais peut-être que cela est aussi lié à la façon dont les gens achètent. Vous avez deux types de consommateurs différents, qui viennent juste de tomber dans cette catégorie de certains
vont plus de temps avec la famille et d'autres vont passer plus de temps au travail. Maintenant, regardons aussi le point vert au milieu. C' est une nouvelle personne qui est entrée et nous voulons être en mesure de prédire quelle catégorie ils vont tomber afin que nous sachions la bonne façon de les aborder du point de vue, par
exemple, du point de vue du marketing, genre des catalogues serait peut-être intéressé par ? Quel type de comportement d'achat pouvons-nous attendre d' eux et comment pouvons-nous ajuster leur expérience en conséquence ? Nous voulons donc savoir dans quel groupe de personnes ils s'intègrent. Et donc une excellente façon de le faire est d'utiliser des algorithmes de classification, qui vous permettront d'assigner un groupe ou de prédire un groupe plutôt que cette nouvelle personne va tomber dans. Donc, lorsque vous utilisez des algorithmes de classification, eh bien, vous continuez à les utiliser lorsque vous êtes plus intéressé par un attribut plutôt qu'une valeur numérique exacte. Par exemple, disons que nous avons deux catégories de
chats et de chiens sont tout simplement des chats et pas des casquettes. Et maintenant, nous avons une autre image dans ce cas, et nous voulons attribuer cette image à une catégorie que nous voulons classer cette image. Est-ce que cette image d'un chat ou n'est-ce pas un chat ? C' est donc un autre exemple très simple de ce qu'un algorithme de classification peut faire. Il nous allons assigner cette image dans les classes déjà définies de chat. On n'est pas un chat. Très bien, alors allons entrer un peu plus en détail dans certains des algorithmes et voir en fait quelques exemples de ces algorithmes. Nous allons utiliser le jeu de données Iris inclus dans SKLearn. Et c'est essentiellement en regardant trois types de fleurs différents, qui est ce que nous avons à gauche ici. Chacune de ces fleurs est prise à partir de la page Wikipédia pour le jeu de données iris. Donc, vous pouvez aussi les regarder là-bas et les trouver là-bas. Et essentiellement, il y a deux formes. D' abord deux formes générales de la façon dont nous pouvons aborder la classification. L' un d'eux est supervisé, l'autre n'est pas supervisé. La grande différence ici, bien
sûr, étant que supervisé, nous avons déjà connu des cibles pour l'entraînement, alors que sans supervision, nous ne savons pas vraiment quelle est la bonne solution. Maintenant, une autre partie des algorithmes de classification sont des algorithmes classification à classe
unique ou à classe multiple. Donc être capable de prédire une seule classe ou être capable de prédire plusieurs classes. Et nous allons examiner chacun de ces cas et un peu plus de détails maintenant. Donc, tout d'abord, nous allons examiner les algorithmes supervisés par une classe unique. Maintenant, ce que nous avons à gauche ici, ce n'est que deux des quatre entités tracées à partir du jeu de données Iris. Donc, à gauche, nous avons la largeur des pétales en centimètres et sur l'axe des y plutôt, et sur l'axe des x pour ces deux graphiques, nous avons la longueur des pétales. Maintenant, nous avons également divisé nos données en deux catégories. Nous avons le pas VR, rig Nika. Je ne sais pas comment prononcer ça, mais c'est une des fleurs. Et puis vous avez l'autre catégorie qui est ce type de fleur. Donc, fondamentalement, nous pouvons voir, et la façon dont j'ai étiqueté ces données est tout en noir n'est pas cette fleur, et tout en vert est cette fleur. Maintenant, ce que vous voyez dans les couleurs d'arrière-plan est deux algorithmes de classification différents. L' un d'eux est un classificateur de descente de gradient stochastique, le SGD, utilisant une machine vectorielle de support linéaire. Encore une fois, ce ne sont que des noms pour les classificateurs. Donc, si c'est, ça semble déroutant, il
suffit de le considérer comme un nom pour quelque chose. Et l'autre chose est un classificateur de régression logistique. La grande différence ici, c'est la zone bleue. Représente où l'algorithme d'apprentissage automatique dit, ce n'est pas ce type de fleur. Et la zone rouge dit que c'est ce type de fleur. Et ce que nous avons au milieu, c'est la limite de décision. Essentiellement si vous franchissez cette ligne au milieu de ce genre de ligne verte squiggly. Si vous allez à gauche, par exemple, pour l'affaire SGD, alors vous allez dans la catégorie pas cette fleur. Et si vous allez en haut à droite et que vous allez dans cette catégorie de fleurs. Maintenant, vous pouvez voir d'ailleurs, que j'ai décidé d'afficher les données. Cet algorithme n'est bien sûr pas un 100 pour cent précis. Nous avons des fleurs de noeuds dans cette catégorie qui apparaissent là où l'algorithme prédit cela, c'est en fait ce type de fleur. Encore une fois, le noir représente ce que la fleur est réellement, et les couleurs en arrière-plan représentent ce que l'algorithme prédit un peu. Donc le noir n'est pas cette fleur, vert est cette fleur, et le bleu est l'algorithme prédit ce n'est pas que la fleur et le
rouge est l'algorithme prédit que c'est ce type de fleur. Maintenant, une chose intéressante à noter ici est que si nous comparons le graphique haut et le graphique bas, nous pouvons voir que les deux algorithmes différents que nous utilisons ici ont des limites de décision différentes. Non seulement ils sont situés à des positions différentes, mais ils sont également à des angles différents. Dans ce cas, les deux séparent presque linéairement les données. Donc, ce qu'ils font, c'est qu'ils ne font que dessiner une ligne droite entre les données qui les séparent. Mais nous pouvons voir que la descente en gradient stochastique, qui n'utilise que la machine à vecteur de support linéaire à ce point, a plus d'une séparation diagonale, alors que la régression logistique est plus une séparation horizontale. Regardons donc chacun de ces algorithmes un peu plus en détail. Dans le cas de la régression logistique, ce que notre algorithme essaie de faire est d'essayer d'optimiser les équations inférieures, essayant de trouver la meilleure probabilité. Et il utilise l'équation logistique pour eux. Et donc nous voyons que nous avons les caractéristiques comme x, nous avons y comme prédiction, et nous avons notre interception et nos coefficients ou nos poids, comme nous les avons présentés plus tôt. Et donc ce que nous pouvons voir, ce que nous obtenons d'ici sur le côté gauche, c'est que nous avons une probabilité si à cette largeur de pétale et
cette longueur de pétale, c'est, c'est cette fleur ou non ? Quelle est la probabilité que compte tenu de ces deux valeurs, c'est la fleur. Et donc nous pouvons voir qu'à faible largeur PDL et fondamentalement n'importe quelle longueur de pédale, la probabilité est très faible. Et si on y retourne et qu'on regarde ça, c'est exactement ce qu'on voit à faible largeur de pédale. Peu importe la longueur ou la probabilité de la pédale est faible. qui signifie que le classificateur classe ceci comme pas ce type de plante. Alors que lorsque nous allons à la largeur PDL élevée pour fondamentalement n'importe quelle longueur ou probabilité de pédale est élevée, ce qui signifie que notre classificateur classe maintenant cette région comme ce planificateur. Donc nous pouvons voir que tout ce qui est en rouge a, fondamentalement notre algorithme dit que c'est une forte probabilité que, qui a cette plante. Et donc je vais assigner ces valeurs ici et dire quoi que ce soit ici est cette plante. Alors que dans la région bleue, nous avons une faible probabilité que quelque chose dans cette région soit notre plante. C' est ce que nous avons dans le graphique du bas pour la régression logistique. Si nous regardons le SVM linéaire ou le classificateur SGD,
le classificateur de descente de gradient stochastique ici. Ce que fait la SVM linéaire, c'est qu'elle essaie trouver un hyperplan qui sépare linéairement les données. Maintenant qu'est un hyperplan,
c'est fondamentalement juste une ligne, dans ce cas, dans le cas bidimensionnel ici. Et si c'est en trois dimensions, c'est une surface. Et si c'est quatre dimensions, c'est une sorte de zone interne, mais il essaie juste de trouver quelque chose que je peux dessiner qui sépare les données. Et c'est exactement ce qu'on voit ici. Ce que l'algorithme essaie de faire, c'est qu'il essaie trouver une bonne ligne qui sépare les données. Mais aussi ce qu'il fait, c'est qu'il essaie de garder la distance entre les points de données et la ligne aussi grande que possible. Et donc les algorithmes prennent différentes approches du problème. Et donc nous pouvons aussi voir qu'ils sortent avec des résultats différents. Et donc avec la régression logistique, nous pouvons voir que nous avons une probabilité pour chaque valeur est attribué une probabilité entre 0 et 1 d'appartenance ou non à ce type de classe. Alors que pour le cas de la machine vectorielle de support linéaire, nous avons une région de 0 qui n'est pas cette classe et d'une qui est cette classe. Et nous avons une région au milieu où il y a un grand saut de pas cette classe à cette classe. Donc, nous pouvons voir que l'un est une probabilité qui va beaucoup plus bien et l'autre a fondamentalement un grand saut entre eux.
8. Algorithme de classification continué: Dans cette conférence, nous allons continuer avec les algorithmes
de classification que nous avons commencé la dernière conférence. Bon, alors jetons un coup d'oeil aux algorithmes supervisés multiclasses. Donc, ce que nous avons fait avant c'est que nous avons juste essayé de faire la différence entre cette fleur ou pas ce type de fleur. Mais en fait, dans cet ensemble de données, il y a trois types de fleurs différents qu'il contient, qui est ce que nous voyons ici. Donc, sur le graphique supérieur à gauche, nous avons nos trois types de fleurs différents. Ils sont séparés à l'aide d'un algorithme appelé KNN pour se tenir debout pour les voisins les plus proches. Et sur le fond ont, nous avons une régression logistique utilisant une approche un contre repos. Parlons donc de ceux-ci un peu plus en détail, en particulier celui contre le repos. Maintenant, ce que nous avons dans le premier cas est juste ici, nous essayons juste de séparer une classe de oui ou non. Et donc c'est ce à quoi se réfère la partie de classe unique, où soit essayer de dire oui ou non, c'est, c'est binaire. Maintenant, certains de ces algorithmes n'ont pas réellement de contrepartie multi-classes. Ils ne peuvent que dire oui ou non. Ils n'ont pas d'option ABC. Et donc la façon dont vous pouvez utiliser ces algorithmes pour, au lieu de dire simplement oui ou non, les
transformer en ABC, est que vous utilisez une approche one versus rest, ce qui signifie que vous entraînez un classificateur qui prédit la probabilité pour chacun de ces appartenant à ce type de fleur. Nous avons donc, dans ce cas, trois régressions logistiques, chacune donnant un score pour une certaine longueur de pétale et largeur de pétale appartenant à un type spécifique de fleur. Et le classificateur qui nous donne la plus grande probabilité que cette longueur de pédale et cela correspondrait à cette fleur. C' est celui qui va être choisi. Et c'est ce qu'on appelle l'approche « un contre repos ». Et de cette façon, nous pouvons transformer une seule classe ou un classificateur binaire qui ne peut que prédire des valeurs oui ou non et utiliser plusieurs d'entre eux ensemble pour prédire ensuite plusieurs classes. Et pour que nous puissions voir ici en bas, c'est la limite de décision que nous obtenons. Et ça fait un très bon travail de les séparer. Encore une fois, vous pouvez voir que certains des points sorte de débordement. Donc nous avons la fleur verte qui se déverse dans le régime rouge et certaines
des fleurs rouges se déversent dans ce que l'algorithme prédit être le régime vert. Mais ça fait un très bon travail en séparant ces trois. Maintenant, pour les voisins les plus proches, cet algorithme qu'il regarde juste sont, quels sont les points autour de moi ? Et puis sur la base de cela, il essaie de faire une supposition. Et donc une chose importante à noter ici est que pour la régression logistique pour la machine vectorielle de support, mais nous avons toujours eu est essentiellement,
fondamentalement, une ligne droite séparant. Alors que pour le voisin le plus proche, nous pouvons voir qu'il y a en fait une courbe qui se passe, en particulier pour la partie
difficile entre les deux fleurs et le coin supérieur droit. Et donc nous pouvons voir que différents algorithmes donnent des limites de décision différentes. Les limites de décision encore, sont ces lignes squiggly qui séparent la sortie des classificateurs. Et bien sûr, il y a beaucoup d'autres types de classificateurs différents que vous pouvez entrer dans. Et ce ne sont là que quelques-uns des exemples. Maintenant, parce que tous ces classificateurs se comportent si différemment, ce n'est pas souvent une note si vous apprenez chaque algorithme de classification, plutôt, il est plus important que vous ayez une très bonne compréhension de quelques-uns d'entre eux. Alors choisissez 34 ou cinq et comprenez ceux-ci plus en détail et sentez-vous à l'aise avec eux. Et souvent, le simple fait d'avoir ce genre d'algorithmes à choisir et de les comprendre pleinement rendra souvent votre modèle beaucoup mieux. Plutôt que d'essayer d'utiliser des tonnes d' algorithmes de classification
différents où vous ne comprenez pas vraiment ce qu'ils font, comment ils se comportent, et lequel serait plus approprié à utiliser et ce type de situation. Ainsi, par exemple, d'autres types d'
algorithmes supervisés multi-classes sont Naive Bayes ou vous pouvez utiliser des réseaux neuronaux, mais il y en a bien sûr beaucoup plus. Mais finalement, encore une fois, la meilleure chose est juste de se familiariser avec un couple et ensuite simplement de s'en tenir à ceux parce que ce sont ceux que vous comprenez le mieux. Et si vous avez une poignée d'algorithmes de classification à choisir, les chances sont, l'
un d'eux va toujours faire un bon travail vous aider à résoudre le problème que vous abordez. D' accord, regardons les algorithmes multiclasses non supervisés. Maintenant. Essentiellement en ce moment, nous allons seulement en examiner un parce que ceux-ci peuvent devenir assez compliqués. Et nous allons regarder un algorithme de clustering appelé k-means. Maintenant, ce que fait l'algorithme de clustering, c'est qu'il le sépare. Il sépare nos données en différents clusters, en différents groupes. Encore une fois, nous voyons ici nous avons une limite de décision et nous avons différentes classes. Et le top case, nous disons à l'avance, nous voulons que cet algorithme divise ces données en deux groupes différents. Et c'est ce qu'il fait. Nous voyons le côté gauche est un groupe et le côté droit comme un autre groupe. Et dans la moitié inférieure, nous voyons, ou nous
disons, nous voulons que cet algorithme le divise en trois groupes différents. Donc c'est quelque chose que nous disons à l'avance. Et dans ce cas, on voit qu'on en a un en bas à gauche, un au milieu, et un à droite. Maintenant, cette approche est appelée à nouveau clustering. Et quand nous définissons à l'avance combien de groupes différents nous voulons que l'algorithme identifie. Et ce cas, il essaie de regrouper les données afin qu'
il y ait une variance minimale au sein de chaque groupe. Bon, alors comment feriez-vous évaluer la performance de votre algorithme de classification ? Eh bien et facile, une sorte d'approche simple serait juste de mesurer la précision. Essentiellement, examinez quelle est la proportion de résultats ou de prédictions correctement classés. Mais cela peut commencer à causer des problèmes si vous avez un nombre élevé de classes. Disons que vous prédisiez 20 classes différentes. Cela signifie que chaque classe est d'environ 5% si elle est répartie uniformément. Si vous avez une précision de 95%, c'est presque plus, C'est fondamentalement toujours juste deviner aléatoire parce que vous pourriez être en train de voir pas à chaque fois et 95% du temps que vous allez toujours être correct. Par conséquent, la précision n'est généralement pas une bonne façon d'évaluer les algorithmes de classification. Mais nous pouvons voir en bas à droite ici, j'ai toujours montré la précision de la descente en gradient stochastique, ainsi que la régression logistique, qui est juste le nombre de prédictions correctes, qui dans ce cas en fait, ce n'est pas trop mal parce que nous avons juste deux classes. Mais encore une fois, la précision peut vraiment commencer à causer des problèmes lorsque vous allez à un nombre plus élevé de classes. Alors, quelles sont leurs options ? Il y a ? Eh bien, une autre option est de regarder la précision. Précision que vous regardez ou que vous calculez en regardant le nombre de prédictions correctes. Sont des prédictions positives correctes, et le diviser par le nombre de prédictions positives correctes, ainsi que des prédictions positives incorrectes. Donc, cela signifie qu'une prédiction positive vraie ou correcte est si vous dites que telle ou telle fleur est ce type de fleur. Et si ce n'est pas ce type de fleur, alors c'est un vrai positif. Un faux positif est quand vous dites que cette fleur est ce type de fleur, mais ce n'est en fait pas ce type de fleur. Si vous dites, oui, c'est la fleur que je cherche, mais ce n'est pas cette fleur que ce que vous avez ici est un faux positif. La précision est vraiment bonne à utiliser lorsque vous voulez savoir à quel point mes trues sont fiables ? Quand je dis que c'est le cas, alors il est très probable que c'est le cas. Maintenant, l'autre type, mais vous pouvez utiliser ou un autre type que vous pouvez utiliser est quelque chose appelé rappel, où vous regardez le nombre de vrais positifs sur la somme des vrais positifs et des faux négatifs. Donc, le faux négatif est quand vous dites que ce n'est en fait pas cette classe, alors qu'en réalité c'est cette classe. Donc vous dites que ce n'est pas ce type de fleur, mais une réalité, c'est ce type de fleur. Maintenant, rappelez-vous, est bon à utiliser lorsque vous voulez évaluer à quelle fréquence puis-je manquer mes vraies valeurs ? Maintenant, ce que vous pouvez également utiliser quelque chose appelé une matrice de confusion. La matrice de confusion fait est qu'elle vous montre combien de fois une classe a été confondue comme une autre. Donc dans ce cas, nous pouvons voir sur la droite ici nous avons les deux tables pour le SGD. Nous avons les lignes montrent
les valeurs vraies et nos colonnes montrent les valeurs prédites. Et donc nous pouvons voir 78 où prédit négatif et nous sommes en fait négatifs. Alors que 20 à porter prédit positif, mais nous sommes en fait négatifs. Donc nous avons une confusion ici. Mais nous n'avons pas de valeurs négatives prédites positives. Et donc ce que vous regardez avec une matrice de confusion est à quelle fréquence une classe est-elle confondue avec une autre classe ? Maintenant, cela peut être extrêmement utile, surtout si vous faites plusieurs classes. Mais bien sûr, cela nécessite un peu plus de vérification parce que ce n'est pas juste un chiffre, c'est une matrice et C que vous pouvez entrer et vous pouvez vraiment voir, Ok, où est mon algorithme fait des erreurs ? Mais bien sûr, cela nécessite plus de travail parce que vous devez entrer et vous devez regarder l'ensemble des nombres plutôt que d'avoir un seul chiffre pour mesurer la performance. Maintenant, ce ne sont que quelques-uns des outils que vous pouvez utiliser pour l'évaluation. Il y a, bien sûr, encore d'autres outils, mais ce sont les plus élémentaires que vous devriez connaître. Et ce sont aussi ceux qui devraient vous donner un avant-goût et une compréhension des raisons pour lesquelles il n'est pas toujours idéal d'utiliser la précision et des autres
façons d' aborder l'évaluation des algorithmes de classification.
9. Algorithmes de regression: Dans cette vidéo, nous allons passer en revue les algorithmes de régression. Alors tout d'abord, qu'est-ce qu'ils sont ? Eh bien, les algorithmes de régression sont essentiellement des algorithmes qui nous permettent de prédire des valeurs numériques. Alors quand veux-tu les utiliser ? Eh bien, un cas vraiment agréable à les utiliser serait si vous voulez remplir les valeurs manquantes. Par exemple, si vous disposez d'un jeu de données un peu incomplet,
mais que vous avez déjà des données comparables. Et vous pouvez former vos algorithmes à eux, remplir les valeurs manquantes afin que vous puissiez toujours utiliser ces données,
plutôt que d'avoir à les ignorer. Un autre endroit que vous pourriez l'utiliser pour lui, il est très souvent utilisé pour cela est pour la prévision. Cela pourrait donc être des prévisions temporelles ou cela pourrait aussi être des prévisions dans différents domaines. Donc, les algorithmes de régression sont très souvent utilisés si vous voulez utiliser une partie de vos données et que vous voulez faire des prédictions sur une autre partie sur laquelle vous ne disposez peut-être pas de données. Maintenant, vous pouvez également utiliser des algorithmes de régression lorsque vous
voulez comprendre comment votre système se comporte dans différents régimes. Et ce que je veux que vous remarquiez sur le graphique à droite ici, c'est que nous
avons exactement la même courbe pour cette courbe semblait linéaire. Donc, si nous revenons en arrière, nous voyons que c'est en fait une ligne droite que nous avons sur la droite ici. Et maintenant, si nous regardons le graphique plus loin, nous pouvons voir que ce pod n'est plus linéaire en fait. On peut voir que c'est un polynôme. Alors, comment les courbes dedans. Maintenant, ces données ont évidemment été générées par moi. Ce n'est pas extrêmement réaliste. Mais le point que je veux faire ici est que dans certaines régions sont les données peuvent effectivement regarder linéaire. Donc, si nous zoomons sur la région entre 01 et 0,51, c'est
ce que nous faisons ici. On peut voir qu'une ligne linéaire ou une ligne, une ligne linéaire, une ligne. Un bon travail d'ajustement des données ici, mais quand nous zoomons, ce n'est plus le cas. Donc, une ligne droite ne va plus faire un bon travail de modélisation de cela. Et donc si nous avons un bon modèle ou un bon algorithme, alors nous pouvons aller dans différents régimes et espérons que nous pouvons comprendre comment les données se comportent dans ces différentes parties. De cette façon, un très bon modèle peut nous aider à comprendre quelque chose que nous n'avons pas encore été en mesure d'étudier. Mais bien sûr, cela étant dit, vous devez également savoir que, parfois ou souvent, lorsque vous entraînez un modèle, il ne sera valide que pour la plage de données sur laquelle vous le créez plutôt que pour l'ensemble des données. Donc, même si les algorithmes de régression peuvent être très puissants pour vous aider à prédire les valeurs numériques, vous voulez vous assurer que lorsque nous les utilisons, vous les utilisez dans votre plage de données appropriée. Et cela si vous obtenez des données qui sont complètement hors de la plage que vous avez normalement considérée. Vous souhaitez réévaluer le fonctionnement de votre algorithme sur ces données. Parce que, comme nous pouvons le voir à partir de la comparaison ici sur la droite, nous commençons d'
abord linéaire, puis nous allons à ce polynôme. Donc, si nous allons dans des données de très loin de la plage que nous y sommes habitués avant, la façon dont nos données dans notre système se comportent peut changer. Bon, alors jetons un coup d'oeil à certains des algorithmes. Nous allons à nouveau utiliser
le jeu de données iris que nous utilisons également pour le cas de classification. Maintenant, quand vous faites la régression, vous ne parlez généralement que de supervisé. Non supervisé n'est pas particulièrement bien défini pour les algorithmes de régression. C' est pourquoi, lorsque nous parlons de régression, il s'agit
généralement d'un cas supervisé où vous avez vos données d'entraînement et que vous
avez également des étiquettes appropriées pour une cible appropriée que vous voulez atteindre. Bon, alors considérons à nouveau ces données de l'iris. Ce que nous avons ici sur l'axe des x, que vous pouvez voir sur le graphique à gauche, est la longueur du sépal. Et puis sur l'axe y, nous avons la longueur de la pédale. Et ce que vous pouvez voir à partir de ce graphique, c'est ces deux caractéristiques semblent quelque peu liées. Essayons donc d'utiliser algorithmes de régression pour voir si nous pouvons prédire certaines des valeurs ou si nous
pouvons avoir un modèle qui tente de modéliser ce comportement que nous voyons ici. Maintenant, il existe différentes façons d'aborder régression et il existe de très nombreux algorithmes différents. Le plus simple est une régression linéaire. Linéaire juste étant un polynôme de ligne droite est une ligne courbe. C' est un peu ce qu'on a vu ici. Donc ça va être linéaire. Ça va être un polynôme. Et puis vous avez également des machines vectorielles de support que vous pouvez utiliser pour la régression. Vous pouvez également utiliser le K-Neighbors les plus proches. Régression. Les réseaux neuronaux sont très souvent, bien sûr, également utilisés pour la régression, et ils sont aussi beaucoup d'autres algorithmes supervisés que vous pouvez utiliser pour l'agression. Donc, tout comme pour la classification que nous avons et beaucoup d'algorithmes à choisir que nous pouvons utiliser pour la régression. Et souvent, il se résume simplement à, ok, quel est le problème et quel est notre jeu de données et quel modèle est le mieux approprié à utiliser pour ce type de données. Jetons donc un coup d'oeil à la régression linéaire. Ce que nous avons ici est un modèle de régression linéaire formé sur cet ensemble de données. Et ce que j'ai utilisé, c'est comme si vous utilisiez un codage à chaud. Rappelez-vous que nous en avons parlé dans le cas de préparation des données, où nous codons à chaud les trois types de fleurs différents. Et donc notre modèle linéaire crée en fait trois différents meilleurs ajustements pour chacun des types de fleurs individuels. Et nous pouvons voir que c'est le résultat. Et donc ce que vous pouvez voir à partir du modèle linéaire, c'est que nous pouvons descendre à la longueur du sépal inférieure et nous pouvons prédire les longueurs PDL appropriées. Nous ne savons pas si cette valeur serait correcte ou non, mais nous pouvons au moins essayer de la prédire. Et on peut faire la même chose. Et nous pouvons le faire pour tous les vers plats depuis que nous avons utilisé un codage à chaud. Et donc ce que notre modèle linéaire est réellement fait, c'est qu'il est divisé en trois différents, donc vous avez trois fleurs différentes dans ce cas, à travers différents modèles linéaires, qu'il utiliserait tout simplement m. Et il vérifierait quel encodage c'est le cas. Alors quelle fleur c'est. Et puis utiliseriez-vous le approprié lorsque notre modèle pour faire des prédictions ? Nous pouvons aussi faire la même chose en utilisant une régression du voisin le plus proche. Maintenant, le voisin k le plus proche, plutôt que ce que fait le modèle linéaire est qu'il essaie de trouver la meilleure ligne linéaire pour passer à travers les données et le voisin k le plus proche, il regarde les voisins environnants à un datapoints. prédiction est juste la valeur moyenne des points de données environnants. Et donc nous pouvons voir que lorsque nous allons à une longueur sépale inférieure ou supérieure notre algorithme KNN ne fournit plus vraiment beaucoup de bonnes prédictions plus. Donc, nous pouvons voir quand nous allons dans la longueur SQL inférieure, C'est fondamentalement tout plat. Et dans le cas linéaire, il diminue maintenant parce que nous n'avons pas de données dans ce cas, nous ne savons pas lequel est correct ou si des fleurs de ces caractéristiques existent même. Donc, jusqu'à ce que nous
ayons des données là-bas, nous ne pouvons pas réellement valider laquelle de ces rues plus précise. Mais nous pouvons voir que le comportement de ces deux très différent. Et nous pouvons aussi voir que pour le cas linéaire, ce ne sera pas vraiment juste une ligne droite. Alors que pour le cas du voisin k le plus proche, nous avons de petits types de lignes horizontales qui sautent de haut en bas lorsque nous traversons les différents SQL. Et là encore, nous avons trois modèles différents, qui sont également codés en couleur dans un violet, noir et gris pour les fleurs de couleur orange, bleu et rouge respectivement. Et donc vous pouvez voir que nous avons de petits régimes où ces prédictions seraient les mêmes. Et nous avons un peu, il ressemble presque à un escalier qui n'est pas entièrement connecté sur lequel nous faisons des prédictions. Donc, tout comme dans le cas du classificateur, nous pouvons voir que différents algorithmes, bien
sûr, se comportent très différemment. Et donc une excellente façon de, votre grande chose à faire, bien sûr, est juste de voir, accord, quel genre de prédictions l'algorithme de désarroi fait ou comment mon algorithme ressemble réellement ? Si c'est le cas, la visualisation de la prédiction est que votre algorithme où la place ferait pour toutes ces différentes longueurs SQL est une bonne façon de comprendre ce que fait réellement votre algorithme. Bien sûr, ce n'était que deux algorithmes. Donc, nous avons regardé ici le cas linéaire. Nous avons regardé ici les voisins les plus proches. Encore une fois, comme je l'ai dit, il existe de très nombreux algorithmes de régression différents et chacun d'entre eux adopte une approche différente. Et donc la façon dont les prédictions vont être aussi très différente. Alors, comment évaluerons-nous ces différents modèles ? Eh bien, la bonne chose à faire est juste de regarder l'erreur. Maintenant, je vais utiliser y pour désigner nos cibles ici, et je vais utiliser y hat pour désigner notre prédiction. Et une façon de regarder l'erreur est juste en regardant l'erreur moyenne absolue. Donc, vous regardez chaque prédiction et vous voyez à quelle distance la prédiction est loin de la vraie valeur. Vous prenez une valeur absolue de sorte que les nombres ne sont que positifs. Vous les résumez et vous le divisez par le nombre de points de données. De cette façon, vous obtenez une mesure de la distance moyenne de votre prédiction par rapport à la valeur réelle. Et pour que nous puissions voir à droite, nous avons deux modèles. Sur la gauche, nous avons la régression linéaire en haut à gauche, sur ma droite, nous avons le voisin le plus proche. Et en bas, nous pouvons voir qu'en utilisant l'erreur moyenne absolue, la régression linéaire est désactivée d'environ 0,2. Donc, cela signifie en moyenne, il est éteint d'environ 0,2 centimètres. Et la prédiction de la longueur de la pédale, alors que le voisin le plus proche K est éteint seulement environ 0,17 centimètres. Donc, en utilisant cette mesure, il semble que le voisin k le plus proche fonctionne. Maintenant, il y a aussi une autre façon de regarder l'air. Et c'est souvent un choix, qui regarde l'erreur quadrillée moyenne et essentiellement la sortie de l'apprentissage automatique, il est souvent appelé l'erreur
carrée moyenne racine ou c'est une façon différente de s'y référer. On en parlera dans une seconde. L' erreur quadrillée moyenne est plutôt que de prendre votre prédiction et de voir à quelle distance
il est loin de la cible et juste prendre des valeurs absolues, vous voulez carré cela. Et la raison pour laquelle vous équipez cela est parce que cela signifie que les valeurs aberrantes ou les prédictions qui sont très éloignées sont punies beaucoup plus lourdement. Ainsi, par exemple, dans le cas d'erreur moyenne absolue, si nous avons une prédiction qui est désactivée de 0,1 et une autre qui est désactivée de 0,5. Celles-ci seront essentiellement pondérées également. Alors que dans le cas d'erreur quadrillée moyenne, l'erreur plus élevée aura un effet beaucoup plus important sur notre évaluation ici. Et la raison pour laquelle l'erreur moyenne au carré est agréable est parce qu'elle nous donne non seulement une mesure de la qualité de notre algorithme,
mais elle est lourdement punie lorsque les prédictions sont très éloignées de la cible réelle. Et donc nous pouvons voir ici si nous regardons l'erreur quadrillée moyenne pour la régression linéaire et les k voisins les plus proches. Encore une fois, la régression linéaire dans ce cas a également une moyenne plus élevée au carré. Donc, cela signifie à partir de l'erreur moyenne absolue, nous voyons non seulement est le modèle en moyenne hors plus, mais à partir du cas d'erreur carré moyenne, nous voyons que les valeurs aberrantes ne sont pas aussi riches ou les extrêmes ne sont pas aussi bien en forme comme dans le cas du voisin k le plus proche. Maintenant, quel est ce cas d'erreur carrée moyenne racine ? Alors que l'erreur carrée moyenne racine est juste de prendre la racine carrée de l'erreur quadrillée moyenne. Maintenant, la raison pour laquelle vous voulez faire cela est parce que l'erreur quadrillée moyenne nous donne des valeurs et des carrés. Donc, ce que nous avons ici de la moyenne erreur au carré, c'est
que nous avons une différence de centimètres carrés essentiellement, ce qui ne l'est pas, ça n'a pas vraiment de sens. Ce n'est pas vraiment ce qu'on cherche. Donc, nous pouvons prendre la racine carrée et maintenant nous
pouvons lire que dans le cas d'erreur moyenne carrée racine, nous avons une erreur d'environ 0,2 centimètres, alors que pour le cas du voisin k le plus proche, nous avons une erreur d'environ 0,2 centimètres. Donc, prendre la racine carrée ramène ou les unités à ce que nous mesurons
réellement et nous permet d'attribuer une valeur plus physique. Maintenant, la raison pour laquelle vous n'utilisez pas vraiment l'erreur racine moyen-carré et les cas d'apprentissage automatique. Parce que la performance est la même, vous prenez juste la racine carrée à la toute fin. Et la racine carrée est juste une opération supplémentaire qui prendra plus de temps. Et donc vous pouvez simplement utiliser l'erreur quadrillée moyenne, car si l'erreur quadrillée moyenne est plus grande, alors la racine carrée de cette valeur sera
également plus grande que la valeur à laquelle vous la comparez. Donc, prendre la racine carrée n'
ajoute rien de plus lorsque vous voulez l'utiliser pour évaluer votre algorithme. Prendre la racine carrée ajoute beaucoup de plus lorsque vous voulez interpréter l'erreur d'un point de vue humain. Mais lorsque vous l'utilisez dans votre algorithme pour former l'erreur quadrillée moyenne, fait, est, fait exactement la même chose. Et vous n'avez pas besoin d'utiliser le coût supplémentaire du calcul de la racine carrée à chaque fois.
10. Techniques d'optimisation: Dans cette conférence, nous allons examiner les techniques d'optimisation de nos algorithmes. Avant cela, nous allons faire un bref résumé de ce que nous avons fait jusqu'à présent. Tout d'abord, nous avons cherché à nous préparer à la formation. Donc, identifier les bonnes fonctionnalités potentielles et simplement aller
généralement sur la compréhension de nos données. Ensuite, nous sommes allés plus en détail sur la préparation nos données à l'aide de techniques telles que la normalisation, la à l'échelle et l'importance de l'échantillonnage. Et puis nous avons examiné différents types d'algorithmes, spécifiquement pour la régression et la classification. Mais comment faire en sorte que nos algorithmes apprennent plus rapidement ? Donc, pour cela, nous venons de parler de quels algorithmes pouvons-nous utiliser ? Qu'est-ce qu'on fait ? Ou même l'ensemble du flux de la science des données, qui est fondamentalement tout à la hauteur du choix de l'algorithme. Alors, comment pouvons-nous faire pour nos données ? Comment préparons-nous nos données ? Comment comprenons-nous nos données ? Comment identifier les bonnes caractéristiques ? Comment avons-nous fait ? Comment explorons-nous tous ces sujets importants ? Ensuite, nous avons parlé de l'utilisation de notre modèle et de la façon dont nous évaluons notre modèle. Mais maintenant, comment faire en sorte que notre algorithme apprenne plus rapidement ? Parce que parfois, lorsque vous utilisez beaucoup de données, votre algorithme peut prendre beaucoup de temps à s'entraîner et vous avez juste à attendre qu'il se termine. Et donc, bien sûr, une chose que vous pouvez faire est simplement d'utiliser plus ou plus fort ou des ordinateurs. Mais il y a aussi d'autres techniques que vous pouvez utiliser pour essayer de faire apprendre
vos algorithmes plus rapidement afin qu'ils deviennent meilleurs, plus rapides. Et c'est ce que nous allons regarder maintenant. Nous allons donc couvrir les différents types d'optimiseurs. Nous allons commencer par la descente en gradient, ce qui est quelque chose que nous avons également utilisé auparavant. Nous allons regarder l'élan, puis nag, eeta grad et RMS prop et enfin atome ainsi que N atome. D' accord ? Mais avant d'aborder cette question, je voudrais rapidement introduire un autre terme appelé le taux d'apprentissage. Maintenant, le taux d'apprentissage définit à quelle vitesse notre algorithme apprend ou fondamentalement, combien son algorithme est-il affecté par les erreurs qu'il fait actuellement ? Maintenant, vous pouvez penser intuitivement, d'accord, eh bien, je veux que mon algorithme apprenne le plus vite possible, alors il devient aussi bon que possible rapidement. Ne voyons pas comment ça marche. Alors regardons le genre de deux extrêmes. Et c'est généralement une de ces choses Goldilock où vous ne voulez pas être trop petit. Parce que si vous êtes trop petit, alors essentiellement vous allez prendre beaucoup de temps pour trouver une solution optimale ou un modèle qui fait assez de travail acceptable. Donc si votre taux d'apprentissage est trop faible, ça va prendre trop de temps. Mais si votre taux d'apprentissage est trop élevé, alors vous pouvez réellement prendre des sauts qui deviennent trop grands et vous ne pouvez jamais atteindre une solution optimale parce que votre algorithme est en train de surcorriger. Maintenant, le taux d'apprentissage est désigné par l'eta, qui est ce symbole en bas,
qui ressemble fondamentalement à un étrange N. Et donc quand nous passons par les prochaines parties de la conférence, si vous voyez cela, cela teste sur balle ou ce n étrange, ça va être notre taux d'apprentissage. Maintenant, le taux d'apprentissage est également un hyperparamètre de votre système que vous pouvez régler. Et bien sûr, vous voulez obtenir ce taux d'apprentissage optimal afin que vous ne deviez pas trop grand que votre modèle corrige am, mais pas trop petit pour que votre modèle prenne trop de temps pour atteindre la solution optimale. Et il aurait pu faire la même chose avec des pas plus rapides ou des pas plus grands. D' accord, regardons le premier algorithme qui s'appelle descente en
gradient, descente gritty. Tout ce que nous faisons, c'est que nous prenons notre fonction d'erreur, ou une fonction de perte ou notre fonction de coût, ce
qui est dans ce cas, par exemple, ce que j'ai tracé est l'erreur quadrillée moyenne, ce
dont nous avons parlé dans le cas de régression. Donc, l'erreur quadratique moyenne est juste une équation quadratique, qui est juste ce carré ici. Et nous pouvons voir que le gradient descend fait,
est-ce qu'il prend juste nos poids actuels. Et cela change fondamentalement nos poids en du taux d'apprentissage et du gradient de l'endroit où nous sommes actuellement à notre fonction de coût. Donc, si nous regardons le graphique à droite, si notre erreur est plus vers le côté gauche plus haut de la courbe, alors nous allons avoir un gradient plus raide à ce point. Et donc nous pouvons ajouter plus d'erreur. Alors que si nous sommes plus proches du minimum, ce
qui est ce que nous voulons atteindre, alors notre gradient sera plus petit. Et maintenant l'échelle de taux d'apprentissage que vous pouvez essentiellement penser à mettre à l'échelle ce gradient. Donc, nous pouvons voir changer le taux d'apprentissage est fondamentalement changer entre l'orange ou la flèche violette sur un cas ou le bloc et le bleu. Nous pouvons donc rendre un taux d'apprentissage plus grand ou plus petit, et cela affecte fondamentalement la taille du pas que nous allons prendre. Donc, tout ce que nous faisons avec la descente en pente comme nous avons nos poids, y compris notre biais. Donc, vous vous souvenez de ce terme thêta d'avant, et nous regardons simplement nos poids actuels et nous les mettons à jour en fonction de l'erreur, basée sur chaque taux ou basé sur chaque poids, qui provient de la fonction de coût. D' accord, la prochaine chose que nous pouvons faire est d'utiliser l'optimisation de l'élan. Maintenant, avec l'élan fait est qu'il prend fondamentalement descente gradient, qui est ce que nous avons regardé juste avant, et cela ajoute un peu. Donc, ce que fait la descente en pente est chaque étape que nous
calculons le gradient, puis nous ajustons nos poids en conséquence. Donc si on est très haut, la courbe d'air ou les gradients vont être plus raides. Et on va s'ajuster de plus en plus. Et plus nous approchons de la, à ce plongeon tout en bas, nous pouvons voir que notre flèche un peu plus petit et plus petit. Et donc nous allons ajuster le moins. Donc, ce que l'élan fait, c'est qu'il garde une trace des gradients précédents. Et pour que nous puissions voir ici l'élan est un peu ce que j'ai noté en vert. Et si nous commençons à gauche, nous commençons à rouler sur la colline. Et notre élan y est montré en vert. Et puis nous prenons également le gradient
au point local et modifions notre élan en conséquence. Et puis nous mettons à jour nos poids en fonction du nouvel élan et de l'effet que cela a est que nous pouvons voir à gauche,
nous allons commencer à rouler sur la colline beaucoup plus vite essentiellement parce que nous allons prendre de l'élan. Mais quand nous atteignons le bas, nous pouvons voir qu'à droite, par exemple, l'élan est toujours pointé vers le haut. On va passer la colline un peu plus loin avant de ralentir et de redescendre. Donc, pour le gradient descendant étaient fondamentalement, si nous sommes sur le côté gauche, nous roulons en quelque sorte sur la colline et nous ralentissons à mesure que nous atteignons le bas. Alors qu'avec l'élan, vous pouvez l'imaginer plus comme si nous avions un bol et nous mettrions une balle sur la pointe du bol et simplement la laisser tomber. Et même lorsque la balle atteint le point inférieur, elle a encore un certain élan qui va la porter l'autre côté du bol avant qu'elle ne soit
ralentie , puis elle revient et elle rebondit autour un peu jusqu'à ce qu'il atteigne une organisation, reste placé dans cette partie inférieure. Et donc un élan en tant qu'optimiseur fonctionne d'une manière très similaire. Le prochain type d'Optimizer est appelé le gradient accéléré de
Nesterov ou Knack pour court terme. Et ça prend juste de l'élan. Mais plutôt que de regarder les applications de gradient, les pondérations actuelles, il regarde le gradient, les poids actuels plus notre élan. Donc, nous pouvons voir que notre étape actuelle serait ces flèches maintenant plus transparentes. Et notre pas à nos poids actuels plus l'élan serait alors la flèche plus opaque, donc plus les plus colorés. Et une bonne chose à ce sujet est que notre algorithme est en fait l'optimiseur regarde un peu dans le futur et des guillemets autour de l'étape suivante. Et donc ça ne va pas accélérer autant que nous pouvons le voir sur le cas de gauche. En fait, on ne va pas obtenir un tel coup de pouce. Et nous allons également ralentir davantage une fois que nous aurons franchi le point optimal, comme nous pouvons le voir sur le côté droit, où nous avons déjà un coup de pied plus important. Donc, ce que fait frapper est, plutôt que de regarder et d'utiliser les gradients aux poids actuels, il regarde les gradients aux poids actuels plus l'élan, puis ajuste l'élan en fonction de cela et mettre à jour nos pondérations en fonction de l'élan. D' accord. Donc, le type suivant sera 80 Grad et RMS Prop. Et ceux-ci sont très liés, c'
est pourquoi je les ai mis dans la même catégorie. Et essentiellement tout ce que nous faisons ici c'est que nous avons un peu similaire à l'élan avant un, un autre symbole que nous utilisons la mise à jour et tout ce que nous faisons c'est que nous sommes, nous avons notre valeur de départ actuelle et nous changeons qui est basé sur le gradient dans toutes les directions. Et donc nous le mettons à l'échelle en fonction de mes gradients comme nous pouvons le voir. Donc nous prenons le gradient de chaque vague et nous le multiplions par elle-même. Cela va être notre valeur S ici, qui va être définie pour chaque poids. Ensuite, nous mettons à jour nos poids réels et nos biais en soustrayant le gradient et en divisant chaque valeur par cette valeur prédéfinie. Donc, ce que nous faisons ici, c'est que nous réduisons réellement l'effet de plus grands gradients. De cette façon, nous n'allons pas aller dans la mauvaise direction, mais nous allons essentiellement être guidés plus rapidement vers cet optimum. Maintenant que l'étrange E en bas, ça s'appelle un epsilon, et c'est juste un très petit nombre. Et vous avez ça pour ne pas diviser par 0. Mais essentiellement ce qu'il fait, c'est qu'il prend tous les gradients et il les met à l'échelle en fonction de leur taille. Et de cette façon, votre algorithme ne va pas vraiment dans les directions de Ron, mais il ira plus rapidement dans la bonne direction. Rms prop est presque la même chose. Tout ce que nous faisons, c'est que nous ajoutons un terme de mise à l'échelle, qui est ce gamma ici. Hum, et donc de cette façon nous rejetons certaines
des parties précédentes et nous pouvons ajuster les poids qui sont les gardiens de courants ont, ainsi que la mémoire des valeurs précédentes. Donc, nous pouvons voir que eeta grad et RMS prop sont très similaires et ils ont le même objectif, qui est de ne pas laisser votre algorithme aller dans la mauvaise direction. Mais ils l'ont fait un peu différemment. Problème énorme est généralement mieux que 80 grad, juste parce qu'il ne se souvient pas autant de l'ancien et oublie plus vite et il considère plus les valeurs actuelles. Mais ce gamma, bien sûr, est aussi quelque chose que vous pouvez accorder. Donc, c'est un autre hyperparamètre. Bon, enfin, on a Adam et un atome. Maintenant ce qu'ils font, et vous reconnaîtrez probablement beaucoup de ces parties. Nous avons donc le P, qui est essentiellement un P pour l'élan. Nous avons le S, qui est le S du garage Ada ou l'accessoire RMS en fait dans ce cas. Et ce que nous faisons, c'est que nous combinons nos P et R S, et nous mettons essentiellement à jour en fonction de ces deux valeurs. Et il y a un peu comme une mise à l'échelle en cours. Donc nous divisons nos p par 1 moins Gamma 1 et notre S par un moins gamma2. Et essentiellement, nous faisons simplement cela pour que nous
atteignions plus rapidement une valeur optimale et des valeurs optimales de P et S. Mais l'idée de cet algorithme Adam est qu'il combine élan et il combine ce qui utilise pour RMS prop, et cela fonctionne assez bien. Et puis nous avons aussi un atome, qui prend fondamentalement l'atome et il ajoute le Nesterov. Donc, plutôt que de regarder les gradients et l'endroit actuel, il examinera les gradients à l'endroit suivant après avoir examiné l'élan. Et fondamentalement cela fait la même chose que NAG est à l'élan et l'atome est deux atome. Donc ce sont tous les types d'optimiseurs populaires. Si tu veux y aller et en choisir un. La descente par défaut qui est généralement utilisée est la descente en dégradé, mais elle n'est en aucun cas la plus optimale. Si vous choisissez simplement un optimiseur aléatoire, il est généralement bon d'aller avec l'atome ou l'atome N. Ceux-ci fonctionnent très, très bien. Et donc, vous savez, si vous n'êtes pas vraiment sûr, vous devriez probablement aller avec ceux-ci, mais vous devriez savoir que ottoman un atome habituellement orange, la valeur par défaut veut aller pour elle. Mais vous pouvez voir que chacun de ces optimiseurs ce genre de se comporter différemment. Et donc, vous savez, il y a des lignes directrices qui sont généralement meilleures. Mais bien sûr, cela peut aussi dépendre de la situation. Et si vous n'êtes pas sûr, il peut être utile expérimenter avec deux ou trois d'entre eux. Et puis voir quel type d'optimisé il
fait le meilleur en termes de faire de votre algorithme l'un des plus rapides. Et puis allez avec ça le reste du chemin. Ainsi, lorsque vous améliorez votre modèle, il apprend en fait plus vite qu'il ne le serait autrement. Très bien, et donc avec ça, on a atteint la fin du chœur. Et je voulais juste vous remercier tous d'avoir rejoint moi. J' espère que vous avez beaucoup appris. J' espère que vous avez apprécié le cours, et j'espère que vous vous sentez à l'aise d'avoir des conversations sur l'apprentissage automatique maintenant. Maintenant, vous avez peut-être remarqué que tout au long de ce cours il y a beaucoup de travail en science des données, un apprentissage automatique ou la spécialisation de l'apprentissage automatique. Il repose en fait sur des compétences vraiment solides en science des données. Donc, si vous êtes intéressé à vous spécialiser dans l'apprentissage
automatique ou si vous êtes intéressé à devenir chercheur en données. J' ai également un bon contenu sur mon site web codage avec max.com conçu
spécifiquement pour vous obtenir de absolument aucune expérience à data scientist. Donc, si vous êtes intéressé par cela ou si vous voulez entendre mes conseils sur la façon dont j'ai commencé, encore une fois, vous pouvez vérifier sur le codage avec max.com. Et oui, merci encore de me joindre et j'espère te voir dans un de mes autres cours.