Transcription
1. Introduction: La science des données, en un sens, est comme une histoire de détective pour moi. Vous démêlez les relations cachées dans les données, et vous construisez un récit autour de ces relations. Je m'appelle Oscar Thomas et je suis sur l'apprentissage automatique et les scientifiques des données. J' ai passé les trois dernières années à travailler vers mon doctorat en apprentissage automatique et en géophysique. J' ai de l'expérience de travail en tant que consultant, d'enseignement de Python et d'apprentissage automatique dans des endroits comme Shell et le gouvernement britannique, mais aussi des entreprises de taille moyenne et des universités. Toute cette expérience m'a permis de terminer mon certificat IBM Data Science Professional en 48 heures pour un cours qui devrait durer environ un an. Je crée également exactement ces ordinateurs portables que vous apprenez à créer dans ce cours pour la science des données et la compétition d'apprentissage automatique, un type appelé Kaggle, qui appartient à Google. Là, j'ai gagné le rang 81 dans le monde entier sur plus de 100 000 participants. Après ce cours, vous aurez franchi chaque étape du flux de travail de science des données. Cela signifie que vous serez en mesure de recréer toute la visualisation et que tous les extraits de code seront disponibles ultérieurement pour utilisation avec vos propres données dans vos propres rapports. Nous ferons une étape par étape très appliquée. Nous commencerons au tout début, commençant par l'entrée de vos données dans Python. Cela signifie regarder les fichiers Excel et regarder les tables SQL, mais aussi regarder ces petits formats de données bizarres qui peuvent parfois être un peu difficiles à utiliser. Ensuite, nous prétraiterons nos données, nettoyerons nos données et effectuerons une analyse exploratoire des données ou une courte EDA. EDA est la partie où vous peaufinez vraiment votre question, et où nous examinons les relations dans nos données et répondons à ces questions. Ensuite, pour le plaisir, nous allons jeter un coup d'œil à la
modélisation de l'apprentissage automatique et à la façon de valider ces modèles d'apprentissage automatique, car en cette époque moderne, c'est plus important que jamais. Nous examinerons les différentes visualisations de données, meilleure
façon de raconter votre histoire, meilleure
façon de générer des présentations et des rapports pour vraiment convaincre, pour vraiment ponctuer votre histoire que vous pouvez raconter ces données. Finalement, nous allons jeter un oeil à la
génération automatique de présentations et de rapports PDF directement à partir de Python. Je n'ai malheureusement pas réussi à entrer dans la récession deux fois maintenant. Mais Python m'a donné la possibilité de terminer un doctorat tout en travaillant en tant que consultant et en créant pour
moi
ces portefeuilles incroyables de science des données de classe mondiale qui ont maintenant suscité tant d'attention. C' est incroyable. Un de mes carnets a été vu plus de 50 000 fois. J' espère partager ça avec vous. Signes de données pour moi est le nouveau champ super excitant et Python est très accessible. J' espère vous voir en classe.
2. 01 cours projet nouveau: Bienvenue en classe et
merci de votre visite. Je suis vraiment heureuse de t'avoir. Ce cours sera composé
de petites vidéos faisant partie de chapitres plus importants,
car vous pourrez ensuite revenir et examiner les petits détails sans avoir à chercher dans
les actualités en gros. Et chaque chapitre constituera l'une des étapes
du flux de travail de la
science des données. Au final. Parce qu'ils ne font que
siner, ils ne sont pas appliqués dès le premier jour sur les protéines. Et puis ce projet, vous allez recréer ce que nous faisons
dans ces conférences vidéo. Parcourez l'ensemble du flux de travail consacré à la science des
données
et, finalement, générez un PDF pour une
présentation avec votre amende C'est bon pour vos propres données, sur un ensemble de données que je
fournis en plus de cela, et mettez tous ces blocs-notes à
votre disposition afin de pouvoir coder pendant les vidéos, car
il est préférable d'expérimenter. Parfois, vous voyez quelque chose, vous voulez créer,
quelque chose de différent, vous voulez mieux le
comprendre. Et puis expérimenter
avec le code que j'ai à l'écran est vraiment
la meilleure façon de le faire. Pour les
deux premières conférences, je veux m'assurer que tout le monde connaîtra une sécheresse
initiale égale. Jetez un coup d'œil aux outils. Nous aurons quelques conférences
d'introduction où nous découvrirons vraiment des objets
africains. Ensuite, nous allons commencer par
l'ensemble de données complet. Du
chargement, du nettoyage, de l'analyse
exploratoire des données et
jusqu'à l'apprentissage automatique très brutaux analyse
exploratoire des données et . Et nous appelons génération.
3. 02 Qu'est-ce que la science de données nouveau: Dans ce cours, nous examinerons la science
des données sous deux angles
différents. Il y en a donc une où
nous
examinerons en quoi
ils sont réellement conçus pour agir. Quels sont les
principes fondamentaux importants ? Et il y a l'autre,
l'approche par processus. Comment
travaillez-vous réellement en tant que data scientists ? Définir la science des données comme
une bête parce que c'est une discipline
tellement nouvelle
que tout le monde est atteint d'une leucémie différente. Et j'ai aimé la
façon dont Jim Gray, le Turing Award, le définit
essentiellement
comme une enseigne Ford Pinto. Et cette science des données ou technologie de
l'information. Et troisièmement, Need Changes
Tout ce qui concerne la science. Et je pense que l'impact des décisions
fondées sur les données
sur les signes et les affaires a révélé mes
façons préférées d'aborder la science des données, la hiérarchie des besoins en matière de science des
données par des soins indésirables, des
voleurs de dents. Et elle la définit
vraiment comme cette pyramide. Tous les
besoins de base et Ben Wolf, plus de besoins de niche au
fur et à mesure que vous progressez. Et la collecte de données
est à la base même de
cette hiérarchie des besoins. Et nous devons être conscients
que, déjà dans le cadre d'un processus
collectif, de
nombreuses personnes aiment à penser que données sont impartiales, c'est vrai. Mais ce ne sont vraiment pas les filles. Bien souvent, même dans ce cas, les systèmes
physiques biaisent nos données, sont lues en les collectant,
puis mises à niveau, en les
déplaçant et en les stockant sur de grandes surfaces. Nous veillons donc à
disposer d'un stockage fiable, ralentissement
fiable des données, mise en place d'un
processus d'extraction, de
transformation et de chargement ETL en place d'un
processus d'extraction, de
transformation et de chargement afin de réellement améliorer l'
infrastructure de la science des données. Le niveau supérieur de la race consiste à explorer et à
transformer les données. agit donc
de détecter les anomalies lors du nettoyage, préparer nos données
pour le MLS proprement dit. quatrième étape consiste à agréger
et à étiqueter les données, à
choisir les indicateurs
que nous utiliserons et à examiner les fonctionnalités
et les données d'entraînement La dernière étape du panel consiste à
effectuer la modélisation proprement dite. agit donc de faire des
tests AB, de tester entre une version du site Web
et une autre et d'expérimenter des algorithmes
d'apprentissage automatique
simples pour obtenir des modéliser les données et créer des prédictions basées sur la
pointe de la pyramide, des têtes, IA et des personnes hochant la tête. Donc les trucs vraiment juteux, mais aussi ceux auxquels la plupart des entreprises ne pensent pas
vraiment. Cela résume approximativement
le temps que vous devez également
consacrer à chaque étape
du périmètre. Donc, si vous ne
passez pas de temps à acquérir
des données ou à réfléchir aux données, vous aurez probablement
un problème plus tard. Une autre façon d'aborder les
sciences des données en posant des questions. Le processus de science des données
consiste essentiellement à poser des questions
sur vos données. Et il s'agit d'une approche très
itérative. Donc, au début, vous vous posez la question acquisition de ces données, mais comment les données sont-elles
réellement échantillonnées ? Cela entre dans les données des acheteurs. Quelles données sont pertinentes, puis vous passez à l'exploration des données jusqu'à l'analyse
exploratoire des données. Andrey Inspecte. Parfois, il faut y retourner. Il s'agit d'un processus itératif. Au cours de l'exploration, vous constaterez que certaines
sources de données pourraient vraiment aider les informations que
vous avez dans vos données. Vous faites donc des
allers-retours entre les étapes. Ensuite, vous modélisez les données, créez un modèle
d'apprentissage automatique simple ou vous établissez simplement la hiérarchie des besoins et réellement acquis des connaissances en
modélisant vos données à l'aide d'algorithmes
simples. Enfin, et cela ne fait pas partie
de la hiérarchie des besoins, mais cela fait certainement partie
du processus de science des données qui consiste à
communiquer vos résultats. Qu'avons-nous appris ? Comment donner
un sens aux données ? Quels sont nos points de vue ? Et comment pouvons-nous convaincre
les gens de l'
idée que nous savons tous que, parfois, il ne suffit pas de connaître
la vérité ? Vous devez raconter une
histoire captivante pour convaincre les gens de Jane Science et vraiment avoir un
impact sur
votre journée. Ce cours vous montrera donc l'ensemble du processus
et comment générer ces
histoires obsolètes.
4. 03 Aperçu de l'outil nouveau: Faisons un tour d'horizon des outils que nous
utilisons dans cette classe. De toute évidence, tout ce qui
concerne la science des données sera universel. Mais l'apprentissage du Python est également extrêmement précieux
pour vos compétences. Python a gagné en popularité parce qu'il est
gratuit, qu'il est open source, qu'il est très facile à utiliser et qu'il peut être installé sur
pratiquement n'importe quel appareil. Donc, Mac, Windows, Unix, même
votre téléphone, pas de problème. Et son code de minceur pour les humains. Donc, de nombreux sites, Google Ads, YouTube,
Instagram, Spotify, ils utilisent tous au moins
et Pub Python parce qu' il est si facile d'attirer de nouvelles
personnes avec Python. Parce que si vous écrivez du
bon code Python, il peut presque être lu comme du texte. Installe Python 3.8 à l'aide
de l'installation d'Anaconda. Anaconda est une bonne solution car
elle distribue
de nombreux packages de science des données dont nous avons déjà besoin et c'est gratuit. Si vous utilisez une
version ultérieure de Python, cela devrait parfaitement convenir tant que c'est Python, veuillez vous demander si vous
devez installer une sorte d' IDE ou une sorte de
compilateur pour Python. Et ce n'est pas le cas. Nous utiliserons Jupiter, qui est une
interface Web pour Python qui rend l'enseignement Python et du parcours
d'apprentissage extrêmement facile. Et à partir de là, vous pouvez toujours
passer chez un autre éditeur. L'un de mes favoris est VS Code. C'est devenu très bon
pour le développement en Python. Et le code VS compte en fait
avec un interpréteur. Et Views
Code est également livré avec une extension pour
Jupiter. Mais c'est pour un autre jour à la base de tout ce que
nous faisons, NumPy, c'est une
bibliothèque informatique scientifique et Python. Et nous n'interagirons pas directement
avec cela, mais je veux que vous
sachiez que c'est là. Ainsi, lorsque vous devez
effectuer un calcul,
vous pouvez toujours le faire en Python. Il a été utilisé pour
trouver des trous noirs. Il est utilisé pour l' analyse
du sport et pour les calculs
financiers. Et il est utilisé par chaque package que nous
utiliserons dans ce cours. Vous remarquerez rapidement
sur ce cours que
tout ce que nous faisons
dépend des pandas. Pandas est un
outil puissant qui est
une sorte de mélange entre Excel
et SQL pour moi. Et c'est vraiment un outil d'analyse
et de manipulation de données. Nous stockons donc nos informations avec des colonnes
mixtes dans un DataFrame. Et ce DataFrame peut ensuite
être manipulé, modifié, ajouté uniquement dans cet outil pour la partie
apprentissage automatique et validation
du modèle
lors de l'utilisation de scikit-learn et de bibliothèques
basées sur scikit- apprenez, Scikit-learn a beaucoup
changé notre façon faire de l'apprentissage automatique
et a contribué en partie à l'essor que nous
observons actuellement dans le monde
en matière d'apprentissage automatique. Matplotlib est un
outil de visualisation de données et nous
utiliserons principalement des bibliothèques qui s'
appuient sur matplotlib. Mais il est très
important de savoir qu'il existe et qu'il contient une
vaste bibliothèque d'exemples où vous pouvez avoir un aperçu de ce que
vous souhaitez créer. Seaborn est l'une de
ces bibliothèques uniques qui s'appuient sur matplotlib. Et il est extrêmement
puissant dans la
mesure où il suffit souvent d'une ou deux
lignes pour créer de très belles
visualisations de vos données statistiques. Il s'agit des outils fondamentaux que nous utiliserons dans le domaine de la science
des données. Il existe des logiciels open source, ils sont gratuits et ce sont les plus importants. Mais nous utiliserons quelques autres outils plus petits que j'ai appris à apprécier également, mais je
les présenterai tout au long du cours. La documentation de ces outils
open source est incroyable car elle est également créée
par des bénévoles comme moi. J'ai écrit une partie de la
documentation sur les pandas et scikit-learn, et vous trouverez qu'
elle est très utile avec de petits exemples intéressants qui vous permettront de mieux
comprendre le code. Si vous les utilisez dans le cadre
d'une entreprise,
ils sont toujours gratuits. Mais pensez à devenir
un défenseur sponsoring, car
ces packages reposent
vraiment sur la rémunération de développeurs et
de responsables de la maintenance.
5. 04 Comment trouver une aide nouvelle: Cela peut être vraiment intimidant de
suivre ce cours. Je comprends tout à fait. J'apprends constamment. Je suis en train de suivre ces cours
et c'est terrible d'être seule . Mais Skillshare possède
la page du projet où vous pouvez demander de l'aide. Dans ce cours,
vous examinerez également
les différentes manières de trouver de l'aide et comment vous pouvez apprendre à vous aider vous-même. Parce que chaque programmeur vous
dira qu'il est devenu de plus en
plus doué en programmation. Premièrement, ils ont appris à rechercher les paiements RIF sur
Google. Pour commencer, nous allons jeter un
œil au carnet Jupiter car le carnet Jupiter veut
directement nous aider. Donc, si nous avons une fonction
quelconque, même la fonction d'impression, nous pouvons utiliser Shift Tab. Et lorsque nous appuyons dessus,
une fois, elle s'ouvre, en
gros, la description de base, ce qui nous permet d'obtenir la signature
de notre fonction. Cela signifie que le nom doit être imprimé ici. C'est le premier argument, puis le point point
est juste petit. Et voici les arguments
clés. Et cela renvoie la première, je suis la première phrase de la documentation
de la docstring. Ainsi, même si nous pouvons appuyer sur
Shift Tab plusieurs fois, deux fois, il suffit d'ouvrir
la chaîne documentaire complète. Trois fois,
c'est la chaîne de caractères That's the docstring ouverte plus longtemps et vous
pouvez également cliquer ici. Et tout ça. Et quatre fois , je vais le jeter au fond. Vous l'avez donc disponible pendant que vous travaillez
et vous pouvez
simplement le
mettre ici, de son côté, mais aussi simplement le fermer. Et un ajout. Eh bien, nous allons donc
travailler avec des pandas. Ainsi, lorsque nous commençons à taper, nous pouvons souvent appuyer sur la touche Tab
pour la saisie semi-automatique. Et c'est vraiment
ma façon personnelle d'être un peu paresseuse lorsque je tape. Ainsi, lorsque je veux importer des pandas, je peux appuyer sur la touche Tab et voir quels
types de choses sont installés. Des pandas en tant que police s'
exécutant ici, je vais m'occuper de Control
Enter pour rester au même endroit. Et Shift Enter. Il va être exécuté et m'
emmener dans la cellule suivante. Et là, je peux aussi, donc P D, c'est maintenant nos pandas. Quand j'appuie sur point et Tab, toutes les méthodes
disponibles sur PC s'ouvrent. Donc, ici, je peux vraiment
vérifier n'importe quoi. Par
exemple, si je veux
fusionner quelque chose, je peux appuyer sur la parenthèse, y placer la touche de tabulation et
lire comment le fusionner. Maintenant, cela peut être un
peu difficile à lire, même si nous pouvons
le mettre tout en bas ici. Et c'est pourquoi il existe
la documentation sur les pandas, qui est essentiellement construite à partir de la docstring avec
quelques astuces de formatage. Vous pouvez donc voir ici
ce que c'est, sa signature. Et vous pouvez y lire
, même regarder les exemples
et les copier. Une chose à savoir en matière de logiciels c'est que ce genre de
code qui est là, je veux dire, n'a rien de génial. Vous n'êtes pas obligé de
vous sentir bien, vous n'avez pas vraiment
besoin de les taper. Tu peux simplement
les recopier et dire, d'accord, j'en avais besoin. Maintenant, j'ai un beau DataFrame
avec l'âge, etc. Donc, copier quelque chose comme
ça est très courant. C'est exactement ce que nous
faisons dans le domaine des logiciels. La bonne volonté est la prochaine façon
d'obtenir de l'aide. Et je fais parfois la blague en disant que dans les
interviews, vous devriez simplement demander à des personnes de Google Python voir s'il montre des serpents ou s'
il montre le logo Python. Parce qu'à un moment donné, Google
commence à
vous connaître et vous montre de
plus en plus Python. Et c'est un bon moyen de voir que vous avez beaucoup d'
expérience en cinq ans. Donc, lorsque vous voulez poser
n'importe quel type de question, lorsque vous êtes coincé avec quoi que ce soit. Comme si vous aviez un format de données très
obscur que vous souhaitez charger. Ou vous avez simplement
une erreur dont vous ne savez pas vraiment quoi
faire avec votre copie. Et disons que vous avez
une erreur de type, par exemple
, jetez un coup d'œil ici et il y en a généralement une
surlignée. Mais bien sûr, Google change
toujours et vous êtes souvent
redirigé vers les documents. Donc, dans ce cas, il s'agit de
la documentation Python. Et puis l'un des liens sera également
StackOverflow. Et StackOverflow
est
ce site Web , il est
extrêmement utile, mais ce n'est pas non
plus le meilleur endroit pour les débutants car certains des meilleurs experts du monde sur ce site Web
répondent à votre question. Mais si votre question
n'est pas bien formulée, certaines personnes présentes
sur ce site Web peuvent parfois être un peu
hostiles à son sujet. Cependant, pour naviguer et
trouver des solutions, par
exemple, votre question a
probablement déjà été posée. Si vous ne le trouvez pas
sur StackOverflow, essayez de modifier légèrement votre
requête Google. Vous trouvez donc différents types de résultats, comme le type
d'erreur de type ou
avez-vous une copie du nom complet de l'erreur de
type, etc. Donc, vraiment, vous voulez
faire défiler la page vers le bas jusqu'aux réponses. Et celui-ci n'est pas
vraiment très apprécié. Mais souvent, vous
avez un vote positif. C'est donc très, très populaire. Et parfois, vous pouvez même
obtenir des réponses acceptées. Par exemple, jetez un œil à celui-ci. Ici, vous avez une coche
verte, ce qui signifie que
le demandeur
a marqué cette réponse comme
réponse exceptée. Et vous pouvez voir
ici que les gens mettent beaucoup de temps à
répondre à ces questions. Vous pouvez voir
les choses de différentes manières avec des exemples de code et vous pouvez vraiment vérifier ce qu' il faut faire ensuite avec
votre type d'erreur. Revenons à Jupiter
et fermons celui-ci. Parce que c'est aussi quelque chose que je
veux te montrer. En Python. Les flèches sont bon marché parce que nous
pouvons les utiliser facilement. Si nous avons quelque chose comme ça, il nous dira tout de
suite ce qui se passe. Il y a donc quelque chose de
bizarre au début. Mais ce que je fais d'
abord en cas d'erreur,
quelle soit sa longueur, c'est une flèche très courte. Faites défiler l'écran jusqu'à la toute dernière
ligne et jetez-y un coup d'œil. Oh, d'accord, c'est
une erreur de syntaxe indique un
EOF inattendu alors que la politique EOF, EOF signifie et un fichier. Donc, si vous ne
savez pas vraiment ce que c'est, copiez-le, consultez
Google et jetez-y un œil. Si Google
vous dit de quoi il s'agit. Souvent, la recherche sur Google est meilleure que la recherche sur
leurs sites Web eux-mêmes. Et ici, cela signifie
que la fin de votre code source a été atteinte avant que tous les codes ne soient terminés. Regardons donc
à nouveau notre code. Ici. Si nous fermons les parenthèses, notre code est maintenant terminé
et il fonctionne très bien. Faisons, générons
une autre erreur. Oui, quelque chose que nous ne pouvons
certainement pas faire est diviser
cette chaîne
par un nombre. Donc, si nous l'exécutons,
cela nous donne une erreur de type. Nous allons donc faire défiler l'écran
jusqu'en bas et dire : «
Eh bien, voyons ce
qui se passe ici. Et cela vous indique que la division n'est pas possible pour les chaînes et pour les entiers. Et en
utilisant réellement les flèches ,
vous pourrez comprendre pourquoi Python n'aime pas ce que
vous avez écrit ici. Puisque nous parlons d'
aide , je ne pourrai pas
regarder par-dessus son épaule. Et les classes auxquelles j'ai donné une erreur très courante que
vous pouvez détecter vous-même sont que ces blocs-notes Python n'ont pas besoin d'être
exécutés dans l'ordre. Vous voyez donc le petit
chiffre juste
à côté de ce qui a été
exécuté et de ce qui ne l'a pas été. Faisons un petit exemple, ajoutons de nouvelles choses ici. Disons qu'ici
je définis a, N, ici. Je veux définir b. Et b
sera multiplié par cinq. Et je passe par là, j'expérimente ça. Je regarde DP Merge, ai une erreur ici,
ce qui est bien. Nous pouvons laisser ça pour le moment. Exécutez ce code,
imprimez peut-être quelque chose. Et vous pouvez voir que ces
chiffres sont irrecevables. C'est important par la suite. Ensuite, j'exécute cette cellule et
elle me donne un nom d'erreur, nom
d'erreur a n'est pas défini. Et c'est parce que cette cellule
n'a pas de numéro. Il n'a jamais été exécuté. Donc, juste quelque chose pour
remarquer que vous devez exécuter toutes les cellules que vous
voulez. Parce que. Lorsque nous exécutons celui-ci
puis que nous exécutons celui-ci, c'est tout à fait correct. Alors jetez vraiment un œil aux
chiffres et à la flèche suivante. Et cela est très
lié à cela, c'est que parfois nous
changeons quelque chose
quelque part comme ici. Et nous changeons de a en B en six. Ensuite, nous exécutons à nouveau ce code. Et tout à coup, on y jette
un coup d'œil et b vaut 30
, alors que a vaut cinq ici. Et c'est l'un
des gros problèmes que rencontrent les gens en
cas d'exécution hors ordre. Et tu dois faire
attention à ça. Donc, soit vous devez simplement
suivre les cellules que vous avez saisies. Et surtout avec ça, comme s'il y avait 107849, cela devient vraiment difficile
à garder à l'esprit. En particulier, vous pouvez
supprimer ces cellules. Et un sera
toujours dans la mémoire. Nous pouvons donc toujours l'exécuter même si les cellules n'
existent plus. Parfois,
il suffit de passer
au caramel et de dire
redémarrer et effacer la sortie, ce qui efface toutes les variables et toutes les sorties que
nous avons ici. Nous pouvons donc y aller, appuyer sur ce gros bouton rouge, et maintenant nous avons un nouveau carnet avec tout le code dedans. Nous pouvons maintenant l'exécuter afin d'obtenir toutes nos
erreurs et voir ici
que a n'est pas défini. Nous devons donc essentiellement ajouter une nouvelle ligne ici et
définir à nouveau une. Et de cette façon, vous pouvez
détecter de nombreuses erreurs dans
Jupiter en regardant les chiffres ici Avez-vous oublié d'exécuter quelque chose ou l'
avez-vous fait dans le mauvais ordre ? Oui. Au total. Pour
trouver de l'aide en
Python, vous devez vous souvenir de Shift Tap. N'oubliez pas cet onglet,
complétez automatiquement vos requêtes et vous pourrez vous donner des
informations les méthodes disponibles
sur pratiquement n'importe quoi. Ensuite, vous voulez vraiment être
doué pour googler les choses. Dans certains de mes cours, certaines personnes avec
qui je me suis un peu bien débrouillée et avec qui je suis devenue amie se
sont moquées de moi à un moment
donné et m'ont dit que votre cours aurait pu être essentiellement
composé de Google parce qu'à un moment donné, tout le monde doit rechercher des informations sur Google et il
y a aussi des publications amusantes
sur Twitter , où les responsables des bibliothèques doivent
rechercher sur Google des informations très
basiques sur leurs propres bibliothèques
parce que notre cerveau n'est pas fiable
et que les choses changent. Et si vous voulez avoir
les dernières informations, il n'y a aucune honte à
regarder vers le haut une fois que
vous avez fini de faire
des recherches
sur Google, de consulter StackOverflow, copier une sorte de code. Tu t'en porteras mieux. Maintenant, tous ces outils
pour trouver de l'aide et Python et vous aider vous-même. Et cela vous donne
les outils nécessaires. Plongez dans
la science des données avec le vélo.
6. 10 Chargement d'introduction nouveau: Les deux premières classes
intégreront des données en Python. Ainsi, que vous ayez des données dans les tables de votre
base de données SQL, elles ne correspondent pas. Nous allons le mettre en Python
dans un outil appelé pandas, qui est essentiellement
d'excellents stéroïdes en Python. Et passons à vos données.
7. 11 Charger des fichiers Excel et CSV neufs: C'est la première classe
où nous avons abordé le code. Ouvrez donc votre bloc-notes Jupyter si vous souhaitez coder en même temps. Nous allons commencer par le chargement des données. J'ai donc fourni
des fichiers supplémentaires et des polices de valeurs
CSV séparées par des virgules et nous allons commencer à les charger. Nous pourrions écrire ceci à la
main et je vais également vous montrer, sur un exemple beaucoup plus simple comment écrire quelque chose
comme ça à la main. Mais heureusement, Python
ayant maintenant plus de 20 ans, de nombreuses personnes ont déjà beaucoup
réfléchi à l'extension des fonctionnalités de Python. Nous pouvons donc utiliser ces
pandas ici et étendre Python pour charger
des données en Python. Donc, ce que nous faisons ici, c'est
simplement importer des pandas. Et cela serait suffisant,
car nous
utiliserons beaucoup de Pandas. Habituellement, nous lui donnons un raccourci
pour désigner une sorte d'alias. La Pd est une maladie très courante
que beaucoup de gens utilisent. Ensuite, nous exécutons la cellule et nous avons maintenant des
pandas et du Python. Et pour importer ou lire des données, nous pouvons effectuer le DP, ne pas lire, appuyer sur la touche Tab pour voir les différentes manières de charger des données dans Pandas. Dans ce cours,
nous
examinerons les plus courants que j'ai découverts dans mon travail
de data scientist. Mais je vais aussi vous montrer comment
trouver les autres. Parce que si nous ne
savons pas vraiment ce que nous faisons, nous pouvons toujours consulter la documentation
sur les pandas. Bien que nous puissions voir
tout ce que nous
pouvons faire avec les pandas, puisque nous avons déjà lu
X0 ici, nous pouvons également appuyer sur Shift Tab et
examiner cette signature. Et vous verrez que cela
ressemble étrangement à la documentation,
car Pandas et tout Python sont livrés avec leur
documentation intégrée. Il est donc très autonome
et très convivial. Donc, au début, il suffit de donner le nom du fichier où se trouve
réellement le fichier. Et ce sera une
barre oblique contenant le point XLSX, le nouveau type de fichier supplémentaire. Et le chargement s'exécutera. Et nous voyons que nous avons maintenant toutes
ces données dans Pandas. Nous ne l'avons pas enregistré dans
une variable pour le moment. Mais ce que nous faisons habituellement si nous
n'avons qu'un ensemble de données temporaire, nous l'appelons df. Parce qu'en Python, cela
s'appelle un DataFrame. Il s'agit donc essentiellement d'une représentation XO d'une
seule feuille dans votre Python. Parce que nous voulons y jeter un
œil. Ensuite. Nous allons simplement appeler directement
notre DataFrame et examiner les cinq premières lignes. Nous pouvons voir ici les
en-têtes et nos données. Les fichiers CSV sont légèrement différents car
les fichiers CSV sont des données brutes. Jetons un coup d'œil
ici. J'ai les données. Nous pouvons en fait examiner valeurs
CSV séparées par des virgules dans bloc-notes, car ce
n'est que du texte et c'est fantastique pour partager
des données entre systèmes, surtout si vous avez des
programmeurs qui ne le sont pas disposer de Microsoft Office. C'est le meilleur
moyen de partager des données. Nous lisons le fichier CSV et nous pouvons simplement lui redonner
le nom du fichier. Donc, logement point CSV. Et ça devrait, disons
ça directement sur celui-ci. Cela devrait nous donner les
mêmes données et nous pouvons voir qu'elles sont identiques. Mais je veux te montrer un truc
vraiment cool. Si, vous savez que certaines
données sont en ligne, comme cet ensemble de données d'
articles de taille moyenne sur Free Code Camp. Il peut en fait colorier un PDF, lire un fichier CSV et simplement
lui donner l'URL. Mais cela va échouer. Je vais vous montrer que nous devons apprendre que les flèches et le
Python, c'est bien. C'est tout à fait normal
de faire des erreurs. Lisez la dernière ligne, transmettez une erreur lors de la tokenisation des données. C'est comme s'attendre à
quelque chose de différent. Et vous pouvez déjà voir ici
que ce n'est pas un CSV, c'est un fichier TSV. Donc, quelqu'un
séparait cela par des onglets. Et pour placer des
onglets, utilisez cette barre oblique inverse comme séparateur. Et nous pouvons importer
ces données directement depuis Internet en
indiquant simplement le mot clé correct. Et c'est quelque chose de
vraiment important à voir, vraiment important à apprendre. Si nous
y jetons un coup d'œil, nous pouvons utiliser de nombreux mots-clés
. Ces mots-clés sont extrêmement utiles et
nettoient déjà vos données. Vous pouvez voir ici qu' il existe quelque chose qui s'appelle NaN. Ce n'est pas un chiffre
que nous devons nettoyer plus tard en
le chargeant Nous pouvons déjà
examiner des questions comme voulons-nous éviter les lignes blanches ? Donc c'est vrai,
pandas a une
solution très conviviale si vous voulez
expérimenter celui-ci. Je laisserai cela dans
la section des exercices. Et vous pouvez vérifier si vous
pouvez déjà le nettoyer. Certaines mamans disposeront également
d'une section dédiée aux données
de nettoyage ultérieurement. Le chargement de données en
Python avec des pandas est extrêmement facile. Essayez-le avec vos propres données. Si vous avez un fichier XL
qui traîne sur votre ordinateur, souvenez-vous que tout cela se
trouve sur votre ordinateur. Rien ne sort. Vous pouvez donc simplement imprimer des
points, récupérer vos
données et jouer avec elles. Dans ce cours, nous avons travaillé sur le
chargement de tableaux Excel et
de valeurs de fichiers
séparées par des virgules et nous
avons même examiné comment charger
des données depuis Internet. prochain cours, nous examinerons les tables SQL. Quelques nano fonctionnent avec eux. N'hésitez pas à l'ignorer. Le prochain cours
sera ce trajet pour vous.
8. 12 Chargement de données à partir de SQL nouveau: Les bases de données SQL sont
un excellent moyen stocker des données et
de les mettre à la disposition des data scientists qui travaillent avec
SQL jusqu'au bout. Il y a des cours complets sur Skillshare vers lesquels je vais créer un lien. Vous pouvez également les trouver ici,
dans le carnet. Cependant, il est bon d'avoir
une vue d'ensemble, car il est très facile de charger les données
une fois que vous savez comment le faire. Et si vous travaillez avec SQL, cela vous sera très
utile. La plupart des entreprises ne
stockent pas ces données dans des fichiers
Excel car le Mexique
est copié, il est copié. Et tout à coup, vous vous
retrouvez avec une version finale, finale. Et c'est probablement quelque part sur le PC de
quelqu'un, peut-être sur un ordinateur portable. Au lieu de cela. De nombreux sites disposent de bases de données. Sur un serveur, cette base de données qui contient toutes les
informations dont vous avez besoin. Généralement, cette méthode d'accès aux
informations est appelée SQL, abréviation de
Structured Query Language. C'est un langage en soi. Il serait trop difficile d'
expliquer cela dans ce cours. Si vous souhaitez en savoir plus, il existe des cours sur Skillshare et des
ressources comme celle-ci, qui sont liées, où
vous pouvez l'essayer, faire les exercices étape par étape, apprendre à monter un requête, obtenez des données
en Python de manière avancée. Il suffit absolument d'importer à
nouveau des pandas. Ensuite, nous pouvons y jeter un œil et
il y a du SQL ici. Ce que vous pouvez faire ici, c'est
en fait trois choses différentes. Il y en a une générale, SQL, il y a une requête SQL. Il y a un tableau contenant le code SQL
dans la documentation. C'est généralement un très
bon point de départ. Veillez à ce qu'il existe
deux types de déchets. Si nous faisons défiler l'écran vers le bas, nous pouvons voir qu'
il existe différence entre la table SQL et la requête SQL. Jetons un coup d'œil à la
requête et cela nécessite que vous écriviez une requête SQL. Certains d'entre eux peuvent être très simples et vous faire gagner beaucoup de place. Donc, si vous avez une grande
base de données, la table SQL charge
simplement la
table entière depuis votre serveur. En plus de Pandas, nous voulons en fait
importer de l'alchimie SQL. Et puis en dessous, cela
créera la connexion. C'est ce que l'on appelle un moteur. Et voyons
ce dont nous avons besoin ici. Donc, si vous avez une base de données
Postgres SQL, nous pouvons simplement la copier. Il doit s'agir de l'
emplacement de votre base de données. Ici. Nous allons lire le tableau des suites
juste pour vous faciliter la tâche. Et maintenant, si vous aviez
votre base de données SQL, vous pouvez mettre votre
nom ici, par exemple sales comme connexion ici. Si nous voulions réellement
utiliser le langage SQL, nous devrions
utiliser read SQL query. Et cela signifie que dans ce cas
, nous devons définir une requête qui entre
dans notre connexion. Cette requête peut donc être
très, très simple. Bien entendu, cette requête peut être
aussi compliquée que vous le souhaitez. Nous prenons donc ici
la chaîne multiligne de Python. Nous pouvons donc dire Sélectionnez les clients et le total des dépenses liées aux ventes. Et
comme il s'agit d'une table très grande, nous voulons la limiter à 1 000 entrées, car nous voulons
juste avoir un premier aperçu
et ne pas surcharger notre ordinateur. En plus de cela. Nous voulons
dire que nous sommes en 2019. Nous pouvons maintenant copier
tout cela ici et sélectionner nos données dans notre base de données imaginaire ici même. L'utilisation d'une requête SQL est,
espérons-le, une question de cette
classe. Sql peut être assez simple. Vous pouvez simplement obtenir la table à partir de la base de données et
l'utiliser dans Pandas. Maintenant, le cours suivant
va être de savoir comment charger n'importe quel type de données. Et nous allons montrer que les pandas rendent les choses un
peu plus faciles.
9. 13 Charger tout fichier nouveau: Parfois, vous avez
des données étranges et je suis géophysicien, je travaille avec des données sismiques. Et il existe des packages
qui peuvent charger des données
sismiques en Python,
tout comme nos fichiers CSV. Et dans ce cours, nous verrons comment charger des données et comment les
rendre disponibles. En Python, pandas est idéal pour les tables et les
données structurées de ce type. Mais parfois, nous avons
différents formats de données, comme un simple fichier texte,
des images ou des formats propriétaires. Alors, lorsque j'étais en
cours de mentorat à la conférence américaine
Python, quelqu'un m'a posé des questions sur ce format très spécifique avec lequel ils travaillent. La première chose que j'
ai faite, c'est de l'avoir googlé. Il y avait une
bibliothèque Python pour cela, et je vais vous montrer comment l'utiliser. bibliothèques Python
les plus courantes utilisent le fichier texte. Contrairement au
fichier texte que nous avons ici, il s'agit d'un fichier CSV, mais il s'agit
toujours d'un fichier texte. Comme vous pouvez le constater,
ce que nous disons est ouvert et nous devons ensuite lui donner l'endroit où il se
trouve et le nom. Passons maintenant à la tabulation. Il existe différents
modes pour se lever. Le mode c'est R. Voyons ce que
ces modes signifient réellement car vous pouvez ouvrir des
fichiers sur n'importe quel ordinateur, mais la plupart des programmes
le font pour vous. Et en mode lecture, en mode droit et en mode ajout. Vous devez donc vous assurer que si vous lisez des données que
vous ne souhaitez pas modifier, celles-ci sont définies sur r. Soyons explicites. Ensuite, nous donnons un nom à ce fichier que nous avons
ouvert pour pouvoir
simplement appeler ce logement. Et Python, les espaces blancs
sont très importants. Nous avons donc maintenant un bloc
que je vais archiver. Et dans ce bloc, par exemple, nous pouvons dire que les données sont
égales à la lecture par point, et cela lit nos données. Maintenant, si nous sortons de
ce bloc, nous pouvons réellement travailler avec notre variable sans
avoir le fichier ouvert. Et c'est
extrêmement important. Beaucoup de personnes novices programmation ne le savent pas, mais la plupart des fichiers
ne peuvent être ouverts que
par une seule personne et un seul
programme à la fois. Si vous essayez d'accéder
aux mêmes données,
elles seront cassées. Il est donc très important
d'ouvrir vos données, enregistrer dans des variables
chargées dans Python, puis de tout fermer. Donc, si nous devons adhérer
à l'état de variable et
sortir de ce bloc, Paul exécute simplement ceci
et passe à la cellule suivante. Nous pouvons faire des choses avec Data Bike, regarder ce qu'il y a dans les données. Et nous pouvons voir
ici qu'il s'agit d'un fichier texte
sans ouvrir le fichier, ce qui est un moyen très simple
et accessible de le faire. Nous pouvons également jeter un œil à Housing en tant que gestionnaire de
fichiers ici. Et nous pouvons voir que cela nous indique si les logements
sont fermés ou non. Donc, ici, nous pouvons voir qu'une fois ce
bloc exécuté, il sera fermé. Voyons à quoi
cela ressemble à l'intérieur. Donc, à l'intérieur,
ce n'est pas fermé. Cela signifie que nous pouvons lire
différentes lignes et tout ça. Cependant, au lieu de simplement utiliser
le Python open standard, nous pouvons utiliser de nombreuses bibliothèques
différentes qui nous
fournissent également des gestionnaires. Je peux donc utiliser quelque chose
comme « je suis malade ». Pourquoi IO, dont vous n'avez probablement
jamais entendu parler auparavant. Et c'est pourquoi je le veux Je veux vous le
montrer très rapidement, ce qui est juste un moyen
de l'importer. Après l'avoir importé, nous pouvons
dire avec segue I 0 point ouvert, lui donner le fichier, le nommer S, puis charger toutes les données
physiques dans Python. Et après leur
système, le dossier, encore
une fois, s'est
fermé et était en sécurité. Donc,
c'est vraiment une façon très générale de charger vos
données dans Python. Et comme vous pouvez le voir ici, notre fichier CSV n'est pas
aussi beau que dans Pandas. Mais avec un peu de traitement, nous pouvons vraiment le faire
paraître aussi beau que des
pandas afin de le diviser, par exemple sur ces nouvelles lignes, ce qui est une barre oblique inverse n. Et nous pouvons voir que
cela donne déjà utilise toutes ces lignes ici. Et nous pouvons continuer et
séparer chacune de ces lignes par une virgule cause de cette virgule
séparée par une virgule et ainsi de suite. Mais c'est pourquoi je
vous ai d'abord montré des pandas. Parce que c'est tellement plus facile. Et je trouve que c'est très agréable passer d'abord à ces
abstractions de haut niveau, mais aussi de voir comment faire
le travail et le verso. Dans cette classe, nous avons
eu un aperçu de ce que fait
l'instruction width L Can et de la façon de
charger tout type de recherche de
données pour les chargeurs de données
dans les formats étranges que nous avons parfois. Et je pense que nous avons certainement vu à quel point
Pandas nous facilite car diviser un fichier CSV comme Vout est très fastidieux. Et puis nettoyer les données comme des valeurs
manquantes est encore pire. Et le prochain cours portera sur
d'énormes ensembles de données. Alors, que se passe-t-il lorsque
nos fichiers deviennent si volumineux qu'ils ne
rentrent plus dans la mémoire, comment charger ces données
et comment pouvons-nous les gérer ?
10. 14 données énormes nouvelles: Il est assez courant que,
surtout dans les grandes entreprises, vos ensembles de données
ne rentrent plus
dans la
mémoire de votre ordinateur. Ou que si vous faites
des calculs avec eux et le calcul prend
tellement de temps que
vous empruntez et, dans certains cas, vous prendrez plus l'Univers existe
déjà. Cela signifie donc que nous devons trouver des moyens de travailler avec les données afin de les réduire et
de les réduire en mémoire. Nous en reparlerons. Mais aussi comment échantillonner les données. Vous avez donc un sous-ensemble, car il est
souvent valable
de simplement prélever un échantillon,
un
échantillon représentatif de mégadonnées, puis de faire des calculs
et faire de la science des données à ce sujet. Et c'est une question dans laquelle
nous abordons. Nous importerons des pandas au format pdf, puis nous
chargerons nos données dans le DataFrame df avec un fichier CSV lu. Nous allons le faire
explicitement maintenant, car nous pourrons le modifier ultérieurement pour voir les différences entre
les
différentes procédures de chargement et la manière dont nous pouvons
optimiser notre chargement. Cela nous donne l'empreinte
mémoire suivante de notre DataFrame chargé,
qui
devra dire que
deep est égal à vrai car que
deep est égal à vrai car
certains objets doivent être mesurés. Vous voyez ici que proximité de
l'océan est bien plus importante que
tout le reste. Et c'est parce que la
proximité de l'océan contient des chaînes de données. Nous savons donc que c'est catégorique. Nous allons jeter un coup d'œil à
la tête très rapidement. Juste ici. C'est catégorique et
tout le reste n'est que des chiffres. Les chiffres sont très efficaces, mais s'ils contiennent des
chaînes peuvent nécessiter beaucoup de
mémoire. Si nous jetons un coup d'
œil aux types profonds. Donc, en ce qui concerne les types de données,
nous voyons qu'à l'
heure actuelle , la proximité de l'océan n'
est qu'un objet. Tout le reste est
flottant, donc un chiffre. Mais c'est l'
objet qui le rend si volumineux en mémoire,
car un objet, nous pouvons modifier les types de données de notre DataFrame lors de son
chargement, le fera en disant df de proximité de l'océan parce que nous voulons
modifier la proximité de l'océan. Copiez tout cela
et nous remplacerons notre proximité de l'océan
avec ce point comme type de texte. Et nous pouvons utiliser un type de données spécial
dont disposent les
pandas, appelé
catégorique ou catégorie. Quoi ? Cela améliore notre utilisation de la mémoire. Profond est synonyme de vrai. Nous ne voyons donc que l'
empreinte mémoire des colonnes. Et nous pouvons constater que cela
améliore notre utilisation de la mémoire de la proximité de
l'océan de manière significative, même deçà de l'utilisation des chiffres. Et c'est ainsi que vous pouvez optimiser
votre base de données de manière simple. Maintenant, un problème évident
est que nous
avons déjà ces données en mémoire
et que nous les modifions ensuite. L'empreinte mémoire
de ce système est donc toujours importante. Nous ne faisons que le réduire
par la suite. Ce que nous pouvons faire, c'est modifier les
types de données en cas de faible temps. Jetons donc un coup d'
œil à la docstring. Et on y va. C'est du type D. Et nous allons attribuer un dictionnaire où la clé est notre colonne. Nous utiliserons à nouveau la proximité de l'océan. Et la valeur sera
le type de données. Cela signifie que vous pouvez
en utiliser autant que vous le souhaitez. J'y ai fait une faute de frappe et une faute de frappe
et un boîtier qui va disparaître. Et en utilisant cela, vous pouvez également
attribuer
deux nombres au type entier et réellement modifier votre chargement au moment du chargement. Donc d de petit, examinons l'empreinte
mémoire de celui-ci. Donc, utilisation d'une faible
consommation de mémoire, profonde est égale à vraie. Et nous pouvons voir ici
que cela a automatiquement modifié
notre empreinte mémoire du DataFrame au moment
du
chargement . Et si, au lieu de charger l'intégralité du DataFrame
avec toutes les colonnes toutes les fonctionnalités
disponibles, nous choisissions ne
prendre qu'un sous-ensemble
de colonnes. Peut-être que nous n'avons pas besoin de tout. Peut-être que nous n'avons pas besoin du prix médian de l'
immobilier dans celui-ci. Nous allons donc définir un nouveau DataFrame et charger les
données comme toujours. Mais dans ce cas, nous allons définir les colonnes. Ce sont donc des colonnes. Et dans ce cas,
nous aurons besoin d'une liste. Jetons un coup d'œil, utilisons la
longitude et la latitude. Et nous allons, nous pourrions aussi utiliser le nombre total de chambres ou
quelque chose comme ça, mais nous utiliserons simplement la proximité de
l'océan comme avant. Il suffit de le coller dans le fichier édité. Il s'agit donc en fait des noms de
colonnes par
entrée de liste et ajoutez la proximité de l'océan. Maintenant, cela va mal
tourner et je veux que vous appreniez qu'il est tout
à fait
normal de faire des erreurs ici. Parce qu'en Python,
les erreurs ne coûtent rien. Nous pouvons voir cette erreur de type. Il indique qu'il ne
reconnaît aucun des mots clés. Et c'est parce que j'utilise des
colonnes au lieu d'utiliser des Coles. Honnêtement, je ne
me souviens pas de tous les mots-clés
parce qu'il y en a tellement, mais c'est pourquoi nous avons le
docstring et corrigé. En regardant le DataFrame, nous n'avons chargé que la longitude, latitude et la proximité osha. Une autre très bonne façon de
gagner de la place lors du chargement. De cette façon, nous pouvons charger un grand nombre de lignes avec seulement quelques colonnes. Parfois, le problème ne vient pas vraiment du chargement des données. Toutes les données s'
insèrent dans notre DataFrame. Mais le problème, c'est de
faire le calcul. Peut-être que nous avons une
fonction très coûteuse, complot
très coûteux
que nous voulons réaliser. Nous devrons donc
échantillonner nos données. Et Pandas nous
facilite la tâche. échantillon de
méthode est disponible pour chaque DataFrame. Vous venez de fournir un numéro
qui vous donne
autant de lignes que vous le souhaitez dans votre
DataFrame. Dans ce cas, jetons un coup d'
œil à la docstring. Nous pouvons définir un nombre ou une
fraction du DataFrame. Et comme il s'agit d'un processus
d'échantillonnage stochastique, vous pouvez fournir
cet état aléatoire, ce qui est très important
si vous souhaitez recréer votre analyse et la fournir à un autre collègue ou à d'
autres données scientifique. Ensuite, vous devrez saisir l'
état aléatoire à cet endroit. Nous pouvons donc voir ici que cela change à chaque fois que
j'exécute la cellule. Mais si nous définissons l'
état aléatoire sur un nombre spécifié, il peut s'agir de n'importe quel entier
que vous souhaitez. J'aime 42. Et voyez juste ici
que ce nombre est 2048. Et si je l'exécute à nouveau, ce nombre ne changera pas. C'est donc une très bonne
chose à laquelle il faut s'habituer. Si vous avez un processus aléatoire. Ce processus aléatoire est excellent lorsque vous
l'utilisez en production. Mais si vous voulez
recréer quelque chose, vous devez corriger ce
processus aléatoire afin qu'il soit réutilisable. Ce que je fais souvent, c'est aller dans la toute première cellule
où j'importe toutes mes bibliothèques et j'ai fixé l'état aléatoire et
là en tant que variable. Et je fournis simplement cette variable
dans les processus stochastiques. Cela le rend un
peu plus facile et très facile à lire pour les prochains data
scientists qui comprendront cela. Mais parfois, il faut
se munir de gros outils. Nous utiliserons donc la tâche de x et
nous ne l'utiliserons pas ici, mais vous pouvez l'essayer sur le
site Web si vous essayez maintenant. Et le crépuscule est essentiellement
sous forme de DataFrames paresseux, sorte qu'il ne charge pas l'
intégralité du DataFrame en mémoire lorsque vous pointez du doigt la
trame de données ou les données. Mais il sait où il se trouve et quand vous
voulez l'exécuter, il le fera
de manière très intelligente, même
sur de grands clusters. Dans ce cours, nous
avons examiné comment
minimiser l'
empreinte mémoire des données. Alors, comment charger moins de données ou comment charger
des données de manière plus efficace. Je vous ai également montré un rapide aperçu
de certains outils que vous pouvez utiliser si vous souhaitez utiliser des DataFrames
paresseux, par exemple DataFrames qui sont
au repos lorsque vous
les chargez , puis lorsque vous effectuez le calcul et
que ce morceau, c'est bon. Il s'agit donc d'un moyen intelligent de gérer
des données volumineuses au repos. la prochaine partie,
nous verrons comment
combiner différentes sources de données. Alors comment nous pouvons vraiment nous
épanouir et obtenir différentes sources d'informations
pour réellement faire de la science des données.
11. 15 Combiner des sources de données nouvelles: L'impact le plus important
provient réellement de la combinaison
des sources de données. Peut-être avez-vous
des données provenant des ventes et publicité et vous
combinez ces données pour générer de nouvelles informations. Dans ce cours,
nous verrons comment fusionner des données, réunir des données et ajouter de nouvelles données
à notre DataFrame. Comme toujours, nous
importerons des pandas au format pdf et enregistrerons notre DataFrame au format pdf. Nous allons maintenant séparer les données géographiques avec la
latitude, longitude et la proximité de l'
océan dans le trait de soulignement df. Vas-y, jetons un
coup d'œil à la tête. Et nous pouvons voir que cela représente
trois colonnes, exactement comme nous l'avons défini. Et maintenant, nous pouvons nous y joindre. Joindre des sources de données
signifie que nous voulons ajouter une colonne à notre DataFrame. Nous allons donc utiliser notre df
underscore GO et y joindre une colonne du jeu de données
d'origine. Techniquement, cela revient à
tricher un peu, mais cela permet simplement de montrer
plus facilement comment nous procédons. Eh bien, choisissez le prix médian de l'
immobilier pour celui-ci. Jetons un coup d'œil à
l'ensemble de la base de données. Et nous pouvons le mettre dans notre
G. Nous pouvons voir comment il
contient désormais le
Geo DataFrame d'origine joint à la colonne valeur
médiane de la maison. C'est un peu
plus facile que d'habitude. Normalement, vous n'avez pas
toutes les colonnes disponibles, mais vous verrez
comment fusionner des DataFrames. Maintenant, bien que vous puissiez être un
peu plus précis, créons d'
abord un DataFrame de prix avec la longitude, latitude et le prix
médian de l'immobilier. Et ce que nous allons faire maintenant, premièrement, fusionner les deux
en une seule base de données. Nous prenons donc le Geo DataFrame
appelé geo point merge. Jetons un coup d'
œil à la docstring, comment procéder réellement. Nous voulons donc un DataFrame gauche
et un DataFrame droit. Et nous créons tout ce
que nous définissons comme une méthode. Comment les rejoindre ? La méthode interne signifie
que nous ne conservons que
les données disponibles
à gauche et à droite. Jetons un coup d'œil à la partie gauche et à la
droite du DataFrame. La jointure naturelle
est la jointure intérieure. Ainsi, seules les lignes et
les colonnes des deux DataFrames sont
présentes, elles sont là. Celui de gauche représente tout ce qui vient de la
gauche et uniquement celui de
droite correspondant. Et la jointure droite correspond à
tout ce qui se trouve entre la droite
et la gauche. Tout est dans la jointure extérieure. Nous le remplissons donc
avec un grand nombre de noms. Et nous devons définir
la colonne sur laquelle les
DataFrame gauche et droite sont fusionnées. Nous allons donc prendre de
la latitude dans ce cas. Nous avons donc quelque chose sur lequel nous pouvons réellement combiner
nos ensembles de données. Si vous avez vos sources de données, données de
gauche et de droite doivent
être identiques, mais elles peuvent avoir des noms
complètement différents ou fonctionner très bien. Vous pouvez voir que
tout est maintenant fusionné. Nous pouvons également
concaténer nos données. Cela signifie donc que nous utiliserons la commande pdpoint
concat pour la concaténation et fournirons les DataFrames que nous voulons combiner dans
un DataFrame plus grand. Maintenant, dans ce cas, nous en avons deux. Nous pouvons en combiner
autant que nous le voulons. Et à l'heure actuelle, vous
voyez un bon moyen d'ajouter nouvelles données ou de nouveaux points de données
aux lignes du DataFrame. Partout où vous n'avez pas de
données, des NaN sont fournis. Toutefois, comme nous
voulons joindre les données, nous fournissons une jointure et l'axe. Et vous pouvez voir
que tout est désormais réuni dans une seule grande base de données. Au cours de ce cours, nous avons eu
un aperçu de la manière
de combiner différentes sources de
données et générer une seule grande base de données afin de
pouvoir effectuer une analyse combinée. C'est la fin de notre didacticiel sur le chargement
des données. Et dans le prochain chapitre, nous
examinerons le nettoyage des données. Probablement la
partie la plus importante de la science des données.
12. 20 données nettoyage intro nouveau: Après avoir chargé les données, nous devons traiter
les données elles-mêmes. Et n'importe quel spécialiste de la datation et des données
vous dira que 90 % de leur travail est effectué
lors de l'étape de nettoyage. Si vous ne nettoyez pas soigneusement
vos données, vous obtiendrez de mauvais résultats. Et c'est en quelque sorte la raison pour laquelle
nous passons beaucoup de temps à examiner les
différentes valeurs manquantes, aberrantes et
à déterminer comment les éliminer. Et comment vraiment améliorer
notre jeu de données après le chargement. Parce que parfois les
mesures sont erronées, parfois les données
disparaissent ou sont corrompues, et parfois nous avons
juste quelqu'un saisit les données qui ne prête pas
vraiment attention. Cela n'a pas d'importance. Nous disposons des données
dont nous disposons et nous devons les améliorer afin de pouvoir prendre de
bonnes décisions en fonction des données.
13. 21 données manquantes nouvelles: La première étape
du processus de nettoyage des données pour moi consiste
généralement
à examiner les données manquantes. Les données manquantes peuvent provenir
de différentes sources. Peut-être que ces données sont disponibles, peut-être qu'elles ont été perdues, peut-être qu'elles ont été corrompues. Et généralement, ce n'est pas un problème. Nous pouvons renseigner ces données. Mais écoute-moi. Je pense que les données manquantes
sont souvent très instructives en soi. Nous pouvons donc remplir les données avec une moyenne ou
quelque chose comme ça, je vais vous montrer
comment procéder. Souvent,
il est beaucoup plus instructif de préserver
les
informations manquantes que de les renseigner. Par exemple, si vous avez une boutique de vêtements
en ligne, si quelqu'un n'a jamais cliqué
sur la catégorie bébé, il n'a probablement pas d'enfant. Et c'est une grande quantité d'
informations que vous pouvez simplement tirer de cette
absence d'informations. Comme d'habitude, nous allons
importer des pandas au format pdf. Et cette fois, nous allons
importer le numéro manquant, la bibliothèque au format MS, NO. Et nous lirons les données
dans notre DataFrame TF. Missing Number est cette
fantastique bibliothèque qui permet visualiser les valeurs manquantes d'une
manière très agréable. Ainsi, lorsque nous examinons le F, nous pouvons voir que certaines
valeurs sont manquantes au total des chambres . Tout le reste
semble aller très bien. Et lorsque nous
examinons le graphique à barres, nous pouvons constater que pour vraiment
voir quelle mesure
cette bibliothèque fonctionne bien,
nous devons examiner un autre ensemble de données et
il existe un exemple données dans numéros manquants
qui vont maintenant être chargés. À voir. Nous chargerons ces données depuis Quilt. Vous l'avez également installé. Mais plus bas dans l'exercice, vous pouvez voir comment obtenir ces données. Nous chargerons ces données de collision à New
York. Ce sont les collisions entre véhicules que nous aborderons
dans notre variable. Et ces données contiennent beaucoup
plus de valeurs manquantes. Nous allons y jeter un coup d'œil. Il y a beaucoup de colonnes très
différentes et nous pouvons déjà voir qu'il y
a beaucoup de noms à explorer avec des chiffres
manquants. Nous allons remplacer toutes
les chaînes nan par la valeur NumPy np point nan. Numpy est cette bibliothèque numérique
Python qui fournit de nombreuses fonctionnalités. Et np point nan n'est qu'un type de données natif où aucun nombre ne peut être
représenté dans nos données. C'est la même chose
que fait NumPy quand vous, c'est la même
chose que font les pandas quand vous lui dites de,
euh, de donner des valeurs nan. Dans mes données. Souvent, cela
peut aller de -9,9 à 5. Mais ça peut vraiment être n'importe quoi. Et vous pouvez le
spécifier comme vous le souhaitez, qui est ensuite remplacé par NAM. Vous savez donc que c'est
une valeur manquante. Jetons donc un coup d'œil à oui, je laisserai ça pour plus tard. Jetons un coup d'œil à la matrice. Nous voyons qu'il y a plus de
colonnes ici et que les colonnes sont beaucoup
plus hétérogènes. Nous avons donc des colonnes avec
presque toutes les valeurs manquantes. Et sur le côté, nous pouvons également voir quelle ligne contient le plus de valeurs remplies et quelle ligne contient le moins de valeurs est remplie. Désolée que ce soit si bas. Jetons un coup d'œil
au graphique à barres. Et nous pouvons voir
quelles colonnes contiennent le plus de données remplies et lesquelles contiennent le
plus de données manquantes. Aujourd'hui, le dendrogramme est
un outil fantastique pour voir les relations entre
les données manquantes. Plus le
branchement est proche de zéro, plus
la corrélation entre les nombres manquants
est élevée. Cela signifie donc qu'en haut à droite, vous pouvez voir de nombreuses valeurs
manquantes. Il s'agit d'un moyen simple de compter toutes les valeurs
manquantes dans ce DataFrame. Revenons à
notre DataFrame d'origine, les prix de l'immobilier, où nous pouvons également simplement compter
les nombres nuls. Et nous pouvons voir que le
nombre total de chambres est le seul à avoir des valeurs
manquantes avec 207. Ainsi, en plus d'
examiner les connaissances manquantes, nous pouvons en extraire des
valeurs numériques. Examinons le
nombre total de chambres ici et ajoutons une nouvelle colonne
à notre DataFrame, qui indique le nombre total de
chambres corrigé. Parce que je n'aime pas
remplacer les données d'origine. Je préfère ajouter une nouvelle
colonne à mon jeu de données. Et ici, nous disons, remplissez nos valeurs manquantes avec la valeur médiane
de notre chambre totale. Comme
le nombre total de chambres
est pris en compte ,
la valeur moyenne, n'a aucun sens,
sera plutôt
remplie par la
valeur la plus courante dans les chambres à coucher. On y va. Ce serait la moyenne
et voici la médiane. Heureusement, Pandas propose toutes
ces méthodes Il est
donc très facile de les
remplacer. Vous les remplacerez sur
place cette fois, mais vous devez faire
attention à cela. Ce n'est parfois pas la
meilleure pratique de le faire. Et maintenant, nous pouvons voir que le total des
chambres corrigées ne comporte aucune valeur
manquante. Lorsque nous
examinons le nombre total de chambres et nombre total de chambres
corrigés ici. On voit que ce
sont les mêmes valeurs. Les valeurs qui étaient
dépourvues de zéros, nans et
n'ont pas été modifiées. Seules les valeurs par
nan ont été remplacées. Dans ce cours, nous avons
examiné les chiffres manquants. Alors, que se passe-t-il lorsque
des données sont manquantes ? Pouvons-nous trouver des relations
entre les valeurs manquantes ? Donc, juste quelques données et
disparaissent alors que d'autres données
disparaissent également Y a-t-il un lien entre les nombres
manquants eux-mêmes ? Dans le prochain cours, nous examinerons le formatage de nos données. Suppression également des doublons,
car il est parfois très important de ne pas avoir de
doublons dans nos données. Nous pouvons donc voir chaque point
de données par lui-même.
14. 22 mise à l'échelle et binning nouveau: Dans ce cours,
nous examinerons d'abord la
mise à l'échelle des données. C'est très important car parfois certaines de
nos fonctionnalités se
comptent par centaines et
d'autres par dizaines ou vous
pouvez ajouter des décimales. Et il
peut être très difficile de comparer ces fonctionnalités, en particulier lorsque nous créons des modèles d'apprentissage
automatique. Certains
modèles d'apprentissage automatique sont très sensibles aux facteurs d'
échelle. placer sur le
même type d'échelle numérique
peut donc être bénéfique pour créer un meilleur modèle
d'apprentissage automatique. J'introduirai chaque facteur d'
échelle ou chaque méthode de mise à
l'échelle dans la méthode elle-même afin que nous puissions l'
apprendre de manière appliquée. La deuxième partie et cette classe vont regrouper les données. Cela signifie donc attribuer des classes aux données en fonction de leur valeur numérique. Dans cet exemple, nous utiliserons valeur de
la maison et
lui attribuerons un luxe moyen, haut de gamme et bas de gamme. Juste pour pouvoir
donner un exemple de la façon dont nous
pouvons attribuer des classes
en fonction de nombres. Et vous verrez que cela
peut être fait avec différentes méthodes qui
donnent des résultats différents. Comme d'habitude, nous
importons des pandas PDF et intégrons nos données sur le logement
dans le DataFrame df. Faites un peu d'espace pour que nous
puissions réellement redimensionner nos données. Jette un coup d'œil. Nous allons commencer
par une méthode très simple. Eh bien, nous ajustons nos données
entre le minimum et le maximum de l'
ensemble de la plage de données. Je vais donc modifier le x pour
qu'il soit x moins le minimum de x divisé
par la plage. Donc un maximum de x moins
un minimum de x. Et cela nous donnera une valeur de 0 à 1. Pour l'ensemble de la colonne. Nous choisirons la valeur médiane de la
maison pour celle-ci. valeur médiane de
la maison par un point df est donc notre x. Et nous devrons la copier
plusieurs fois. Je vais donc
être paresseuse à ce sujet. X moins le minimum de x divisé par le maximum de x
moins le minimum de x. Et nous devons utiliser des parenthèses
ici pour que cela fonctionne. Parce que sinon, cela
ne ferait que diviser la partie centrale. Vous pouvez le voir ici. Notre version réduite dans la
nouvelle colonne qui nommera valeur
médiane de la maison minmax. Juste ici. Nous pouvons clairement repérer
que j'ai commis une erreur, sans ajouter de parenthèses
dans la partie supérieure. Ainsi, lorsque j'ajoute des parenthèses ici, nous pouvons voir que les données sont
en fait à une échelle de 0 à 1. Nous pouvons maintenant effectuer un véritable
regroupement des données. Plusieurs options sont également disponibles pour effectuer le binning. Nous utiliserons la première méthode, qui est la méthode pdpoint cut, laquelle vous fournissez vous-même les valeurs de la
corbeille. s'agit donc d'
intervalles discrets où
nos données sont basées sur des seuils que nous fixons en utilisant le minmax que nous venons créer, car cela
nous facilite un peu la vie. Parce qu'alors nous pouvons
simplement définir les bacs. 0-1 aura les trois quarts,
donc des quartiles. Cela signifie que nous devons
fournir cinq valeurs, incréments de
0 à 1 et 0,25. Lorsque nous l'exécutons, nous pouvons voir que les
intervalles sont fournis. Si nous ne
voulons pas nécessairement que ces intervalles
soient fournis, mais que nous leur donnions des noms. Donc, dans le cas de ces valeurs, on peut dire que la
première est assez bon marché. Ensuite, nous avons une
valeur moyenne pour les maisons, une valeur élevée pour les maisons, puis nous sommes dans
le segment du luxe. Bien entendu, vous pouvez définir ces
classes comme vous le souhaitez. Ce n'est qu'un
exemple à prendre. Rendez-le un peu plus
lisible avec les données courantes. Dans le cas contraire, nous aurons une erreur. Et maintenant, avec les étiquettes, nous pouvons voir que chaque
point de données est désormais attribué à une catégorie qui les
attribue en fait au prix
ou à la fourchette de prix dans ce cas, et qu'il est correctement
indenté. Et nous pouvons voir que nous
avons maintenant une nouvelle colonne avec nouvelles classes que nous
serions en mesure de
prévoir ultérieurement à l'aide d'un modèle
d'apprentissage automatique. La deuxième méthode que nous allons
examiner est la méthode q cap. Il s'agit d'un quanta qui est réduit. Nous pouvons donc définir le
nombre de bacs que nous voulons. Et les données seront attribuées à parts égales
à chaque casier, utilisant les données d'avant. La maison a donc une valeur minimale. Maintenant, dans le cas d'une carte de repère, peu
importe
celle que nous choisissons car la mise à l'échelle est
linéaire dans ce cas. Donc c'est très bien. Mais à titre de comparaison, nous pouvons voir que le
compartiment supérieur se situe désormais entre 0,5 et 15,1 au lieu de 0,7, 5,1. Nous pouvons attribuer les étiquettes pour le rendre
absolument comparable. Et nous pouvons voir
ici que c'est maintenant beaucoup plus luxueux et 01234
au lieu d'être aussi haut qu'avant. Cela fait donc une grande
différence et vous devez être conscient du fonctionnement de l'enfant. Ils sont vraiment très utiles. Mais oui, il
faut en être conscient. Attribuons cela à la fourchette de prix quantile et indentée correctement. Et nous avons une nouvelle rubrique avec
laquelle nous pouvons travailler. Au lieu de le faire à la main, nous pouvons utiliser une bibliothèque
d'apprentissage automatique, scikit-learn, pour utiliser
le prétraitement. Parce que comme vous l'avez vu, parfois vous faites des erreurs, oubliez
simplement les parenthèses. Et s'il se trouve déjà dans une bibliothèque utilisation vous évitera ce
genre d' erreurs
stupides qui ont très graves conséquences
si vous ne les détectez pas. De SKLearn,
abréviation de scikit-learn. Nous importerons le prétraitement
et utiliserons les
scalaires minmax afin de pouvoir le comparer à
notre mise à l' échelle min-max
que nous avons faite à la main. Nous utilisons la
transformation d'ajustement sur nos données. Et la transformation d'ajustement
estime d'abord les valeurs
, puis transforme les valeurs qu'elle possède en scalaire
minmax. Maintenant, vous êtes ici. Nous pouvons voir que, je veux dire, j'ai l'habitude de
lire ces erreurs, mais comme les erreurs, c'est grave, on
découvre rapidement ce qui s'est passé. Vous pouvez rechercher les erreurs sur Google. Et ce cas, j'ai fourni un sérieux et Scikit-learn
s'attendait à un DataFrame à la place. Jetons un coup d'œil,
comparons nos données. Et certaines valeurs sont
égales, d'autres non. Et cela semble être une erreur à
virgule flottante. Jetons-y un véritable coup d'œil. La première valeur est fausse. Nous pouvons donc simplement découper
notre gamme et y jeter un œil. Les premières valeurs sont. Et ici, nous pouvons voir que la
méthode scikit-learn fournit de moins moins de chiffres après la virgule. Maintenant, ce n'est pas mal parce que, pour être honnête, notre précision numérique n'est pas si précise. Nous pouvons donc utiliser la méthode NumPy, NumPy point all close pour comparer nos données
aux autres données. Cela signifie donc que nos erreurs seront évaluées avec une précision
numérique. Qu'ils correspondent ou non. Il suffit de recopier ça. Et nous pouvons voir, oui, qu'ils correspondent. Donc, en termes de précision numérique, ils sont en fait égaux. Au lieu du scalaire minmax, nous pouvons y jeter un œil
et il existe une tonne de
méthodes de prétraitement disponibles, comme Max App Scalar, qui normalise les transformateurs
quantiles. Mais celui qui est très bon et j'utilise assez souvent est
le détartreur standard. Et choisir cela vous
montrera que c'est le cas. En fait, utilisez exactement les mêmes
extrémités de transformation. Vous extrayez vos données à la place
du scaler standard. Si vos données comportent de nombreuses
valeurs aberrantes, vous pouvez bien utiliser le scalaire robuste de
cette classe et
examiner différentes manières de redimensionner nos données et d'attribuer des classes à nos données en
fonction des données. Nous avons donc vraiment approfondi manière de préparer les données pour l'apprentissage
automatique et ainsi de suite. Et vous verrez comment nous
procédons dans un cours ultérieur. Dans le prochain cours, nous
aborderons des sujets avancés. Nous verrons comment
créer des schémas pour nos données. Nous pouvons donc réellement
vérifier si nos données se
situent dans certaines plages ou si elles répondent
à certains critères
que nous avons dit qu'
elles devaient respecter . Si nous automatisons finalement notre
flux de travail en matière de science des données, c'est-à-dire très important
car dès le début, nous pouvons dire que nos données sont
correctes ou que nos
données ont changé par rapport à ce qu'elles étaient auparavant et qu'il
y a un problème de contrôle des données,
de contrôle qualité.
15. 23 schémas nouveaux: Dans ce cours, je n'
examinerai pas les schémas. Cela signifie que lorsque
nous chargeons nos données, nous pouvons voir si chaque colonne
que nous définissons correspond à une certaine classe prédéfinie ou certains critères prédéfinis que nous pensons que ce type de
fonctionnalité doit avoir. Et nous allons explorer
différentes manières d'y parvenir. Et à quoi penser
en faisant cela. Nous pouvons ainsi automatiser
notre
flux de travail en matière de science des données du
début à la fin. En plus de l'
importation habituelle de panneaux,
nous importerons l'ère des pandas. s'agit évidemment
d'un jeu sur les pandas, et c'est la bibliothèque
que nous utiliserons dans cet exemple pour créer des schémas et valider
notre DataFrame. Il existe d'autres bibliothèques, comme les attentes en matière de
tarifs, que
vous pouvez consulter, mais dans ce cas,
il y en a deux. Tout d'abord, nous devons
créer le schéma. Le schéma est essentiellement
notre ensemble de règles, quoi notre DataFrame est
censé ressembler. Donc, dans ce cas, nous allons utiliser un exemple simple avec proximité de
l'océan et nous allons d'abord le
faire échouer, disant que la colonne est
censée être composée de nombres entiers. Nous obtenons donc une erreur de schéma. Et nous pouvons voir ici que
cela nous indique
au final qu'il
s'attendait à un int 64. Pas embêté, mon Dieu. Si nous la remplaçons par une chaîne, nous pouvons voir que maintenant elle est validée
et que tout va bien. Maintenant, en plus du type, nous pouvons également fournir des critères
que nous voulons vérifier. Nous saisissons donc PA point check. Et comme nous voulons vérifier que la proximité de l'océan ne
comporte que quelques valeurs, nous copions ces valeurs et disons qu'elle est
censée figurer dans cette liste. Si nous validons ce schéma, nous voyons que tout va bien. Faisons en sorte qu'il échoue. Supprimez la baie la plus proche, et nous constatons qu'
il y a une erreur de schéma car elle n'a
pas pu être validée. Revenons en arrière,
faisons en sorte que cela fonctionne à nouveau. texte n'est pas la seule chose
qui doit être validée. Nous pouvons également
examiner d'autres valeurs numériques. Donc, si nous voulions vérifier la latitude se
trouve dans une certaine zone, ou la
longitude dans une certaine zone. C'est tout à fait
logique dans vous pouvez vérifier si c'est
dans certaines limites. Examinons le nombre total de pièces et vérifions qu'il s'agit d'un entier. À l'heure actuelle, ce n'est pas le cas. Mais nous pouvons bien sûr charger
les données sous forme d'entiers,
puis les valider. Donc, notre chargement
est toujours sous la forme d'un entier. Donc, ce que nous allons faire, c'est définir la colonne et dire qu'elle
doit être un entier. Maintenant, dans ce cas, nous avons
évidemment une erreur de schéma car
c'est un flottant pour le moment. Nous devons donc effectuer une
conversion de type ou recharger les données
avec un entier. Nous allons obtenir le point sur le logement au format CSV. Et nous définirons le type de données
pour le nombre total de pièces comme étant int. Le problème ici, c'est qu'
il y en a en 32 et en 64. Alors, combien de bits
y a-t-il dans un entier ? Et il faut qu'il en soit de même. Ainsi, lorsque nous examinons l'
erreur de notre schéma, nous pouvons voir qu'il s'
attend à une insécurité. Nous allons donc importer numpy et définir notre chargement comme dans 64 ici. Et notre schéma est une fois de plus validé car nous avons
maintenant fait correspondre le type. Donc, si nous procédons au chargement en 64
et au début, nous pouvons faire correspondre cela à ce que nous attendons en 64
et à notre schéma. Ce sont juste des choses à prendre
en compte lorsque vous chargez. Une autre façon de valider nos données à ce sujet à l'aide
d'une fonction lambda. Il s'agit donc d'une
fonction anonyme qui peut effectuer des vérifications
arbitraires et renvoyer des valeurs
vraies ou fausses. Dans ce cas, nous allons commencer par
l'âge médian du logement. Faites comme une colonne
et ajoutez le chèque. Malheureusement, je fais une
erreur, mais vous verrez dans une seconde. Donc P point check ajoutera
lambda n est notre variable. Et on vérifie si n est nul, tout n'est pas nul. Et nous avons une
erreur de type ici. Il est important de le noter. Il ne s'agit pas d'une erreur de schéma. Et c'est parce que j'ai oublié d'ajouter une vérification de type ici. Nous allons donc vérifier s'il y a flottement. Et maintenant, tout est à nouveau
valide car aucune des valeurs de l' âge médian
du logement n'est engourdie, vous pouvez faire échouer en
supprimant la valeur nulle. Et cela va briser notre schéma. Nous pouvons faire beaucoup d'autres tests, des
tests fonctionnels arbitraires ici, par
exemple si notre
n au carré est supérieur à zéro, ce qui devrait être le cas si
les mathématiques fonctionnent toujours. Il existe plusieurs
raisons pour lesquelles vous souhaitez valider le schéma sur les
DataFrames se trouvent sur des tables. Et il est assez courant de
les faire déjà dans des bases de données. Et c'est une bonne pratique
de le faire dans DataFrames. Il se peut que vous obteniez
simplement des données erronées ou que les données
changent d'une manière ou d'une autre. Et voici un exemple
très simple : les pourcentages. En géophysique.
Parfois, vous devez calculer la porosité, par exemple des roches, qui peut être
donnée sous forme de pourcentage 0-1, donc sous forme décimale, ou elle peut être donnée sous forme
de pourcentage, 0-100. Les deux sont parfaitement corrects, mais vous devez en prendre un pour avoir vos
calculs corrects par la suite. Créons donc
ici un DataFrame avec des pourcentages mixtes, où vous verrez qu'
il générera une erreur. Si vous validez ces données. Enregistrez ce DataFrame
et D of simple. Et nous allons créer un
schéma pour cela. Faire en sorte que toutes les données flottent de 0 à 1. Créez donc le schéma DataFrame et ajoutez des pourcentages
pour la colonne. Et en fait, la raison pour laquelle nous faisons
cet exemple, c'est pour que vous voir d'autres données
que les seules données sur le logement. Nous pouvons également le faire sur des données
physiques. Et pour vous faire
réfléchir à vos données, manière dont vous pouvez vérifier qu'
elles sont bien correctes. Nous allons donc faire un
chèque ici. Et nous pouvons vérifier que c'est
inférieur ou égal à un. Encore une fois, nous devons
valider notre DataFrame sur le schéma et nous assurer
qu'il échouera. Et ce
qui est bien, c'est que nos cas d'échec sont clairement décrits ici. Nous pourrions donc entrer manuellement
et corriger ces données. Tout ce que nous pouvons faire, c'est corriger
toutes les données dont
nous savons qu'elles sont incorrectes dans
nos pourcentages ou diminuent et faire
valider notre schéma avec les
bonnes données d'entrée. Nous allons donc obtenir toutes les
données supérieures à une et simplement les diviser
par 100. n'avons donc que des pourcentages
décimaux. Et maintenant, tout
se valide facilement. Dans ce cours, nous avons examiné différents schémas et avons examiné la manière dont nous pouvons valider nos données
dès le début. Et nous avons examiné avec un exemple
simple de pourcentages pourquoi c'est si important de le faire. Dans le prochain cours, nous aborderons
une autre stratégie avancée, qui consiste à encoder le sujet, ce qui est très important
pour l'apprentissage automatique, mais qui peut également être appliquée
de différentes manières.
16. 24 Encodage nouveau: Dans ce cours, nous
examinerons le codage de nos données. Donc, si nous avons une variable
catégorique telle que proximité de l'océan, le processus d'apprentissage
automatique ne peut
souvent pas vraiment y faire face car
il
a besoin de chiffres. Et nous verrons comment nous pouvons fournir ces chiffres de différentes
manières. Et en plus de cela, une fois que nous l'avons fait, nous pouvons également utiliser ces chiffres de différentes
manières pour segmenter nos données. Nous allons commencer par
les pandas habituels. Ensuite, nous examinerons proximité de
l'océan,
car ce sont des chaînes et nos chaînes
sont des données catégorielles. Et les systèmes d'apprentissage automatique ont
parfois des problèmes
avec l'analyse des chaînes Vous devez
donc les convertir en une
sorte de
représentation numérique. Pandas lui-même possède ce que l'
on appelle l'encodage one-hot. Et il s'agit d'un encodage factice. Donc, essentiellement, chaque
valeur des
catégories possède sa propre colonne où
elle est vraie ou fausse. Ainsi, chaque valeur
proche de la baie possède désormais un
un dans la colonne proche de la baie
et zéro et tout le reste. Fusionnons ces données avec
le DataFrame d'origine. Nous pouvons donc comparer cela à d'autres types d'encodages et voir comment
nous pouvons l'utiliser. Nous allons nous joindre à cela et
à leur DataFrame. Et nous pouvons voir juste
ici, près de la baie. Un pour la région proche de la baie, intérieur des terres est un pour l'intérieur
des terres et zéro partout ailleurs. Nous pouvons également utiliser le package
de prétraitement de scikit-learn. Scikit-Learn nous fournit
des objets encodeurs que nous pouvons utiliser. Nous allons donc attribuer cet objet
encodeur unique à de l'encre, et nous l'adapterons à nos données. L'avantage de
ces objets, c'est qu'ils ont quelques méthodes vraiment utiles que vous
pourrez désormais explorer. Adaptons cela
aux données uniques dont nous disposons à proximité de l'océan. Ensuite, découvrez comment cet encodeur
traite réellement nos données. Après avoir adapté notre encodeur
à nos valeurs uniques, nous pouvons transformer nos données. Si nous l'épelons correctement. Oui, la conversion
en tableau
nous donne un encodage unique
pour nos valeurs uniques. Donc, un seul dans chaque
colonne et chaque ligne. Nous transformons maintenant les données réelles. ne sont donc pas seulement les valeurs uniques devraient nous donner quelque chose de très similaire à ce que nous avons enregistré dans
le DataFrame. Plus haut. Convertissez-le en tableau. Nous avons donc les valeurs et
la quatrième colonne. Ici, vous pouvez voir près de la baie. Pareil. Vous vous demandez peut-être pourquoi nous faisons
ce travail redondant. Mais avec cet
objet encodeur, comme je l'ai mentionné, nous avons de très belles
choses que nous pouvons faire quelques lignes et nous pouvons utiliser le tableau que
nous avons précédemment. Je vais utiliser
NumPy parce que je suis juste plus habitué à
traiter les objets NumPy. Et nous pouvons reconvertir
ce tableau maintenant, qui n'est pas aussi facile
avec d'autres méthodes, mais comme nous avons
ce bel objet qui contient toutes ces
méthodes, nous pouvons utiliser la transformation
inverse, fournissez ce tableau à
cette transformation inverse
et récupérez les classes
réelles car l' objet se souvient de
la classe
au lieu de celle sur laquelle elle était ajustée. Et nous pouvons également obtenir toutes
les données stockées dans l'objet
sans réellement lui fournir de valeurs. Donc, c'est vraiment une bonne
façon de gérer le prétraitement. De toute évidence, nous voulons parfois autre
chose
qu'un encodage à chaud. L'encodage à chaud peut être un
peu fastidieux à utiliser. Nous allons donc examiner le
package de prétraitement et nous
verrons qu' il est étiqueté par des codeurs
d'étiquette a risers. Mais pour l'instant, nous allons simplement jeter un œil à l'encodeur ordinal. L'encodeur ordinal attribuera
un numéro à la place de la catégorie. Et cela signifie
simplement que c'est 0-1234 selon
le nombre de classes. Et vous devez faire
attention à cela, comme dans un modèle linéaire, par exemple, les chiffres comptent. Donc quatre serait supérieur à 04 serait supérieur à trois. L'encoder en
tant qu'ordinal serait donc une mauvaise
idée et un modèle linéaire. Mais pour l'instant, pour
cela, c'est suffisant, comme si nous utilisions un autre
type de modèle plus tard que tout
à fait justifié d'utiliser un encodeur ordinal. Il s'agissait de notre dernier cours et
de la section de nettoyage des données. Nous avons donc examiné comment
encoder les informations de différentes
manières. Nous pouvons donc l'utiliser dans des modèles
d'apprentissage automatique, mais également l'enregistrer dans notre DataFrame en tant qu'informations
supplémentaires. Dans le prochain cours,
nous
examinerons l'analyse exploratoire des données. procédons donc à une
analyse approfondie de nos données.
17. 30 analyses de données exploratoires nouveau: Dans ce cours, nous
examinerons les rapports
générés automatiquement. Et souvent, cela
peut suffire. Vous souhaitez avoir une
vue d'ensemble de vos données et
des informations les plus courantes sur vos données allez générer ces
rapports qui seront reproductibles pour vous sur tout type de jeu de données
dont vous disposez. Cet outil est très puissant. Ensuite,
nous verrons comment
générer nous-mêmes ces informations. Parce que parfois,
vous voulez en savoir plus que ce rapport
ne vous donne que. De plus, s'il s'
agissait uniquement de gérer cet utilitaire, la science
des données ne
serait pas payée comme ça. Eh bien, pour être honnête, c'est une bonne première étape. est très important d'avoir cette vue d'ensemble de
vos données. Mais nous devons ensuite
approfondir nos données et vraiment découvrir les petites fonctionnalités
que nous devons trouver. Nous allons importer des pandas
, puis obtenir notre DataFrame et la variable DF
S, comme nous le faisons toujours. Ensuite, nous importerons le rapport
de profil depuis la bibliothèque de
profilage des pandas. Et je suis sûr que vous
serez étonné de constater à
quel point ce processus de génération de ce rapport
est facile. Et si tu en
retires quelque chose, je pense que c'est tout. Cet utilitaire nous
éloigne vraiment de beaucoup de choses que nous
faisions habituellement manuellement dans Pandas. Et je vais vous montrer comment
procéder de toute façon, car c'est vraiment bien de comprendre ce que vous
faites réellement en arrière-plan. Mais cet outil est incroyable. Ainsi, vous générez automatiquement toutes les statistiques sur vos données. Vous voyez qu'il compte vos
variables et vous donne une vue d'ensemble
du nombre de variables numériques et du nombre de variables
catégorielles. Notez que nous n'avons fourni aucune fonctionnalité de catégorie
ni aucun changement de type de données. Et nous avons même une inflammation. Comment nos données sont distribuées. Cependant, c'est un peu difficile
à voir dans notre carnet. C'est pourquoi nous allons utiliser une version
spécifique
aux blocs-notes, savoir les widgets profile da2. Et nous avons ici un très
joli widget d'aperçu contenant les mêmes informations que le rapport de profil précédent. Nous pouvons voir
ici qu'il nous
indique même la taille et la mémoire et nous
indique quand l'analyse
a commencé et s'est terminée. Comment recréer
cette analyse. Il vous indique tous les avertissements ,
tels que des corrélations élevées et élevées. Maintenant, entre la latitude et la
longitude, c'est très bien. Valeurs manquantes. Ensuite, en ce qui concerne les variables, vous pouvez examiner la
distribution de vos données. Vous pouvez donc discuter
des résultats et
consulter l'histogramme. L'histogramme est
également petit là-haut, mais c'est vraiment agréable
de le regarder en gros. Et vous pouvez parcourir
toutes vos variables,
vérifier qu'elles contiennent des
valeurs manquantes sur la gauche, vous avez des avertissements à ce sujet. Et obtenez réellement toutes
les informations dont vous avez besoin pour avoir un
aperçu de vos données. Vérifiez s'il existe
des valeurs communes qui apparaissent tout le temps. Maintenant, c'était 55 valeurs
, n'est-ce pas Coleman ? Consultez les
valeurs minimales et maximales que vous avez. Alors, ayez une idée
de la gamme. Et si nous
examinons nos revenus, qui sont plutôt une distribution, nous pouvons également voir la distribution
dans ce domaine. Et en ce qui concerne notre caractéristique catégorique, la proximité de l'océan, nous pouvons vous voir quelque chose de
très important. L'île ne compte que cinq entrées. Nous avons donc un ensemble de données assez
déséquilibré selon
lequel il n'y a pas
beaucoup de maisons sur l'île. Ensuite, nous cliquerons dessus et examinerons les interactions. Voyez donc comment une variable
change avec l'autre. Si nous examinons la
longitude par rapport à la latitude, qui est négativement
corrélée, longitude, la même valeur est toujours positivement corrélée. Maintenant, si nous examinons valeur médiane des
logements par
rapport à tout le reste, nous pouvons vraiment voir
comment elles interagissent, comment elles ont évolué
les unes par rapport aux autres. Le nombre total de chambres par
rapport aux ménages,
par exemple, est positivement corrélé. quelque chose de bon à savoir. Et il s'agit simplement d'un outil
puissant pour réellement comparer chaque variable
à une autre. Ensuite, nous cliquerons sur
les corrélations. Et la mesure de
corrélation linéaire standard entre un et moins un
est la corrélation de Pearson. Et ici, nous pouvons voir ce que nous avons vu auparavant : une
variable avec elle-même, donc la longitude par rapport à la
longitude sera toujours une et toutes les autres valeurs devraient se
situer entre un et moins un. De cette façon, vous pouvez réellement voir les relations entre les données. Spearman est un peu
plus non linéaire, mais en général, les gens préfèrent les
bougies, deux spécimens, puis il y a pi k. Donc phi est une mesure entre
deux variables binaires, généralement sélectionnée en haut à droite pour en savoir plus à ce sujet. Jetez un œil aux valeurs manquantes. Et cela peut vous rappeler
quelque chose que nous avons fait plus tôt. Et je ne suis pas le
seul à penser que la
bibliothèque de numéros manquants est géniale, évidemment, car elle donne des informations
très similaires
sur cet onglet. Ensuite, nous pouvons également
consulter un échantillon de nos données. Enfin, conduisez à ceci. Nous pouvons prendre notre rapport de
profil et générer un rapport de
profil exploratif. Celui-ci est plus
intéressant lorsque vous
avez différents types de données. Donc, si vous avez également du texte, des
fichiers ou des images dans
votre base de données, dans votre analyse de données. Donc, ce n'est vraiment pas
applicable ici. En général, cependant,
vous pouvez constater que ce rapport passe déjà revue un grand nombre de
choses que vous souhaitez
savoir dans le cadre de votre analyse exploratoire
des données. En général, vous voulez connaître
les statistiques de vos données, les corrélations entre vos données, valeurs
manquantes dans vos données, et voir réellement l'impact des données
les unes
par rapport aux autres et quelles
données peuvent les prédire autre. Ce n'est pas grave si
c'est la seule chose que tu
retiens de ce cours. Mais en fait, voyons comment nous pouvons générer nous-mêmes ce
type d'informations. Dans les prochains cours. Je vous montre rapidement
comment le mettre dans un fichier. Vous avez donc un point de profil dans un
fichier, puis vous lui donnez un nom. Ensuite, vous obtenez ce
magnifique site Web lequel vous pouvez cliquer et le partager
avec vos collègues où ils pourront consulter
votre analyse. Il indiquera que c'est profil de l'
apprenti ou dans le
rapport, et c'est bien. Ne vous contentez pas de
l'utiliser, utilisez-le comme
point de départ pour effectuer une analyse plus approfondie et inspecter
réellement vos données. Mais cela demande
beaucoup de travail par rapport à notre travail quotidien en matière
de science
des données.
18. 31 Exploration visuelle nouveau: Pour EDA, j'aimerais d'
abord examiner les intrigues. Nous allons donc examiner
les visualisations qui nous permettent de comprendre
intuitivement
les relations entre les données. Les relations entre les
caractéristiques, les corrélations, ainsi que les distributions
de chaque caractéristique. Et nous utiliserons Seaborn, qui rend tout
cela extrêmement facile généralement avec une
ou deux lignes de code. Tout d'abord, nous importons des pandas
comme d'habitude et chargeons nos données. De plus, nous chargerons la bibliothèque de traçage
Seaborn. Seaborn est communément
abrégé en SNS. Et le premier graphique pour notre visualisation des données sera un graphique à paires. Désormais, un graphique à paires tracera chaque colonne par rapport à chaque
colonne, même par rapport à elle-même. Ainsi, lorsque vous tracez le nombre total de
pièces par rapport à lui-même, vous obtiendrez la répartition
du total des pièces. Et si vous tracez
par rapport à une autre colonne, vous obtiendrez un nuage de points. Ce diagramme de dispersion, ainsi que la distribution, peuvent
être très instructifs. L'un de mes diagrammes préférés
à réaliser à des fins de visualisation.
Ici, nous pouvons voir que, par exemple nos données de latitude et de longitude comportent
apparemment deux pointes. Il semble donc que nos données de géolocalisation se
concentrent sur deux points. Nous pouvons constater qu'il existe de
très fortes corrélations. Et au milieu de notre intrigue, c'est parce que nous avons une certaine dispersion linéaire
ici. Et toutes les autres fonctionnalités
que nous voyons
ici sont distribuées d'une
certaine manière , comme
celle-ci est éparpillée partout
et nous pouvons voir peu
partout
et nous pouvons voir des découpes sur les bords. Donc probablement que quelqu'un a pris
un maximum de données. En plus du diagramme de paires, nous pouvons créer un diagramme
de paires coloré par une classe. heure actuelle, le seul cours dont
nous disposons concerne la proximité de l'océan dans le cadre de votre
exploration pour le projet Ce serait vraiment génial si
vous l'expérimentez, peut-être en le combinant avec l'exercice de
binning que nous avons fait. Il faut un peu de temps pour que cela se charge. C'est pourquoi je n'ai échantillonné que
1 000 échantillons pour le moment, car nous voulons obtenir le
graphique assez rapidement. Cependant, cela donne un
très bon aperçu façon dont les différentes classes sont
distribuées les unes par rapport aux autres. La légende à droite nous
indique quelles couleurs. Et je voudrais supprimer leur latitude et leur
longitude dès maintenant, car ces caractéristiques sont fortement
corrélées les unes aux autres et, pour l'instant, elles ne
prennent de la place que dans nos parcelles. Nous pouvons donc vraiment utiliser davantage notre intrigue en nous en
débarrassant. Maintenant, dans la liste déroulante, je dois ajouter les x parce que nous voulons
supprimer cela de la colonne. Ensuite, notre parcelle devrait pouvoir
être tracée avec quelques parcelles de moins sur la grille. Chaque parcelle est donc un
peu plus grande. Et cela nous donne déjà beaucoup
d'informations. Nous pouvons donc constater que nos données sont relativement
également dispersées, à l'exception des données relatives aux îles. Les données de cette île semblent
avoir atteint un pic très net. Cependant, n'oubliez pas
que nos données sur les îles contiennent très peu d'échantillons. Cela fausse vraiment beaucoup
les résultats. Cependant, peut-être
voulons-nous simplement tracer la
distribution de nos données. Pour cela, nous pouvons
utiliser le diagramme KDE, qui est l'abréviation de l'estimation de la densité des
grains. Nous allons donc voir comment valeurs médianes de
nos maisons
sont distribuées. En plus de cette parcelle, nous pouvons également une fois de plus la
diviser par teinte. Malheureusement, il n'existe
aucun moyen intégré de le faire, comme pour le terrain à deux. Nous allons donc revenir sur
les valeurs uniques de
notre proximité avec l'océan. Et c'est un peu une solution
de contournement, mais j'ai beaucoup aimé cette intrigue, donc je vais quand même vous
montrer comment procéder. Et dans mon enseignement,
cette question revient généralement de toute façon. J'espère donc que ce complot fonctionnera, j'espère que ce complot
fonctionnera également pour vous. Nous allons donc sous-définir nos données. Utilisez la proximité
de l'océan égale à la classe, qui est notre itérateur
par rapport aux valeurs uniques. Cela signifie que notre parcelle est
divisée par notre classe. Cependant, pour le moment, la légende n'est pas particulièrement belle. Chaque légende indique simplement la valeur
médiane de la maison. Et idéalement, nous
préférerions la légende, bien
sûr, la classe. Nous pouvons donc fournir
ici une étiquette contenant le nom de
notre classe. Et de cette façon, nous avons
une jolie petite parcelle, toutes nos distributions. Eh bien, nous pouvons voir que l'intérieur des terres a une distribution très différente de
celle de la plupart des autres. Et bien sûr, l'île
est inclinée vers la droite, ce qui indique un prix plus élevé. Mais encore une fois, il n'
y a pas beaucoup de données, donc le résultat est
un peu biaisé. Maintenant, nous voudrions peut-être examiner
d'autres diagrammes
de dispersion. Il est très facile de créer un
nuage de points. Eh bien, nous pouvons même
aller encore plus loin. Il existe ce que l'
on appelle un diagramme conjoint, où nous avons les
diagrammes de dispersion et les dessous. Nous pouvons tracer la
distribution des données. Donc, généralement, un histogramme, vous pouvez également en
créer un autre. est très intéressant de
souligner la façon dont les données varient. Dans le cas, par exemple, du nombre total de chambres et de la population, nous observons une distribution très claire qui indique une tendance
essentiellement linéaire. Donc, une sorte de
corrélation linéaire entre les deux. Et ce complot est très simple. Il suffit de donner la fonctionnalité, le nom de
la colonne et le DataFrame et Seaborne place
parfaitement les pandas. Ici, vous pouvez également
voir les distributions et les étiquettes appliquées
automatiquement. Cette parcelle comporte plusieurs
options différentes. Vous avez déjà vu qu'
il existe une option hexadécimale. Nous pouvons également effectuer une régression
linéaire, c'est-à-dire ajuster une ligne de tendance avec
incertitude à nos données. Nous pouvons donc vraiment voir si un modèle linéaire
correspond vraiment à nos données ou si
quelque chose d'autre devrait l'être. Maintenant, nous pouvons voir que les valeurs aberrantes faussent au moins
un peu les résultats. Et en outre, nous pouvons examiner
une autre
caractéristique juste pour voir comment notre
régression linéaire, par exemple, change. Cette caractéristique semble être très fortement corrélée
au nombre total de chambres. Remplacez donc la population
par des ménages. Et nous pouvons voir que
c'est aussi linéaire que le peuvent
réellement les données réelles. Je pense que si nous copions maintenant cette
population remplacée par les ménages, alors adaptons une ligne. Nous pouvons constater que l'ombre derrière la ligne n'est
pratiquement pas visible, sorte que l'incertitude n'est fondamentalement
pas présente sur ces données. Une très bonne façon de voir comment notre régression linéaire
s'adapte aux données. Au lieu du diagramme de paires, nous pouvons également créer une
carte thermique de la corrélation. Cela nous donne donc simplement la représentation
numérique de notre coefficient de
corrélation de Pearson. Et nous pouvons voir que la diagonale est telle
qu'elle est censée être. Notre latitude et notre
longitude sont négativement corrélées car la
longitude est négative. Et au milieu,
nous avons un carré de forte corrélation que nous
devons absolument étudier. C'est très intéressant. Et en général, c'est également un bon moyen d'inspecter
vos données. Nous pouvons le copier et jouer un
peu avec,
juste pour vous montrer que
rien n'est intégré ici, vous pouvez vraiment
jouer avec. C'est un terrain de jeu ouvert pour vraiment explorer vos
visualisations. Cette magnitude de 0 à 1 nous montre
maintenant que revenu
médian est très
fortement
corrélé à la valeur
médiane de la maison. Et je n'avais pas vraiment
vu ça avant. Donc, le simple fait de vérifier cela, de le
changer un peu peut vous donner plus d'informations. Il peut donc être extrêmement utile
de l'essayer
à partir du standard, à partir des
visualisations standard . Nous pouvons y ajouter des annotations. Maintenant, c'est un peu le bordel. Nous arrondirons donc nos nombres à la première décimale et verrons que cela est beaucoup plus
beau. Vous pouvez également le faire avec les données
d'origine. Ce cours a donné un aperçu
des différents diagrammes que vous pouvez utiliser pour mieux
comprendre vos données. Dans le prochain cours,
nous examinerons
les chiffres sous-jacents
à ces diagrammes et comment en extraire
des chiffres spécifiques qui vous en diront
plus sur vos données.
19. 32 statistiques descriptives nouvelles: Dans ce cours, nous allons poursuivre la visualisation
que nous venons de suivre. Nous allons donc examiner les
chiffres qui se cachent derrière les graphiques. Les statistiques peuvent être un mot un
peu effrayant,
mais en réalité, ce ne sont que
des chiffres significatifs ou des indicateurs de performance clés de vos données qui
vous renseignent sur les données. Ainsi, la moyenne, par exemple, est simplement la moyenne
de toutes vos données, tandis que la médiane, par exemple est la valeur la plus courante. Et cet écart type, donc STD, décrit simplement dans
quelle mesure vos données varient. Alors, quelle est la probabilité
que vous trouviez des données
éloignées de la moyenne ? Et nous allons explorer tout cela
dans ce cours et approfondir les statistiques
descriptives et la manière de les obtenir
à partir de vos données. statistiques
descriptives et la manière Au début, nous allons
importer nos données puis nous pourrons
simplement calculer les statistiques sur
les lignes en fournissant la ligne. Donc, DF Dot House, âge médian. Ensuite, nous avons la
moyenne, la médiane et écart type disponibles comme méthodes de calcul
directement sur les données. La moyenne est la
moyenne dans ce cas, et la médiane est la valeur la
plus courante. En gros, si nous voulons obtenir statistiques
agrégées sur l'
ensemble du DataFrame, nous l'appelons simplement point describe sur le DataFrame ou un
sous-ensemble de la dataframe. Cela nous donne le nombre, la moyenne, la norme et les quartiles de nos données. Lorsque vous jouez avec ça, assurez-vous de consulter la
docstring décrite. Vous pouvez en faire beaucoup plus. Nous pouvons ensuite les regrouper en fonction de nos données. Et le groupe par action doit être réalisé par quelque chose que nous
pouvons regrouper. Nous utiliserons donc la
proximité de l'océan dans ce cas. Et nous pouvons calculer la moyenne de ces groupes
sur chaque colonne. Cela n'a donc pas vraiment de
sens une longitude de trop, mais pour toutes les autres valeurs, nous pouvons donc associer
des groupes à des statistiques. De plus, nous pouvons utiliser
la méthode AC pour l'agrégation. Et là, nous pouvons essentiellement
définir un dictionnaire avec toutes les statistiques que nous voulons calculer
sur une colonne donnée. Longitude, par exemple, nous examinerons la moyenne min-max. Et nous pouvons
le copier pour l'utiliser également pour d'autres
fonctionnalités. Et vraiment, vous
n'êtes donc pas limité à celles-ci et vous pouvez même fournir des fonctions
à cet agrégateur. Et ils n'ont pas besoin
de se chevaucher également. Ainsi, pour le nombre total de chambres, vous pouvez modifier cette valeur pour qu'elle soit la valeur médiane
au lieu de la moyenne. Parce que, eh bien, il est un peu plus
logique d'obtenir la médiane. Et pour notre revenu médian. Eh bien, essayez simplement de
fausser notre distribution. Et ici, nous pouvons voir que notre nouveau DataFrame qui en résulte
est rempli de nan
où aucune valeur
n'est disponible
alors est rempli de nan
où aucune valeur
n' qu'elles
n'ont pas vraiment de sens. Mais nous pouvons vraiment entrer
dans les statistiques ici. un autre petit outil intéressant
juste pour donner un aperçu méthodes de comptage des
valeurs sont un autre petit outil intéressant
juste pour donner un aperçu
des colonnes. Ainsi, à proximité de l'océan, par exemple, nous pouvons alors appeler la méthode du comptage des
valeurs pour avoir une vue
d'ensemble du nombre d'échantillons
contenus dans chacun de ces échantillons. C'est donc très agréable de se faire une idée de la façon dont nos données sont
distribuées entre les classes. Pour les cartes thermiques que
nous avons générées auparavant, nous devions calculer la
corrélation entre
chaque colonne et
chaque colonne. Et nous pouvons voir
ici que ces données
sont facilement disponibles. Et la méthode d'appel nous donne
également la possibilité de modifier
la corrélation que nous utilisons. Vous pouvez donc le
remplacer par du spam et, par exemple très similaire à ce que nous avions indiqué dans le rapport
généré automatiquement. Ici, vous pouvez vous
plonger dans les données
et voir comment nos données sont
corrélées par numéro. Dans ce cours, nous avons examiné les statistiques descriptives,
c'est-à-dire les nombres réels, les valeurs
moyennes, et la
manière dont nous pouvons extraire ces chiffres spécifiques et prendre des
décisions en fonction de ceux-ci. Dans le prochain cours,
nous
examinerons des sous-ensembles de ces données. Alors, comment sélectionner
des parties des données et comment pouvons-nous calculer ces
chiffres sur ces parties ? Parce que parfois,
comme nous l'avons vu ici, Island ne possède que cinq échantillons
dans l'ensemble de notre ensemble de données. Alors, comment pouvons-nous nous
assurer d'extraire données de notre DataFrame
et de les explorer plus en profondeur ?
20. 33 sous-ensembles neufs: Dans ce cours, nous allons
apprendre à extraire sous-ensembles de notre ensemble de données,
car parfois, par exemple, nous voulons nous concentrer sur
un seul emplacement ou nous voulons nous concentrer sur un
sous-ensemble de clients. Et ces segments
sont très faciles à extraire à l'aide de Pandas. Et je vais vous montrer
comment procéder. Nous allons donc d'abord charger nos données, puis nous allons prendre notre base de données df et examiner la longitude. Parce que nous pouvons prendre notre base de données df et
y appliquer une logique normale. Donc, dans ce cas, nous voulons qu'il soit inférieur à
moins un à deux et nous en tirons un sérieux avec des valeurs
vraies et fausses. Donc une série booléenne. Nous pouvons l'utiliser pour choisir des lignes
dans notre DataFrame d'origine. Et nous pouvons voir ici
que ce n'est qu'une vue. Nous devons donc
l'affecter à une nouvelle variable. Regardons une
autre façon de sélectionner des sous-ensembles. Dans ce cas, nous
voulons examiner la proximité de l'océan, car la
sélection de sous-ensembles de nos catégories est très importante pour
ce que
nous ferons plus tard , à savoir l'
équité et l'éthique de l'IA. Nous pouvons donc choisir ici de
ne s'y trouver que près de la baie et à l'intérieur
des terres. Nous en obtenons
une fois de plus une série booléenne
que nous pouvons utiliser pour découper notre DataFrame ou obtenir un sous-ensemble
de notre DataFrame. Je peux le voir ici, et nous pouvons voir qu'il est
moins robuste qu'avant. Nous pouvons également combiner différents
types de loterie x2. Eh bien, être arbitrairement complexe. Et la raison pour laquelle nous devons le faire
ici est d'utiliser l'opérateur AND. Mais dans ce cas, il faut que ce soit l'esperluette. L'esperluette est un opérateur
spécial en Python qui permet d'effectuer
des comparaisons au bit. Et vous pouvez le voir
ici et cela échouera car les opérateurs
au bit très courts
pour comparer les booléens. Et vous devez faire
attention à utiliser des parenthèses en conjonction
avec un opérateur bit à bit. Ici, nous allons juste
jouer un peu
avec le vrai et le faux. Vous pouvez donc voir comment ils
sont combinés lorsque nous les utilisons et lesquels utiliseront les
mêmes avec un opérateur OR. Mais bien sûr, nous devons
prendre l'opérateur bit à bit, qui est ce symbole « pipe ». Je ne sais pas si vous l'avez peut-être sous un
autre nom, mais il apparaît à l'écran, vous l'avez dans votre carnet. Et nous avons ici le choix
des éléments qui s'y trouvent. Le choix entre la proximité
de l'océan près de la baie vers l'intérieur des terres ou le D de longitude
est de -120 contre un.
Nous examinons
les valeurs uniques notre sous-ensemble de proximité de l'océan. Nous pouvons constater que certaines valeurs
ne se situent pas
près de la baie et à l'intérieur des terres parce qu'elles se situaient à longitude inférieure à
moins cent 22. Nous pouvons également utiliser la méthode
point loc. Il s'agit d'une façon de
sélectionner des sous-ensembles de notre base de données en utilisant
les noms des indices. Index sur les colonnes et
index sur les lignes. Nous pouvons le copier directement. Et je vais vous montrer
ici où se situe la différence par
rapport à la méthode précédente, car elle échouera,
car elle s'attend à ce que nous
donnions des tranches pour tous les index. Un DataFrame possède donc
deux dimensions, les colonnes et les lignes. instant, nous ne
lui avons donné que les colonnes, les deux-points ici. Il est utilisé pour sélectionner simplement
tout et la section de ligne. Et nous pouvons bien sûr également l'
utiliser pour découper les lignes en utilisant
les numéros de l'index. Ici, nous pouvons voir
que cela a été sélectionné
parmi les noms d'index 5 à 500. Et gardez à l'esprit que notre
indice peut être n'importe quoi. Nous y jetterons un œil
dans une seconde. Ici, nous pouvons voir que cela n'a pas du tout modifié notre DataFrame. Il s'agit simplement d'une méthode
pour renvoyer une vue. Et bien sûr, nous pouvons également l'enregistrer dans une variable, comme toujours. La méthode dot loc
fonctionne donc d'une manière différente de
celle que nous utilisions auparavant. Examinons maintenant l'indexation,
car là-haut, nous pouvons
voir que notre indice
n'est qu'un entier continu compris entre zéro et le nombre
maximum, 20 640 dans ce cas. Cependant, nous pouvons utiliser la méthode d'index par points pour remplacer notre indice
par une autre ligne. Et c'est vraiment
puissant et nous pouvons attribuer n'importe quel type d'indexation, même du texte, et sélectionner
sur ce texte, ou dans ce cas, la latitude. Au lieu d'un simple chiffre. Vous pouvez toujours utiliser des chiffres et je vous montrerai plus tard
comment procéder. Mais c'est en quelque sorte une façon de changer votre façon de penser
à votre DataFrame, car à l'
heure actuelle , nos lignes sont indexées
en fonction de la latitude. Nous pouvons donc, nous ne pouvons pas faire
ce que nous faisions auparavant avec le nombre car
notre indice actuel n'est plus un entier. Notre indice est désormais la latitude. Donc, si nous choisissons
le numéro en guerre, n'importe quel type
de chiffre sous notre latitude, cela fonctionnera à nouveau. Ici, je jette un œil à l'index, il suffit de copier un numéro
d'ici, comme EF 37.85. Et nous pouvons ensuite l'utiliser pour sélectionner un sous-ensemble à
l'aide du point loc. Il suffit d'utiliser toutes les colonnes. Et nous pouvons voir
ici que cela
montre simplement tout ce qui se trouve
dans notre index ici. Vous pouvez constater que les index
dans Pandas ne
doivent pas nécessairement être uniques. Quelque chose de vraiment important
à prendre en compte lorsque
vous travaillez avec eux. En le divisant ainsi dans notre
DataFrame,
il est extrêmement puissant
car dans notre index, nous renverrons simplement les données cet index et quel que soit le
tri dont nous disposons. Nous n'avons donc pas vraiment besoin de savoir comment nos
données sont structurées. Néanmoins, nous pouvons
utiliser la méthode iloc, qui est essentiellement la localisation de
l'index, où nous pouvons toujours accéder notre DataFrame et
sélectionner les lignes 5 à 500, 499 car c'est exclusif. Nous pouvons également l'utiliser
sur la colonne. Donc, si nous pensons savoir
exactement où tout se trouve, nous pouvons également utiliser ce type de découpage
et pour utiliser simplement le découpage numérique
pour obtenir nos sous-ensembles, je recommande généralement d'utiliser point
loc parce que quel point loc, vous pouvez toujours être sûr,
quel
que soit le tri, que
vous obtiendrez ce que vous voulez récupérer avec l'index exact. Et vous n'avez pas à vous
assurer que tri de votre DataFrame
est correct. Ici, nous pouvons
voir que la latitude ne fait plus partie de
nos colonnes car nous l'avons désignée comme indice. Maintenant, si nous voulons rétablir la latitude
dans nos colonnes, nous pouvons également le faire
en réinitialisant l'index ,
puis notre indice
retrouvera des entiers en cours d'exécution. Cela fonctionne également lorsque
vous l'avez rétrié. Vous pouvez donc rétablir l'
index à 0 à 500 ou à un nombre maximum BO lorsque vous avez modifié l'ordre de vos
colonnes. Et il est très
important de prendre en compte le
fait
que lorsque vous effectuez un découpage d'index , vous pouvez toujours modifier le tri
de vos données. Mais lorsque vous effectuez le point Lock, vous serez en mesure de récupérer
exactement ce qui se trouve sur l'index. Sur le thème de la
sélection des colonnes. Bien entendu,
nous pouvons utiliser la méthode standard consiste simplement à fournir
les colonnes souhaitées. Mais parfois, votre
DataFrame est très éloignée de votre vision des
chiffres manquants. Exemple : nous avions, je
crois, plus de 20 colonnes. Donc, pour être honnête, sélectionner tout cela peut être très fastidieux. Nous pouvons donc également aller dans
l'autre sens et sélectionner les colonnes que
nous ne voulons pas. Et c'est avec une méthode de dépôt. Nous fournissons donc les
noms des colonnes qui doivent être supprimées
du DataFrame. Juste ici. Nous allons simplement prendre l'inverse
de la longitude et de la population et
fournir l'axe
d'où nous voulons le supprimer
, fournir l'axe
d'où nous voulons le supprimer car nous pouvons
également supprimer des colonnes. Juste ici. Vous pouvez voir comment vous pouvez modifier de
nombreuses choses. Vous pouvez
également le faire en le
déposant sur place si vous souhaitez modifier le DataFrame
directement en mémoire. Ici, vous pouvez
voir que nous pouvons supprimer,
eh bien, faire exactement le
contraire de ce que
nous faisions auparavant en supprimant des lignes. Dans l'ensemble, nous procédons ainsi parce que si vous sélectionnez des
sous-ensembles de vos données, vous pouvez les analyser
. Donc, si nous utilisons simplement la méthode de description à partir de
nos statistiques descriptives, nous pouvons voir ici, par exemple, l'écart type et
la moyenne de toutes les colonnes. Et nous pouvons bien entendu également appeler la méthode de description sur
un sous-ensemble de nos données. Et découvrez comment nos statistiques descriptives évoluent. Vous pouvez ensuite commencer à tracer
ces sous-ensembles et effectuer analyse complète de
votre jeu de données sur ces sous-ensembles. Ce cours a vraiment approfondi manière dont nous pouvons sélectionner des sous-ensembles de nos données et
décider réellement des éléments à prendre en
fonction des fonctionnalités, mais aussi des index. Et nous avons examiné
comment l'intégrer, disent-ils, et comment le réinitialiser
à nouveau,
car c' est très
important lorsque vous souhaitez effectuer analyse exploratoire de données et une
analyse exploratoire de données et examiner de plus près certaines
des sous-ensembles de vos données. Dans le prochain cours, nous verrons comment
générer ces
relations dans nos données. Et concentrez-vous vraiment
sur ce qu'il faut extraire.
21. 34 corrélations nouvelles: Dans ce cours, nous examinerons
les relations
au sein de nos données. Nous allons donc vraiment vérifier comment fonctionne la corrélation
au sein de nos données. Mais allez aussi au-delà de cela. Allez donc au-delà
des corrélations linéaires et approfondissez sérieusement nos données. Nous allons
recommencer par importer des pandas et charger
le DataFrame. Nous pouvons constater que le point core est vraiment essentiel pour effectuer
une analyse de corrélation. Dans Pandas. Nous pouvons utiliser Corr
et changer autour du coefficient de corrélation
que nous voulons réellement utiliser. Maintenant, la corrélation standard de
Pearson est une corrélation linéaire. Spearman et Kendall utilisent une corrélation de rang qui
peut être non linéaire. En plus de calculer ces
corrélations agrégées, vous voudrez
peut-être parfois simplement
savoir comment une cellule,
une colonne est
corrélée à une autre. Et ici, nous pouvons simplement fournir la colonne et calculer la corrélation sur
une autre colonne. Juste ici. Nous pouvons même aller
plus loin. Les
outils d'apprentissage automatique ont donc été très faciles à utiliser au cours
des dix dernières années. Et nous pouvons utiliser cet outil d'apprentissage
automatique
pour prédire une fonctionnalité en fonction des autres fonctionnalités. Et si nous faisons cela
pour chaque fonctionnalité, nous pouvons réellement voir à quel point une fonctionnalité
est
informative par rapport à l'autre. Et cela a été intégré dans un petit outil intéressant
que nous pouvons utiliser ici, appelé Découvrez les relations
futures ou au-delà des corrélations. Il a récemment changé de nom, vous pourrez
donc
le trouver également sur GitHub. Cela signifie que nous pouvons utiliser
la méthode de découverte de cette bibliothèque pour vraiment étudier leurs relations
dans nos données. Nous utilisons donc la
méthode discover sur, sur notre DataFrame. Et nous pouvons fournir une
méthode ou un classificateur, mais dans ce cas, nous allons
simplement le laisser en standard. Vous pourrez y jouer
plus tard si cela vous
intéresse. Cela prend quelques secondes
pour l'exécuter, mais nous
utiliserons ensuite l'exemple de notre DataFrame pour
le créer un peu plus rapide. Vous pouvez le laisser fonctionner
sur des échantillons plus importants. Et nous voyons ici comment une fonctionnalité en prédit
une autre. Et nous comprenons que pour
chaque fonctionnalité, nous pouvons utiliser les tableaux croisés dynamiques
que vous connaissez peut-être grâce
à X0 pour obtenir une bibliothèque complète, tableau
complet qui vous
fournira toutes les
informations dont vous avez besoin. Juste ici. Très similaire
à la corrélation. Cependant, la section centrale n'
est pas remplie, nous allons
donc simplement la remplir
avec des cases, car vous pouvez facilement
prédire la fonctionnalité sur elle-même. Bien sûr Ensuite, nous allons tracer ce graphique, car il est toujours très intéressant de le voir
sous forme de graphique, tout comme nous pouvons examiner la carte thermique à partir
des corrélations. Ceci est très similaire aux
corrélations, sauf que nous utilisons l'apprentissage automatique pour effectuer des prévisions
croisées cette fois-ci. Nous allons donc enregistrer cela
dans la variable ,
puis créer un joli
graphique. Tous ceux-là. Nous pouvons voir que,
contrairement au diagramme
de corrélation, celui-ci n'
est pas fixe entre -1,1. Nous allons donc régler ce problème très rapidement. Ensuite, vous pouvez vraiment voir comment chaque fonctionnalité peut être
extraite de l'autre fonctionnalité. Nous faisons cela, cette fixation
de moins un à un en utilisant les
V min et V max. Et c'est là que nous le voyons. Ainsi, par exemple analyser la façon dont notre population peut être prédite par
quoi que ce soit d'autre est vraiment un bon moyen de voir
les relations entre les données vous permet d'approfondir les raisons pour lesquelles quelque chose est prédictif ou pas. C'est vraiment un outil intéressant
pour la science des données. C'était le dernier cours et maintenant un chapitre sur l'analyse
exploratoire des données. Quand je regarde comment
nous pouvons extraire des informations sur
les corrélations et les relations dans nos données. Et lors du prochain cours, nous verrons comment
nous créons des modèles
d'apprentissage automatique. Donc, quelque chose que nous avons
déjà utilisé implicitement ici va maintenant apprendre
comment l'appliquer réellement.
22. 40 Intro à l'apprentissage automatique nouveau: Ce chapitre du processus de science
des données ou nous
examinerons l'apprentissage automatique. Plus précisément, nous
voulons modéliser nos données et trouver automatiquement des relations avec
les données. Les modèles d'apprentissage automatique sont
appelés modèles de boîtes noires. Cela signifie qu'ils n'ont
aucune connaissance de vos données. Mais lorsque vous leur montrez les données et ce que vous voulez en
tirer,
ils apprendront à établir des relations et à les catégoriser ou à trouver
le bon type de chiffres. Faites donc une régression
avec vos données. Et l'apprentissage automatique
est vraiment puissant et très facile à
appliquer de nos jours. C'est pourquoi nous
passerons également beaucoup de temps à valider
nos modèles. Parce que ces modèles
ont tendance à apprendre exactement ce que vous leur
dites d'apprendre, qui n'est peut-être pas ce que
vous voulez qu'ils apprennent. Et la validation est la
due diligence que vous devez
faire pour vous assurer qu'ils ont réellement appris ce que
vous attendez d'eux. Allumons donc nos ordinateurs portables
et jetons un coup d'œil
à l'apprentissage automatique.
23. 41 Régression linéaire nouveau: Bienvenue dans le premier cours et dans le chapitre consacré à l'apprentissage automatique. Nous verrons comment créer
des modèles simples. Parce que dans l'apprentissage automatique, les règles
sont souvent les règles, plus
le modèle est simple, mieux c'est. Parce que les
modèles simples sont plus faciles à interpréter et sont souvent
très résistants au bruit. Alors plongeons-nous dans le vif du sujet. Après avoir chargé nos données, nous pouvons importer le modèle de
régression linéaire car nous
voulons prédire la valeur des maisons
dans cet exercice. Cependant, avant de
devoir préparer nos données
d'une certaine manière, nous devons les diviser en deux parties. Nous voulons une
partie de formation et nous en voulons une. Eh bien, un ensemble de données que le modèle n'a jamais
vu pendant l'entraînement. Nous pouvons ainsi valider que notre modèle apprend
quelque chose de significatif. Cela permet d'éviter un
effet appelé surajustement. Ainsi, lorsque notre modèle
se souvient essentiellement des données d'entraînement et n'apprend pas les relations
significatives
entre les données, qu' il peut ensuite appliquer à de nouvelles
données qu'il n'a jamais vues. Ainsi, nous prenons notre DataFrame et nous le
divisons en deux parties au hasard. Nous pourrions bien sûr le faire avec des sous-ensembles comme nous l'avons fait
dans la section précédente. Cependant, il est préférable de prélever un échantillon
aléatoire qui ne
se chevauchera
absolument ne
se chevauchera
absolument pas. Et la
fonction Train Test Split fournie par
Scikit-Learn est vraiment bonne pour
cela et
certaines ont vraiment besoin d'autres
fonctions que nous pouvons utiliser. C'est également une très bonne
façon de sélectionner nos fonctionnalités. Pour le modèle simple, nous utiliserons simplement les
caractéristiques du logement, l'âge
médian, puis
du nombre total de chambres comme caractéristiques de formation. Et la valeur de la
maison sera notre objectif. Ils sont généralement
enregistrés sous forme de x puis de y. Nous savons
donc que nous avons un train
x et un test x, puis nous avons un
train y et un test y. C'est assez courant. Et nous allons
regarder les formes. Nous avons donc un peu plus de
20 000 lignes ici. Nos données sur les trains représenteront environ 75 % de celles-ci
avec 15 000 valeurs. Et notre train y devrait
avoir le même nombre de cibles car celles-ci sont échantillonnées de manière aléatoire mais
sur la même ligne. Donc, les données sont évidemment un matelas. Nos tests x devraient maintenant comporter les lignes restantes qui ne
se trouvent pas dans le train. Maintenant, cela est
extrêmement important et il n'y a aucun moyen de
diviser vos données à des
fins de validation. Il est maintenant temps de
construire notre modèle. Notre modèle sera
le modèle de régression linéaire
que nous avons importé auparavant. Et Scikit-Learn nous
permet de créer
des modèles
et de les attribuer très facilement . Il suffit d'assigner l'
objet à une variable. Dans ce cas, nous l'appellerons
simplement modèle. Et vous pouvez voir que vous pouvez modifier certains
hyperparamètres du modèle, mais nous allons le garder
standard pour le moment. Nous adaptons maintenant notre
modèle aux données. Il s'agit de l'étape d'apprentissage au cours de laquelle notre
modèle est
automatiquement ajusté et les paramètres de notre
modèle sont modifiés afin que notre modèle puisse prédire le train
y à partir du train x. Et pour évaluer notre modèle. Ainsi, pour tester ses performances, nous pouvons utiliser la méthode
de notation de notre modèle ajusté et lui
fournir des données fiables dont
nous connaissons également les réponses. Nous pouvons donc utiliser le test x et test
y pour voir dans quelle mesure notre
modèle fonctionne sur des données invisibles. Dans ce cas, la
régression sera le R-carré. R-square est une, eh bien, en statistiques, c'est essentiellement
une mesure du déterminisme. Dans quelle mesure prévoit-il
réellement nos données ? Et le meilleur rapport qualité-prix est celui qui existe. Et puis il baisse et
peut même être négatif. 0,03 ne l'est pas vraiment, eh bien. Ce n'est pas impressionnant. Lorsque nous modifions nos données
de formation pour inclure le revenu médian, nous augmentons le
score de manière significative. C'est évidemment la partie la
plus importante. Nous devons trouver
des données capables de nous
fournir des informations sur
d'autres données que nous souhaitons. Cependant, une fois que nous l'aurons
découvert, nous pourrons encore améliorer
notre modèle en effectuant un
prétraitement de nos données. Mais nous devons être prudents
ici, car tout d'
abord, je ferai du prétraitement
et nous testerons différents éléments s'ils
fonctionnent ou non. Ce qui peut arriver, c'est que
nous surajustons manuellement. Modèle. Cela signifie qu'il faut faire de la science
des données appropriée ici même. Nous voulons diviser nos
données de test en deux parties. Un, un ensemble de supports de validation et
un ensemble de test. L'ensemble du test
ne sera pas touché l'ensemble du processus
de formation , ni lors de nos expérimentations, mais uniquement dans la
toute dernière partie de notre parcours d'apprentissage
automatique. Nous définissons ici x Val et y Val. Et j'ai commis une petite
erreur laissant cela à y
train qui devrait
bien sûr être un test x dans
le train test split. Changer cela signifie
que cela fonctionne. Et c'est aussi
une bonne partie de la fonction Train Test Split. Cela garantit vraiment que
tout est cohérent ou bien que toutes
nos variables correspondent. Et nous pouvons voir ici que notre ensemble de données de test est maintenant assez
petit avec 1 000 valeurs. Nous pouvons donc revenir à la répartition des tests sur les
trains ici et fournir un ratio de données que nous pouvons utiliser dans vos efforts de science des données et d'apprentissage
automatique. Vous devez toujours vous assurer que vous pouvez utiliser la
plus grande taille de test que vous pouvez réellement vous permettre, car
cela signifie que vous serez en
mesure d'avoir plus de certitude
et de résultats. Ici, nous pouvons voir qu'
il est maintenant divisé de 5050 et que notre ensemble de tests maintenant divisé plus bas dans
l'ensemble de validation. Et le kit de test montre que
notre ensemble de test final contient environ 2 500 échantillons, c'est-à-dire tout. C'est suffisant pour cette affaire. Nous allons définir notre scaleur
standard ici et notre modèle comme la régression
linéaire. Et nous ajustons notre scalaire
aux données d'entraînement. Cela signifie que nous pouvons désormais
redimensionner l'ensemble de nos données, sorte qu'aucune des colonnes ne soit significativement
plus grande que les autres. Ce n'est qu'un puits, dans un modèle linéaire, nous situons la pente
et l'intersection. Et lorsque nous
redimensionnons nos données, cela signifie
que notre modèle linéaire peut
désormais fonctionner dans
les mêmes plages de données et ne pas
être biaisé parce qu' une caractéristique est nettement
plus grande que les autres, créera une échelle x à
partir de nos données de train X. Il n'est donc pas nécessaire d'appeler la transformation scalaire dans
la boucle d'entraînement du train. Nous pouvons les comparer
ici,
nous pouvons voir que nos données d'échelle sont désormais centrées autour de zéro
et toutes à la même échelle. Alors qu'avant, c'était
partout. Nous pouvons désormais ajuster nos
données sur notre modèle, sur les données d'échelle. Et bien, le style d'
étiquetage normal que nous avons,
évidemment, l'étiquette doit
être y train dans ce cas. Ensuite, nous pouvons effectuer
la validation habituelle sur nos données de réserve. Et dans ce cas, ce sera X voyelle, et y val. Nous ne touchons donc pas aux données de
test pendant que nous voyons quel type de mise à l'échelle et quel type de prétraitement fonctionnent, nous devons transformer
nos données car
notre modèle attend désormais des données d'échelle. Ainsi, lorsque nous oublions cela, nous obtenons de mauvais résultats, et nous pouvons constater que nous avons légèrement
amélioré notre modèle, légèrement
amélioré notre modèle, mais qu'il continue de s'améliorer en appliquant simplement cette
mise à l'échelle aux données. Si nous essayions plutôt d'utiliser le scalaire
robuste, nous pouvons le faire simplement en expérimentant et
en utilisant un scalaire différent. Et c'est là que je veux dire où nous avons besoin d'un
kit de protection supplémentaire , car le simple fait d'essayer
différentes choses est un très bon moyen de
voir ce qui fonctionne. Et c'est ainsi que vous faites de la science des données. simple
fait de voir ce qui fonctionne revient à créer un bon modèle d'apprentissage automatique. Parce que parfois,
vous ne vous attendez
pas à avoir des
valeurs aberrantes dans vos données. Et vous essayez le
scalaire robuste et vous
verrez qu'il
fonctionne réellement mieux. Ou vous vous rendez compte que
cela fonctionne moins bien. Ici, nous pouvons à nouveau nous entraîner sur
nos données transformées avec notre train Y
et évaluer nos résultats. Pour vérifier si cela fonctionne. Essayez également le scalaire minmax
que nous avons utilisé dans notre classe précédente. Une fois
l'expérimentation terminée
et l' entraînement pour le modèle final, nous pouvons utiliser ce modèle
pour le prédire sur tout type de données contenant
les mêmes colonnes,
espérons-le, la même
distribution que nos données d'entraînement et
le kit de validation. Pour ce faire, nous utiliserons model.predict et fournirons certaines données. Dans ce cas, nous
utiliserons les données d'entraînement. Il suffit de voir comment
le modèle se
compare aux données réelles sur le terrain
, les données étiquetées. Mais bien sûr, le faire sur les données du train n'est pas très intéressant
car le modèle a connu ce type de version bêta. Nous finirons par le
faire sur le plateau de test. Mais finalement, il a
voulu le faire sur données
totalement invisibles afin d'obtenir des prédictions à partir de votre modèle d'apprentissage automatique. Un autre moyen très intéressant
et la raison pour laquelle j'aime beaucoup l'
utilitaire Train Test Split est que vous pouvez lui fournir
un mot clé stratify. La stratification est un moyen de s' assurer qu'une
caractéristique est représentée de manière égale dans chaque partie du train et de la zone d'essai. Donc, si nous voulons nous assurer
que notre proximité de l'océan sur l'île est en partie due au
train et en partie à des tests. Nous pouvons le faire en fournissant
ce type de fonctionnalité. Et l'une des raisons pour lesquelles les gens aiment tant les
modèles linéaires est que modèles
linéaires
ajustent essentiellement une ligne à vos données. Donc, si vous pensez
à la cinquième année, vous vous souvenez peut-être qu'une ligne est simplement l'intersection sur le y et un coefficient
pour la pente. Nous pouvons donc interpréter notre modèle linéaire et
examiner ces coefficients. Chaque colonne possède donc un
paramètre de pente que
nous pouvons utiliser En gros, ce
paramètre vous indique dans
quelle mesure la pente de ces données influence
le résultat de la prédiction. Et bien sûr, nous
pouvons regarder l'interception avec un y, ce qui nous donne un
aperçu complet de notre modèle. Donc, en gros, vous
pourriez l'écrire sur papier. Maintenant, dans ce cours,
nous apprenons à utiliser scikit-learn sur un modèle d'apprentissage
automatique simple, une régression linéaire. Donc, en ajustant
une ligne à nos données, nous avons examiné comment la mise à l'échelle
pouvait améliorer notre modèle et même prédit sur certaines données que le modèle n'avait
jamais vu le. Il s'agit donc de vérifier si
nous apprenons réellement quelque chose de significatif ou s'
il mémorise simplement les données. Dans le prochain cours,
nous examinerons des modèles plus sophistiqués, à modèles plus sophistiqués, savoir les arbres de décision
et les forêts aléatoires.
24. 42 arbres neufs: Dans ce cours, nous examinerons arbres de
décision et les forêts
aléatoires, qui ne
sont qu'un ensemble
d'arbres de décision entraînés d'une manière spécifique
pour être encore plus puissants. Et les arbres de décision sont très bons apprenants car
vous n'avez généralement pas à trop
modifier les paramètres de base. Dans cette classe. Vous verrez à quel point
il est facile d'utiliser scikit-learn pour
créer toutes sortes de modèles
différents et de
les utiliser dans votre exploration
des données. Pour cette vidéo, j'ai
déjà préparé toutes les entrées et
le chargement des données. Et j'ai réparti les données
entre le train,
qui représente 50 %,
puis un ensemble qui représente 50 %, de validation
et un ensemble de test, qui représentent chacun 25
% du total des données. Et maintenant, nous allons créer un arbre de décision pour commencer. Nous allons donc importer les arbres depuis scikit-learn depuis
la bibliothèque d'arbres. Comme toujours, nous
définirons notre modèle. Dans ce cas, il s'agira d' un arbre décisionnel régressif
car, pour le
rendre comparable, il faudra à nouveau effectuer une régression
sur la valeur de la maison. Modèle, train. La formation sera la
même que toujours, model.fit, x train et y train. Et je pense qu'à ce
stade, vous comprenez vraiment pourquoi Scikit-Learn est si populaire. Il a standardisé
l'interface pour tous les modèles d'apprentissage automatique. donc tout
aussi facile d'évaluer, d'ajuster et de prédire est donc tout
aussi facile d'évaluer, d'ajuster et de prédire
votre arbre de décision qu'avec un modèle linéaire. Les arbres de décision sont des apprenants
relativement médiocres et nous ne les examinons vraiment que. Nous pourrons donc examiner plus tard la forêt
aléatoire qui construit plusieurs
arbres de décision et
les combiner en un apprentissage d'ensemble. Et l'avantage des arbres de décision, c'est qu'ils sont généralement indépendants de toute échelle et qu'ils fonctionnent avec des caractéristiques
catégorielles. Nous pourrions donc réellement intégrer
la proximité de l'océan à notre entraînement ici. Mais bien entendu, nous ne pouvions pas non comparer la méthode au modèle
linéaire. Nous ne le ferons donc pas pour l'instant, mais c'est certainement quelque chose
que vous pourrez essayer plus tard. La mise à l'échelle de ces données
ne nous coûte donc rien. Nous ferions donc tout aussi bien d'essayer. Ici. Vous pouvez réellement
voir ce qui se passe lorsque vous ne transformez pas vos données
de validation. Donc, en gros, maintenant attend même l'
arbre de décision, j'attends des données d'échelle. Il fonctionne donc très mal. Lorsque nous transformons les données de nos trains et que nous transformons nos données
de validation. Notre score est légèrement inférieur
à celui d'avant. Ensuite, nous pouvons construire
une forêt aléatoire. Une forêt aléatoire
est un ensemble d' arbres dans lequel nous utilisons une
méthode statistique appelée ensachage qui tente essentiellement de créer des arbres de décision
non corrélés qui, dans l'ensemble,
apprennent mieux que
chaque arbre. individuellement. Nous allons donc importer le régresseur de
forêt aléatoire depuis la sous-bibliothèque
d'ensemble de scikit-learn. Et comme précédemment, nous allons assigner notre modèle à a, leur
objet de modèle à une variable. Ensuite, nous pouvons adapter
notre modèle aux données. Comme vous pouvez le constater,
l'ajustement est assez rapide et le fait de le marquer devrait nous
donner un très bon résultat. Ici, nous pouvons voir que
c'est légèrement mieux que
le score que
nous avons obtenu sur notre modèle linéaire
après
la mise à l'échelle. Et si nous examinons maintenant le
score des données d'entraînement, vous pouvez comprendre pourquoi nous avons
besoin de données de validation. Cet arbre forestier aléatoire est donc extrêmement solide sur les données d'
entraînement elles-mêmes, mais d'accord, sur les données de
validation VAP. Au lieu de cela, nous pouvons également examiner la mise à
l'échelle pour voir comment elle fonctionne. Cela ne nous coûte rien, c'est vraiment bon marché à faire. Alors tu pourrais aussi bien. Si cela améliore votre modèle
d'apprentissage automatique ou
réduit le surajustement, cela vaut toujours la peine de le faire car
c'est, oui, c'est bon marché. Nous allons donc adapter nos données d'entraînement et adapter nos données,
notre modèle à celles-ci. Nous pouvons utiliser la
même échelle qu'
auparavant, car les scalaires indépendants du modèle d'apprentissage
automatique ne
sont que le scalaire. Et nous voyons ici que notre score d'entraînement
n'a pratiquement pas changé, comme c'est le cas
dans la quatrième virgule. Il s'agit donc essentiellement d'un
bruit aléatoire à ce moment-là. Sur le kit de validation. Il ne faut pas en attendre
trop non plus. Le résultat s'est donc légèrement
détérioré. Il vaut donc la peine de préserver
les données d'origine. Dans ce cas. Ce qui est fantastique à propos des forêts
aléatoires, c'est que les forêts aléatoires ont
ce qu'on appelle l'introspection. Vous pouvez donc voir à quel point une forêt aléatoire est
importante, je pense que chaque caractéristique est importante. Ceci, ce sont des nombres
relatifs. Elles peuvent fluctuer légèrement, mais nous pouvons constater que ces caractéristiques sont pondérées
différemment au sein de la forêt aléatoire afin de
prédire un prix correct. Cela a été très rapide. Je pense que Scikit-Learn est incroyable parce qu'il rend
tout si facile. Vous avez juste pensé, prévisions par
points et vous ne marquez pas. Et ils sont très utiles pour tous nos besoins en matière
d'apprentissage automatique. Dans le prochain cours, nous verrons comment nous pouvons
non seulement prévoir les prix, mais aussi comment nous pouvons
prédire les catégories. Donc, dans une entreprise plus
nombreuse, cela peut être une prédiction selon laquelle une personne
est solvable ou non.
25. 43 Classification nouveau: Dans ce cours, nous
examinerons la classification. Cela implique donc
d'attribuer nos données à différents compartiments en
fonction du
contenu des données. Dans notre exemple, nous examinerons la proximité de l'océan. Nous allons donc essayer de
prédire si l'une de nos maisons est plus proche ou plus
éloignée de l'océan. Cela signifie essentiellement que nous
aurons la possibilité de tester
différents algorithmes et la manière dont ils sont également affectés par le prétraitement de
nos données. Nous allons tout importer
et charger nos données. Maintenant, dans cette division, nous
voulons remplacer la valeur de la maison par proximité de
l'océan parce que nous
voulons faire une classification, donc nous devons prédire les classes. Dans ce cas, nous prédisons la proximité d'
une maison avec l'océan. Mais en général, vous pouvez
prédire presque n'importe quelle classe. Nous allons inverser la tendance
cette fois-ci et utiliser toutes les fonctionnalités d'entraînement. Mais bien entendu, nous devons supprimer la proximité
de
l'océan depuis notre DataFrame. Si nous laissions cela de côté,
je dirais que la
tâche de classification ne serait
pas très facile. Donc, le modèle le plus simple, ou l'un des modèles les plus simples, c'est le modèle le plus proche
voisin, notre modèle K le plus proche voisin. Les voisins les plus proches se contentent
essentiellement de prendre les points de données les plus proches au point que vous souhaitez classer et de
prendre le classer et de
prendre le vote majoritaire. Cela signifie donc que la classe
la plus importante autour de votre point est probablement
la classe de votre point. Et pour la classification, Scikit-learn n'est pas
différent de la régression. Nous allons assigner le modèle à une variable et
l'objet à une variable. Ensuite, nous essaierons
d'ajuster nos données. Mais quelque chose est parti de In Finance ou Infinity ou quoi que ce soit d'autre. Et le voisin le plus proche de K
ne s'en sort pas bien. Comme je l'ai dit, je laisse toutes les étapes de prétraitement dans le
chapitre sur le prétraitement afin que ces chapitres soient
courts et concis. Mais dans ce cas, nous
supprimerons les nans sans aucun prétraitement différent, juste pour que ces lignes soient supprimées. n'est peut-être pas une bonne
idée dans la plupart des cas, mais dans ce cas,
il s'agit simplement de récupérer nos données. Ici, nous pouvons adapter notre modèle
aux données d'entraînement habituelles. Cela fonctionne juste cette fois. Ensuite, nous pourrons évaluer notre modèle. Maintenant, la notation n en
classification est un peu différente
de celle de la régression. Nous n'avons pas le R au carré
car le r au carré est une mesure du déterminisme
en régression. Dans ce cas, nous
avons la précision. Et la précision est de 59
%, ce qui est bien, donc 60 % du temps ce modèle voisin corrige la bonne classe. Nous pouvons probablement faire mieux, mais c'est un début. Une chose que vous pouvez essayer dans
votre exercice est de changer le
numéro du voisin le plus proche et voir quel est le type de puits
le plus proche, le nombre de voisins au point qui donne
le meilleur rapport qualité-prix. Nous pouvons examiner de nombreux algorithmes de
classification différents. Sur la gauche, vous voyez
les données d'entrée, qui se présentent sous trois
formes différentes. Ensuite, vous voyez les surfaces de
décision d' une classification binaire
sur la droite. Vous pouvez donc voir que la
forêt aléatoire est très vague, par exemple et qu'un processus gaussien
est très fluide. Donc, juste pour que vous compreniez
comment ils comprennent les données, nous allons essayer la
forêt aléatoire, car elle a une apparence très différente de celle de
la surface de décision. Et les forêts aléatoires sont une
fois de plus des modèles très puissants. Ce sera le même schéma que celui des voisins les
plus proches. Nous allons donc
discuter rapidement des fonctions de notation. Parce que le
score de précision est, d'accord, c'est une bonne valeur par défaut, mais il ne compte essentiellement que le
nombre que vous obtenez, n'est-ce pas ? Et supposons que vous travaillez
dans un environnement où les erreurs sont
particulièrement graves et coûteuses. Vous voulez voir si une autre fonction de notation
serait plus appropriée. Et vous pouvez consulter
le document Scikit-Learn, Mmentation. Il existe différentes
fonctions de notation que vous pouvez vérifier. Voici un aperçu
et la forêt aléatoire vient de surpasser les valeurs
par défaut. Tout ce dont les
voisins les plus
proches se rapprochent avec 96 %. Il s'agit de données inédites. C'est donc un très bon score. Nous pouvons une fois de plus examiner l'importance des caractéristiques
pour voir quel est, selon
notre modèle, l'indicateur le
plus important indiquant
que quelque chose se trouve à proximité du rivage. Et évidemment, cela dépendra
en partie de la longitude
et de la latitude. Supprimons-les donc
également de notre DataFrame, de nos données d'entraînement. Parce que nous voulons le
rendre un peu plus intéressant,
peut-être autre chose. C'est un meilleur indicateur si vous venez voir votre
patron et lui dites : « Hé, j'ai découvert que cet
emplacement nous indique très bien que ma maison est
proche de l'océan ». Ils te regarderont probablement
un peu plus pitoyablement. Alors jetez un œil. Et évidemment, notre score aléatoire sur la
forêt est un
peu moins bon, mais très bien. Jetons donc un coup d'œil à
un autre modèle linéaire. Le
modèle de régression logistique est un modèle binaire. Vous pouvez
également l'utiliser pour
plusieurs classes avec quelques astuces. Cela passe essentiellement à 0-1
et permet de trouver cette transition. Vous pouvez le voir
ici en rouge. Les modèles de régression logistique sont très intéressants car ils fournissent une fois de plus un
bon modèle de référence car ce sont des classificateurs
linéaires. Mais plus intéressant encore,
vous avez vu qu'il y a cette ligne de transition
0-1 sur cette image. Et vous pouvez définir un
seuil dans leur norme. Il est à 0,5, mais vous
pouvez tester la manière dont vous souhaitez définir le seuil de
votre régression logistique. Et c'est vraiment une
bonne chose à prendre en compte dans votre modèle
d'apprentissage automatique. Et nous verrons comment
déterminer ce seuil après ce segment de programmation,
la régression logistique. Nous allons donc ajouter ceci et y jeter un coup d'œil car nous avons un problème multiclasse ici. Et nous voulons que ce
problème multiclasse soit résolu. De toute évidence. Heureusement, le multiclasse est
automatiquement réglé sur automatique car la plupart des gens
ne font pas face problèmes
binaires et à la vie réelle. Donc oui, scikit-learn essaie
vraiment de
définir de bonnes valeurs par défaut, adaptant notre modèle aux données du
train x et du train y. Et malheureusement,
cela n'a pas convergé. Cela n'a donc pas
fonctionné dans ce cas. Je vais donc accéder
au docstring et y jeter
un œil. On y va. Max iter va
être le mot clé que
nous devons augmenter. Il y a donc plus d'itérations
pour trouver l'optimum. Le, pour trouver la météo, la
régression logistique est censée être. Mille n'était pas suffisant non plus. Ajoutez simplement un zéro. Cela
va prendre un certain temps. Nous allons donc réfléchir à
notre seuil optimal. Parce que dans un sens, lorsque vous utilisez l'apprentissage automatique, vous voulez que tous vos
points positifs soient classés
positivement
et que tous vos points négatifs soient classés négativement. Ensuite, vous devez vous
demander lequel est le pire, faire quelque chose de bien ou
mal. Et dans ce cas, nous pouvons utiliser la courbe ROC pour régression
logistique où nous pouvons tracer les vrais taux
positifs. Donc, les
positifs contre le taux de
faux positifs. Donc, tout ce qui a été
classé faussement positif, puis choisissez notre optimum. Dans cette classe,
nous
examinons différents algorithmes de
classification. Comme je vous l'ai
montré sur cette diapositive, il y en a bien d'autres. Et vous pouvez vraiment vous
plonger très
facilement dans les différents types de classification, comme vous le voyez, c'est une doctrine
toujours pensée. Ensuite, vous marquez et vous faites des
prédictions sur la base de données invisibles. Et en fait, au final, c'est toujours pareil. Ensuite, il s'agit de la manière dont
vous redimensionnez vos données, qui fait partie de l'exercice. Et aussi la façon dont vous
choisissez des hyperparamètres tels que k pour l'algorithme des
k-voisins les plus proches. Dans le prochain cours,
nous
examinerons comment regrouper nos données. agit donc de vraiment voir la structure
interne de nos données et la façon dont chaque
point de données appartient aux autres.
26. 44 Clustering nouveau: Dans ce cours,
nous verrons comment regrouper chaque donnée. Parfois, les points de données se regroupent. Eh bien, il a parfois
été plus difficile de les discerner. Et nous verrons comment les
différents algorithmes traitent les données différemment et
les
attribuent à différents bacs. Après avoir importé nos données. Cette fois, nous ignorerons la partie où nous divisons les
données car nous considérerons plutôt l'algorithme de
clustering comme un outil de découverte de données. Si vous souhaitez créer des algorithmes de
clustering pour notre prédiction réelle ou pour
attribuer de nouvelles classes. Vous devez également faire le
fractionnement. Vous savez qu'il fait réellement
ce qu'il est censé faire. Dans notre cas, nous allons simplement
jeter un œil à k-means. K-means était en quelque sorte le petit frère
non supervisé de K le plus proche voisin, où il donne essentiellement ce qu' il mesure la proximité avec
d'autres points et les assigne simplement à un cluster si
ils sont suffisamment proches, s'
adapteront à nos données
sur le DataFrame. Et nous utiliserons fit predict parce que nous voulons
tout faire en une seule étape. Maintenant, le problème, c'est que nous
avons la proximité de l'océan
là-dedans avec des ficelles. Nous allons donc vous en informer. En fait, nous allons simplement
regarder les données spatiales. Donc la longitude et la latitude, car elles sont très
faciles à visualiser en 2D. Cela nous facilite donc un peu
la vie. Nous allons publier des
étiquettes pour ceux-ci. Et ce que nous pouvons faire alors, c'est les tracer en utilisant matplotlib. Ils apprendront également à connaître matplotlib
dans une classe ultérieure. Mais juste pour un tracé facile, il possède le scatter PLT, qui prend une coordonnée x
et une coordonnée y. Et puis vous pouvez également
appliquer, attribuer une couleur, qui est étiquetée, dans notre cas. K-signifie. Vous pouvez définir nombre de clusters que
vous souhaitez supprimer. La valeur par défaut est désormais de huit. Nous allons jouer
un peu avec elle et vous pourrez voir
comment elle évolue, comment les clusters changent. Plus vous montez haut,
plus il devient fragmenté. Et vous pouvez vous demander à quel point il est vraiment logique à un moment donné de continuer à regrouper
les données avec la lumière. Des centaines de clusters. J'y vais trois. Il est assez
facile de montrer ce qui se passe lorsque nous
avons réellement de bons clusters. Nous allons diviser un peu nos
données. Utilisez donc essentiellement le
sous-ensemble dont nous avons parlé précédemment pour supprimer une partie de la partie centrale
de la longitude. Pour cela, nous pouvons utiliser
la méthode between qui définit essentiellement un point de
départ et un point final. Lorsque nous annulons cet intervalle, nous nous retrouvons avec un
cluster à gauche de notre diagramme de dispersion géographique et à droite de notre diagramme de dispersion
géographique. Pour cela, nous allons simplement
choisir -121 et -100 18e comme bordures gauche
et droite. Nous pouvons voir ici que
cela nous donne un ensemble de données divisé. Attribuez-le à une variable
pour que nous puissions l'utiliser. Jetons un coup d'œil et
pas ça en fait. Nous voyons donc
ce qui se passe avec nos données. Supprimez simplement pour l'instant si les couleurs
sont étiquetées car elles
ne s'appliquent pas ici. Et nous pouvons voir la nette
division entre deux groupes. Ensuite, nous pouvons utiliser nos k-means pour classer ces deux éléments
ou pour faire correspondre ces deux. Et je vais simplement le copier et utiliser la prédiction d'ajustement
pour obtenir nos données sur les données fractionnées, puis
également copier notre diagramme de dispersion et les
ajouter à nouveau dans les étiquettes. Nous pouvons voir qu'avec deux clusters, il est assez facile pour k-means avoir un cluster
à gauche et un
cluster à droite. Si nous jouons
avec les chiffres, nous pouvons vraiment tester le
comportement de Howard, y trouver des sous-clusters et la
façon dont il interprète les données. Mais comme c'est si facile
avec un scikit-learn, examinons d'autres méthodes. Il s'agit d'un graphique du site Web
scikit-learn où
vous trouverez différents
types d'
algorithmes de clustering et la façon dont ils fonctionnent
sur différents types de données. Le clustering
spectral me vient à l'esprit. Mais personnellement, j'aime
aussi beaucoup scan de
base de données et j'ai obtenu des modèles de mélange
gaussiens. Ils fonctionnent assez bien
sur des données réelles et en particulier le
développement ultérieur de l'escroquerie antituberculeuse appelée HDB scan est une méthode très
puissante. Hdb scan est une bibliothèque distincte que vous devez consulter puis
installer vous-même. Mais oui, ça
vaut vraiment le coup d'œil. Nous pouvons donc faire comme avant. Nous allons importer le scan
de base de données depuis notre bibliothèque de clusters
dans scikit-learn l'
attribuer à la variable de valeur
dB. Et il ne contient pas beaucoup d' hyperparamètres
différents
que nous pouvons définir. Peut-être changer la métrique
que vous avez vue dans la docstring. Mais pour l'instant, Euclidien
va parfaitement bien. Nous pouvons voir ici sans
définir de clusters, il y a les valeurs aberrantes
et la droite. Et en gros, il trouve
trois clusters sans que
nous en disions trop
sur nos données. Jetons également un coup d'œil au clustering
spectral ici. Cela fonctionne de la même manière. Nous allons l'attribuer à un
objet et l'instancier. Nous devons fournir
des clusters pour celui-ci. Nous voulons simplement copier tout cela dans la prédiction sur notre SP et exécuter
le tout. Cela prend un peu plus de temps. Le clustering spectral peut être, euh, oui,
peut être un peu plus lent
sur de grands ensembles de données. Consultez la documentation. Ils ont une très
bonne vue d'ensemble méthode de
clustering la mieux
adaptée à la taille des données. Et aussi, oui, en
gros, ce à quoi vous
devez penser lorsque appliquez différentes méthodes de
clustering. Étant donné que les méthodes
évoluent et se développent constamment, c'est une très bonne
idée de simplement consulter la documentation car
elle est toujours à jour. Ici, nous pouvons voir que
le clustering est plutôt bien, plutôt bon. Le clustering des données peut
s'avérer très difficile. Comme vous l'avez vu, cela peut conduire à des résultats
très différents
selon le type de vues
autorythmiques. Quels types d'hypothèses
sous-jacentes se trouvent dans cet algorithme, mais aussi comment vos
données sont constituées. Est-il facile de séparer les données ou est-ce vraiment
difficile de séparer les données ? En fin de compte, je pense que
c'est un outil qui peut générer de nouvelles informations sur
vos données que vous n'aviez pas
auparavant, en vos données que vous n'aviez pas fonction des
données que vous lui fournissez. Au cours du prochain cours,
nous verrons comment nous validons les modèles
d'apprentissage automatique. Parce que le simple fait
de construire le modèle ne suffit pas. Nous devons savoir s'il s'agit
réellement d' apprendre
quelque chose de significatif.
27. Validation de modèles d'apprentissage automatique neufs: Dans ce cours,
nous verrons comment valider vos modèles
d'apprentissage automatique. Et tu dois le
faire à chaque fois. Parce que la création de modèles
d'apprentissage automatique est si facile, le plus difficile est
maintenant de vérifier que votre modèle d'apprentissage automatique a
réellement appris
quelque chose de significatif. Ensuite, lors de l'un des
autres cours, nous
verrons également si nos modèles
d'apprentissage automatique sont équitables. Et dans ce cours, nous examinerons la validation croisée. Alors, si
nous voyons ce qui se passe si nous changeons nos données, pouvons-nous réellement prédire des résultats
significatifs ? Ensuite, nous examinerons modèles
factices de base qui
sont en fait un jeu de pièces. Notre modèle est-il donc plus
performant que le hasard ? Après avoir tout importé
et chargé les données, nous supprimerons les noms
et diviserons nos données. instant, nous allons faire
la régression. Nous allons donc créer un régresseur
forestier aléatoire. Et c'est juste pour avoir un modèle que l'on peut comparer
au modèle fictif pour
effectuer la validation. Nous allons donc l'adapter immédiatement aux données de nos trains et
ajouter les étiquettes ici. Avec un modèle ajusté, nous pouvons maintenant le noter
, puis procéder à
une validation croisée. La validation croisée est une méthode
très intéressante. Si vous venez de découvrir les splits de trains d'
essai,
cela fera passer splits de trains
d'
essai au niveau supérieur. validation croisée est donc
l'idée que vous disposez vos données d'entraînement et vos données de test conserveront les données de
test, les données de test. Et comme vous le savez, nous avons divisé les données de nos trains en un ensemble d'entraînement et
un ensemble de validation. Dans le cadre de la validation croisée, nous
divisons désormais nos
données d'entraînement en plusieurs parties. Donc, en gros, c'est
juste en sous-parties. Et chaque pièce est utilisée une fois comme kit de
test par rapport à tout le
reste en tant que train. Nous construisons donc cinq modèles
si nous en avons cinq. Vous pouvez également le faire de
manière stratifiée, comme la division du train d'essai
que nous utilisions auparavant. Maintenant, c'est assez
facile à faire. Encore une fois, l'API, c'est-à-dire l'interface
avec laquelle vous travaillez, est très simple. Nous allons donc importer le score
de validation croisée. Et ici, le score Cross
Val prend en compte votre modèle, les données de validation,
et c'est votre x. Donc, les caractéristiques et,
bien sûr, les cibles, car nous devons le valider
sur une sorte de chiffre. Cela prend cinq fois plus
de temps parce que nous construisons cinq modèles ou, oui, nous évaluons cinq modèles et nous obtenons cinq notes
pour chaque modèle. Vous remarquerez peut-être que tous ces scores sont légèrement
inférieurs à notre score moyen
sur l'ensemble des données, et c'est généralement le
cas et se rapproche davantage de la réalité. Nous pouvons également utiliser la
prévision croisée pour obtenir des prédictions sur
ces cinq modèles. C'est donc très intéressant de
faire du mélange de modèles, par exemple, si vous avez cinq modèles
entraînés, vous pouvez également obtenir des prédictions
. Ce n'est pas une bonne mesure de
votre erreur de généralisation. Vous ne devez donc pas
utiliser
la prédiction croisée pour évaluer les performances de
votre modèle. Plutôt pour visualiser comment
ces cinq modèles sur les plis k lors de la
validation croisée prédisent. Une autre stratégie de validation
consiste à créer des modèles fictifs. C'est à vous de décider si vous le
faites avant de procéder à la validation croisée ou après. C'est une façon de
valider notre modèle. Un modèle fictif repose donc
essentiellement sur l'idée selon laquelle le poids
que nous voulons notre modèle
d'apprentissage automatique soit meilleur que le hasard ? Cependant, il est parfois difficile de savoir à quoi ressemble le
hasard. Nous allons donc y jeter un œil. Vous pouvez
utiliser différentes stratégies dans votre classificateur. Vous pouvez simplement le faire par
force brute et les essayer tous. Mais une bonne méthode consiste
généralement à utiliser prior. Je pense que cela
deviendra la méthode par défaut et future pour
le classificateur factice. Mais puisque nous faisons d'abord une
régression, examinons le régresseur. Vous pouvez donc
également définir une stratégie ici. La stratégie par défaut consiste
simplement à avoir la moyenne. Donc, pendant un certain temps, le pire type de modèle
renvoie juste la moyenne. Nous allons donc l'utiliser
comme modèle factice. Comme tout modèle
d'apprentissage automatique, vous l'adaptez aux données
avec x train et ytrain. Ensuite, nous pouvons attribuer une note à cette fonction. Nous pouvons même procéder à une
validation croisée à ce sujet. Et voyez à quel point ce modèle
aléatoire fonctionne bien. Et sur la base de ces scores, c'est un bon indicateur de la performance de votre modèle
actuel. Si les chances d'un modèle sont
meilleures que les vôtres, meilleures ou égales à celles de votre modèle, vous allez probablement créer
un mauvais modèle et vous devrez revenir en arrière et
repenser ce que vous faites. Nous pouvons effectuer des validations croisées, mais il est évident que la notation
serait plus appropriée ici, ce que vous pouvez
essayer dans les cahiers. Nous allons recommencer
et créer à nouveau un modèle de
classification très rapide en utilisant les données de
proximité de l'océan. Ici, nous allons créer le classificateur, que ce soit
la stratégie normale. Personnellement, je pense que les modèles
factices sont très utiles car parfois, même
si Chance n'est pas juste 5050, si vous avez des déséquilibres de classe comme nous le faisons pour les données
sur les îles, par exemple ,
votre lancer de pièces est
essentiellement biaisé. Il est biaisé. Et le classificateur factice
n'est qu'un moyen très simple
de le valider. Même avec des déséquilibres de classe, vous n'avez pas construit
un modèle inutile. Donc, ici, nous pouvons obtenir
ce score et nous obtenons une
précision assez faible ici. Et nous pouvons voir comment les différentes stratégies
affectent nos résultats. Donc 32 %, c'est déjà très mauvais. Mais même si vous devriez probablement prendre le classificateur
factice avec meilleur modèle, car
cela reste une chance, un résultat fortuit. Ces 40 % de chance sur la
prédiction ne sont donc ni une bonne chose, ni un bon signe. Disons ça. Donc, ici, nous allons à nouveau créer un nouveau modèle en utilisant les forêts
aléatoires. Nous y allons avec un classificateur
et nous y
adapterons directement les données afin ne pas avoir à
exécuter plus de cellules. Maintenant, le fait de noter sur les données
montrera que notre forêt aléatoire est au moins un peu
meilleure que celle du mannequin. Donc 20 % de précision en plus. Je dirais que nous
apprenons quelque chose d'
important ici pour prédire si nous sommes plus proches ou plus éloignés de la proximité de
l'océan. Maintenant, comme je l'ai dit, le score est plus approprié Nous allons
donc utiliser le
score ici avec notre modèle fictif
sur les données de test. Et l'avertissement qui
se trouve ici est intéressant car notre score de validation croisée nous
indique que la proximité de l'océan, la classe des îles, ne dispose pas suffisamment de données pour
effectuer une division appropriée. Il est donc très
important de le remarquer. À part cela, nous voyons, donc c'est quelque chose
à prendre en compte. Mais à part cela, nous constatons que même en cas de validation croisée, notre modèle est plus performant que
le modèle fictif. La validation de modèles
d'apprentissage automatique me
tient particulièrement à cœur. Comme il est
devenu si facile de créer des modèles d'apprentissage
automatique, c'est tellement important que vous
fassiez le travail et que vous vous rendiez
compte que ces modèles ont réellement appris
quelque chose de significatif et je suis juste en train de lire
quelque chose dans le bruit. Et ces stratégies constituent vraiment le niveau de base que vous devez utiliser pour chaque modèle d'apprentissage
automatique. Et dans le prochain cours, nous verrons
comment créer réellement modèles
équitables et comment nous assurer que notre modèle
ne désavantage personne en raison d'une classe
protégée, par exemple et cela sera extrêmement
important si vous touchez les humains avec votre modèle d'apprentissage
automatique.
28. Interprétabilité de 46 ML: Dans ce cours, nous
examinerons l'
interprétabilité de l'apprentissage automatique. Nous allons donc examiner
ce modèle de boîte noire que nous avons
construit et nous examinerons
ce qu'il a réellement appris. Et si vous êtes comme moi
et que vous avez déjà construit un modèle et que vous l'avez montré à
votre patron en lui disant : « Oui, il a appris et s'est tellement
bien
comporté lors de cet appel, comme s'il avait une précision de 60 % ». Ils ne seront pas impressionnés. Ils veulent savoir en quoi consiste
réellement ce modèle d'apprentissage
automatique. Dans ce cours, nous examinerons chaque caractéristique de
nos données qui influence la décision prise dans notre modèle d'apprentissage automatique. Et nous allons étudier
en profondeur les intrigues vraiment intéressantes que vous pouvez créer et qui influencent la décision dans un modèle
d'apprentissage automatique. Nous allons donc faire semblant
d'avoir déjà effectué l'ensemble de la validation et de la création de modèles ainsi
que la science des données auparavant. Nous pouvons donc vérifier si
notre modèle est équitable. La notion d'équité repose donc en
fait sur l'idée que même si notre modèle n'
a pas intégré la classe de
proximité de l'océan, il peut implicitement
désavantager cette classe. Vous pouvez donc vérifier ici. Notre division, nous
abandonnons directement la proximité de l'océan. Nous ne nous entraînons pas dessus. Mais peut-être que nos données
désavantagent implicitement une classe
située à proximité de l'océan. Alors vérifiez cela. Je suis en train de faire quelques tours de pandas que j'utilise depuis un moment avec
des panélistes. Voici donc ce que
vous pouvez faire avec des partenaires. Parce que vous avez ici les données de validation et cela
ne constitue qu'une partie de notre DataFrame. Je souhaite trouver tous les indices
de notre DataFrame qui appartiennent à cette classe et trouver
l'intersection de cet index avec les données de
validation. De cette façon, je peux
choisir le sous-ensemble de la classe dans notre
ensemble de validation sans
avoir réellement les données,
bien présentes dans le DataFrame
issu de notre division du train de test. Pour ce faire,
je joue un peu avec lui et j'
essaie de le faire fonctionner, imprimant
simplement sur un format surdimensionné pour
voir ce qui se passe. Je peux donc
valider avec les données que ce sont
les données que je veux. Juste ici. Vous voyez que maintenant j'
en prends le sous-ensemble, en prenant l'indice. Ensuite, j'imprime
l'intersection de x val et de l'index basé sur les classes
que j'ai créé auparavant. Enregistrez donc ceci dans idx. Je peux donc simplement entrer dans le DataFrame et sous-définir le bloc de
données avec l'index. Dans ce cas, nous utiliserons la
fonction de notation du modèle pour avoir une première
idée de la performance réelle de notre modèle
sur le sous-ensemble de classes de nos données de validation. Juste ici. Imprimez ceci car
nous sommes maintenant dans une boucle. Je dois donc utiliser point loc ici. Et il est très important que vous sachiez aussi que je peux
encore faire des erreurs très fréquemment et que vous
ne pouvez pas avoir peur des erreurs en Python parce que cela ne fait pas mal.
Les erreurs ne coûtent rien. Alors essayez-le. Dans ce cas, j'ai fait une bêtise, j'ai parfois
du
mal à séparer les colonnes et les lignes. Et ici, il est intéressant que nous voyons des valeurs très variables. Nous en avons donc trois qui représentent environ 60
%, ce qui est bien. Mais la troisième valeur est environ 23 % tandis que la
dernière est nulle. Je regarde donc les indices. Et nous pouvons voir
ici que ce doit être une île,
car l' Irlande n'a que
cinq valeurs au total. Nous avons donc certainement un problème de
prédiction,
même si notre modèle fonctionne
bien dans l'ensemble. Il obtient de très mauvais résultats sur les données de l'île parce qu'
il n' y en a pas
assez sur place. Vous pouvez voir ici que je vais
essayer d' améliorer le modèle
en le
stratifiant sur la proximité de l'océan juste pour essayer de voir si cela
change tout. Et ce n'est pas le cas. Parce que maintenant, je me suis
assuré qu' ils sont
répartis de manière égale entre les classes et que nous avons
encore moins de données. Donc, avant d'avoir de
la chance, j'avais deux des échantillons et
le kit de validation. Et maintenant j'en ai moins. Maintenant, je ne peux pas le faire parce que le puits est déjà
un sous-ensemble des données Nous allons
donc simplement ignorer cette question
car avec cinq échantillons essaient de les répartir
sur tous les ensembles de données, c'est un peu discutable. Et vraiment, dans ce cas, vous devez vous demander si vous pouvez obtenir plus d'échantillons, créer plus d'échantillons
d'une manière ou d'une autre,
collecter plus d'échantillons ou s'il existe un moyen les
extraire de le système. Mais dans le sens où il s'agit de données, elles devraient généralement être représentées
dans votre modèle. Donc, dans ce cas, obtenez plus de données. Dans ce cas. Que puis-je voir ici que la stratification a
amélioré le modèle dans son ensemble, ce qui est agréable à voir
et de cette façon ? La barre oblique inverse
n est donc un nouvel espace juste pour le rendre
un peu plus beau. Nous pouvons voir ici
que cela
nous donne de bonnes prévisions
pour tout ce qui se trouve
près de l'océan, près de la baie et
de l'océan, et à moins d'une heure de l'océan. Mais les
performances de l'intérieur des terres sont
nettement inférieures aux nôtres
par rapport aux autres données. Ignorons l'
île pour le moment car nous avons discuté des problèmes
avec l'île. Jetons un coup d'
œil aux données de test. Parce que pour le moment, nous ne
faisons plus de réglages de modèles. Il s'agit donc vraiment de
la validation n et nous pouvons voir que
sur les données de test, intérieur a vraiment un problème. Notre modèle
fonctionne donc bien dans l'ensemble. Mais certaines choses se passent
ici avec nos données intérieures. Et il serait également bon de procéder à une validation croisée
ici. Nous pouvons donc réellement créer une
incertitude quant à notre score et voir s'il y a des
fluctuations. Mais passons à la L5. L5 ou IL-5 est un package d'
explication basé sur l'apprentissage automatique. Voici la documentation. Et pour les arbres de décision, il est indiqué ici que nous pouvons
utiliser les pondérations d'explication. C'est donc ce que nous
faisons ici. ici que j'appelle ça sur
notre modèle. Nous devons fournir
leurs estimateurs. Nous avons donc formé notre modèle et nous pouvons voir les poids de chaque fonctionnalité et comment
cette fonctionnalité est appelée. Et c'est une très
bonne façon d'
examiner votre modèle afin d'
expliquer ce qui influence le plus
notre modèle. Nous pouvons également utiliser Eli five pour expliquer les
prédictions individuelles. Donc, ici, nous
pouvons évidemment appliquer
notre objet estimateur, mais aussi fournir des échantillons
individuels et obtenir une explication de
la manière dont les différentes caractéristiques
ont influencé cette prédiction. Pour l'instant, nous n'utiliserons qu' un seul échantillon de nos données. Nous pouvons voir ici comment chaque
caractéristique individuelle contribue au résultat de 89 000. Et bien sûr, vous pouvez également le faire
pour les classificateurs. Ou nous pouvons répéter plusieurs nombres différents et voir comment ils sont
expliqués par Eli Five Je vais simplement utiliser l'écran ici. Comme je l'ai dit, le format
est vraiment sympa également, mais je n'ai pas vraiment envie d'
en parler dans ce cours. Et ici, vous pouvez
interpréter comment chacun de ces paramètres est influencé par d'autres paramètres
différents du modèle. Après les avoir examinés, nous pouvons examiner l'importance des
fonctionnalités. Vous vous souvenez peut-être, d'avant, de la forêt aléatoire
que vous pouvez faire introspection sur l'importance de la
fonctionnalité. Et Scikit-learn fournit également une importance de permutation
pour tout. Donc, pour tous, vous
pouvez l'appliquer à chaque modèle
d'apprentissage automatique disponible dans scikit-learn. Et cela fonctionne comme suit : l' importance de la permutation tient
essentiellement votre modèle, prend
chaque caractéristique des données et les
embrouille une par une. Cela va donc d'abord aux
ménages et aux magasins délabrés Ils sont
donc essentiellement bruyants. Et voit ensuite dans quelle mesure cela
influence votre prédiction. Et vous pouvez voir ici que cela vous
donne l'importance moyenne, l'écart type et
aussi l'importance globale. Vous pouvez donc vraiment
approfondir la façon dont votre modèle est affecté par ces caractéristiques,
par chaque fonctionnalité. Vous pouvez donc également décider de supprimer
certaines fonctionnalités ici. Ensuite, nous examinerons les diagrammes de dépendance
partielle. Ces diagrammes sont
vraiment intéressants car ils vous donnent un
aperçu unidirectionnel de la façon dont une fonctionnalité
affecte votre modèle. Et l'introspection est relativement
nouvelle dans Scikit-Learn. C'est pourquoi il y a
scikit, yellow brick, scikit minus yb, qui constituent
ces intrigues fantastiques. En haut au milieu, vous voyez la courbe de rappel de
précision, par exemple ,
et en général,
c'est un très bon moyen visualiser les différents éléments qui expliquent votre
apprentissage automatique. Nous voyons ici toutes les
différentes fonctionnalités de notre entraînement et comment elles influencent le résultat de la prédiction. Donc, en bas à droite, le revenu
médian que vous pouvez voir a une forte influence positive. Et ici, vous pouvez interpréter comment la modification d'une caractéristique influencerait les résultats en matière de
prix. Ainsi, les ménages, par exemple, il
y a une légère augmentation lorsqu' il y a plus de
ménages, etc. C'est une petite intrigue vraiment chouette. Mais la bibliothèque finale et ma bibliothèque préférée pour l'explication de l'apprentissage
automatique, ils en ont tiré un article
sur la nature, même en bonne forme. Shap propose différents
modules explicatifs pour différents modèles Ils sont
donc fondamentalement
très adaptés à chacun d'entre eux. Vous pouvez même faire des
explications par apprentissage profond avec Shap. Nous utiliserons l'arbre explicatif
pour notre modèle de forêt aléatoire. Et nous souhaitons disposer de nombreux échantillons
de base. Nous pourrions donc être en mesure de sous-échantillonner cela
pour l'accélérer. Mais pour l'instant, nous allons lui transmettre
nos données de validation, expliquer l'objet que nous avons
créé et le calculer. Cela prend donc une seconde et je vais l'
annuler ici parce que je veux les enregistrer
dans une variable afin pouvoir les réutiliser plus tard sans avoir à les
recalculer. Mais en général, le complot que je veux
vous montrer est un complot de force. Ce graphique peut être utilisé pour expliquer
essentiellement
l'ampleur et
la direction de chaque caractéristique de votre
modèle d'apprentissage automatique de vos données, ainsi que la manière dont elle modifie la prédiction. Et j'adore utiliser ces diagrammes et rapports car
ils sont très intuitifs. Vous le verrez dans une seconde. Nous devons donc transmettre ici
la valeur attendue dans notre objet explicatif et les valeurs de forme que
nous avons calculées précédemment. Et l'un de nos points de données
se trouve dans les données de validation. Vous pouvez donc
le faire à nouveau pour plusieurs de vos points de
données de validation. J'ai fait une erreur et je
n'ai pas souligné. Et aussi, j'
aurais dû activer JavaScript pour Shapley car
ils font de belles intrigues. Ils le sont, ils se rabattent
sur JavaScript pour ce faire. Et il doit être
initialisé ici même. Mais ensuite, nous avons cette intrigue et j'espère que vous
pourrez l'essayer vous-même. Parce qu'ici, vous pouvez voir que cette prédiction particulière a été plus influencée négativement par le revenu
médian. Et ensuite, attirez la population
un peu moins positivement en termes de nombre de
ménages. Et dans l'ensemble, un
très beau package. Nous avons donc
examiné différentes manières de
visualiser et d' inclure des données dans vos rapports, ainsi
que la manière de les générer et de consulter la documentation afin qu'ils
aient bien plus à vous offrir. Dans ce cours, nous avons examiné
le modèle d'apprentissage automatique Nous avons
donc examiné manière dont les différentes fonctionnalités influencent notre décision en matière d'apprentissage automatique. Mais dans quelle mesure cette
influence influence-t-elle la décision et comment les
différentes caractéristiques
influencent-elles les autres caractéristiques ? Peut-être pourrions-nous
même en supprimer une partie de notre acquisition de données initiale. Et lors du prochain cours, nous examinerons
l'équité. Il s'agit donc d'un aspect important dans lequel modèles
d'apprentissage automatique
peuvent en fait
désavantager certaines classes protégées parce qu'elles apprennent quelque chose qu'
elles ne devraient pas apprendre. Et nous verrons comment détecter cela et quelques stratégies pour y remédier.
29. 47 équité nouveau: Dans ce cours, vous aurez
un aperçu l'apprentissage automatique et de l'équité. L'apprentissage automatique a récemment eu une mauvaise réputation car il a désavantagé certaines classes
protégées qui n'auraient pas dû être
désavantagées par le modèle. Et cela n'a été révélé que
par les personnes qui s'en sont rendu compte, et non par la science des données qui a fait
le travail à l'avance. Dans ce cours, nous
verrons comment vous pouvez effectuer le travail. Comment savoir si les performances de votre
modèle sont moins bonnes sur certaines
caractéristiques protégées. Et regardez également si votre
modèle d'apprentissage automatique est moins certain dans certains domaines. Donc, parfois, vous
obtenez un modèle qui
prédit que la situation d'une personne se détériore parce qu'elle fait
partie d'une classe prédite. Et c'est totalement interdit. Si cela se produit, votre modèle d'apprentissage automatique risque de ne jamais atteindre la production. Mais parfois, votre modèle
d'apprentissage automatique est tout simplement moins certain pour certaines personnes
s'il est proposé certains cours. Ensuite, vous devriez essayer d'
augmenter la certitude du modèle en effectuant
au préalable
les travaux d'apprentissage automatique et de
science des données. Cela s'appuiera
sur ce que nous avons fait et sur la partie interprétabilité. Eh bien, nous avons déjà fait une partie
de l'évaluation de l'équité. Nous commençons par une forêt aléatoire
et nous marquons. Nous avons donc une base de référence savoir dans quelle mesure notre modèle
global fonctionne bien. Ensuite, nous allons commencer à le
décortiquer par classe. Nous avons donc déjà
cette stratification sur la classe, car nous allons la
garder d'avant, car elle a amélioré le
modèle de manière significative. Mais ensuite, nous allons répéter
les cours et voir dans quelle mesure ils s'en
sortent.
Au début. Nous voulons connaître la partition et gros, faire le même travail que celui que nous avons fait pour la partie
interprétabilité. Nous allons donc
suivre nos cours ici. Ensuite, nous pouvons réellement
y jeter un coup d'œil et l'interpréter. Nos données. C'est ici que
nous ferons le travail
pour obtenir nos indices. Nous faisons donc le tout avec l'intersection
et obtenons nos indices de classe
et le début. Cela va donc être
enregistré dans idx pour l'index. Ensuite, nous prenons l'
union et l'intersection, non l'union de ces valeurs pour la validation
et pour notre test. Parce qu'à l'heure actuelle, nous n'en avons qu'un seul pour vraiment tester nos algorithmes. Donc, avoir les deux ensembles de données résistants, c'est très
bien pour cette partie. En général, vous le faites à la fin après avoir
réparé votre modèle. Et après le
réglage des hyperparamètres pour voir si votre modèle est
désavantagé par quelqu'un. Nous prenons donc l'intersection avec un index de classe ici, copions et nous nous
assurons que les données s'y trouvent. Ensuite, nous pouvons évaluer le modèle sur les
données de validation et sur les données de test. Ces scores devraient,
idéalement, tous
être aussi performants. Et idéalement,
ils fonctionnent tous aussi bien que
le score global du modèle. Mais nous nous souvenons que l'intérieur des terres était bien
pire que tout le reste. Et bien sûr, nous avons des
problèmes avec le
fait que l'Irlande ne dispose pas d'un nombre suffisant d'échantillons pour effectuer la validation. C'est pourquoi j'ai inclus
juste un fichier script. Et pour l'instant, plus tard, je vais également vous montrer comment détecter les erreurs dans votre traitement
afin que nous puissions y faire face. Ensuite, nous élargirons cela
pour inclure la validation croisée. Parce qu'avec
la validation croisée, nous pouvons vraiment nous assurer qu' il n'y a pas de
fluctuations étranges dans nos données. Peut-être que l'intérieur
des terres contient juste des données amusantes qui rendent
vraiment
très impressionnant et ses prévisions. est donc
très important de le faire connaître ici. Et ce n'est que le
début pour toi. Si vous voulez vous
amuser avec ça, vous pouvez
aussi essayer les mannequins de I'm Bill et vraiment comprendre pourquoi Inland se
porte tellement moins bien. Utiliser l'interprétabilité
pour vraiment étudier pourquoi quelque chose se passe dans ce
modèle ici même. Pour que nous ayons les scores. Et en regardant
ces scores, c'est sympa. Ça devient un peu
trop avec les chiffres. Alors, que pouvons-nous faire ? Tout d'abord, c'est à essayer,
sauf que Python l'a fait. Donc, s'il y a une erreur, parce que l'Irlande ne
dispose pas de suffisamment de données, nous pouvons détecter cette erreur. Et avec l'exception, nous allons simplement tracer un chemin pour que
tout le reste fonctionne toujours. Après avoir également traité les
îles. On y va. Nous allons maintenant les
enregistrer en tant que variables, en tant que Val et test. Parce qu'alors nous
pouvons simplement calculer des statistiques à ce sujet. Obtenez donc la moyenne et l'
écart type. Un indicateur d'
incertitude serait donc, ou quelque chose d'amusant
se produisant ici, si l'
écart type de notre validation croisée
était très élevé. Ce qui est intéressant, c'est que ce n'est pas le cas. Dans ce cours, nous avons
examiné comment analyser notre modèle
d'apprentissage automatique et l'
évaluer sur différentes classes
protégées sans formation sur celles-ci. Et nous avons vu qu'un modèle
qui, dans l'ensemble, fonctionne plutôt bien peut très
mal fonctionner dans certaines classes. Et que parfois nous ne
disposons même pas de suffisamment de données pour vraiment
évaluer notre modèle. Nous devons donc
revenir à l'acquisition de données et
obtenir davantage
de données pour être réellement en mesure de créer un
bon modèle et de faire science des données de
bonne qualité en
ce qui concerne cette classe. Et l'analyse de
rentabilisation ici est très claire. Vous ne voulez jamais être désavantagé, quelqu'un qui
serait un bon client, parce que vous perdez
un bon client. Ceci conclut le chapitre sur apprentissage
automatique et la validation de
l'apprentissage automatique. du prochain cours, nous examinerons visualisation et la manière de créer superbes diagrammes
que vous pourrez utiliser dans votre rapport
et vos présentations sur la science des données.
30. 50 Viz Intro nouveau: Dans ce dernier chapitre
, nous
examinerons la visualisation des données et la manière de générer des présentations
et des rapports PDF
directement à partir de Jupiter. Et c'est ainsi que se termine ce cours.
31. 51 Visualisation de base nouveau: Dans ce cours, vous allez apprendre les mécanismes sous-jacents à la visualisation
des données en Python. Nous importerons nos données comme toujours, puis nous utiliserons la
bibliothèque de traçage standard en Python. Matplotlib at sous-tend
la plupart des autres
bibliothèques de traçage de plus haut niveau, comme
Seaborne. Il est donc très bon de le
connaître car vous pouvez également l'utiliser pour vous interfacer
avec Seaborn. Nous allons donc créer un graphique linéaire simple avec la valeur médiane de la maison ici. Maintenant, vous
voulez généralement un graphique linéaire pour les données qui sont réellement
liées les unes aux autres. Nous allons donc commencer à
modifier celui-ci. D'abord. Nous allons ouvrir une figurine. Et nous appellerons également le plot show parce que Jupyter Notebook facilite
la tâche en nous montrant l'objet du complot juste après l'exécution par le vendeur. Mais c'est vraiment
la bonne façon de procéder. Nous pouvons donc modifier
la taille de la figure en initiant notre objet figuratif avec une taille de figure différente. Ils sont généralement
mesurés en pouces. Oui, c'est tout. Juste un aparté. Ensuite, nous pouvons changer
cela à partir d'un graphique linéaire. Nous allons le modifier davantage. Donc puisque les diagrammes
linéaires n'ont aucun rapport, procréez ici, parce que si on les compare les uns aux autres, ça a l'air un peu cool. Nous pouvons changer le
marqueur pour qu'il soit un x. Et nous obtenons un joli
nuage de points ici. Et vous pouvez constater
que la navigation maritime, par exemple nous
permet d'
obtenir beaucoup plus facilement un joli diagramme de dispersion. Ce complot demande
encore beaucoup de travail. Mais sachez que c'
est ainsi que nous changeons les couleurs et les
différents marqueurs. Vous pouvez rechercher les marqueurs
sur le site Web de matplotlib. Il existe une myriade de marchés
différents. Mais alors nous pouvons également commencer à
y ajouter des étiquettes. L'objet de tracé que nous
avons est donc un simple objet de tracé. Nous pouvons donc simplement ajouter une étiquette. Donc, x label représente notre population, et y label sera la valeur de
notre maison ici même. Et nous pouvons ajouter un titre parce que nous voulons que nos intrigues soient belles et informatives. Et en plus, nous pouvons ajouter des couches supplémentaires de
traçage en plus de cela. Ainsi, au lieu de
comparer la population à la valeur médiane de la maison, nous pouvons tracer la population par rapport au nombre total de chambres à coucher et
modifier la taille du
marqueur, la couleur du marqueur et
le style du marqueur. Mais évidemment, le
nombre total de chambres est évalué très
différemment de la valeur médiane de notre maison. Nous pouvons donc simplement créer
un correctif dès maintenant. Bien sûr, on ne
fait jamais ça dans un vrai complot. Mais juste pour montrer comment superposer différents types de
données dans le même graphique, vous pouvez le modifier. De cette façon. Vous pouvez enregistrer vos données et
les mettre à disposition
sous forme de fichier normal. Changer le DPI signifie que
nous avons les points par pouce. C'est en quelque sorte la résolution de notre complot qui est sauvée. Ensuite, nous pouvons également tracer ImageData. Nous n'avons pas d'image pour
le moment, mais elle vaut le détour. Et en gros, il vous suffit de lui donner les données de l'image et il
tracera l'image 2D pour vous. Voyons comment modifier
ce graphique si vous préférez y ce graphique si vous préférez superposer différentes
données. Par exemple, si nous
n'avions qu'un seul scatter, c'est très bien
et nous pouvons ajouter une légende. Mais cela nous avertit qu' il n'y a pas d'étiquettes ou d'objet graphique
dans cet objet graphique. Cela signifie que nous pouvons
ajouter une étiquette à notre diagramme de données ici même. Et nous l'appellerons simplement maison. Nous avons donc maintenant une légende ici. Il est plus logique de
superposer davantage de données. Donc, si nous voulons tracer
certaines données en haut, nous pouvons simplement appeler une autre fonction de
tracé ici. Changez le marqueur pour
qu'il soit un peu
différent et vous verrez que notre légende
est également mise à jour. Voici donc comment
créer des intrigues singulières. Et comme je l'ai mentionné, C1 est une
abstraction de haut niveau pour matplotlib. Cela signifie que nous pouvons réellement utiliser matplotlib pour travailler un
peu avec un C1. Et cela ne vous donnera qu' un exemple de la façon de
sauvegarder un complot de Seaborn. Mais vous pouvez également
rechercher d'autres moyens facilement. Ajoutez des informations à
vos tracés maritimes ou modifiez vos tracés Seaborn via l'interface
matplotlib. Donc, ici, nous allons faire le diagramme de paires avec seulement 100 échantillons parce que
nous voulons que ce soit rapide. Et nous pouvons à nouveau ouvrir une figurine matplotlib et modifier la
taille de la figure comme nous le souhaitons. Et puis sauvegardez le chiffre. Ici, nous pouvons voir que cela
est désormais disponible au format PNG. Ouvrez le fichier PNG et
utilisez-le partout où nous en avons besoin. Juste ici. Et cela, en ouvrant, cela ressemble à l'intrigue, mais en tant qu'image. Si vous souhaitez créer
des diagrammes rapides directement à partir de DataFrames sans appeler
Seaborn ou matplotlib. Vous pouvez appeler la fonction Pandas
Plot en fait, qui s'interface avec Seaborne. Donc d of plot vous donne la possibilité de créer
différents types de parcelles. Vous pouvez vraiment créer des diagrammes à
barres et histogrammes ainsi que des diagrammes de
dispersion, ce que nous ferons cette fois-ci. Cela signifie que nous allons simplement
fournir l'étiquette de nos données x et y et leur
demander de créer un nuage de points. Nous utiliserons à nouveau la population
contre la valeur de notre maison. Désolée, encore une fois le nombre total de chambres. Et fournissez-nous simplement le
mot nuages de points, un nuage de points, un nuage de points. Dans ce cours, nous avons appris les différentes manières de tracer des données. En Python. Nous utilisons matplotlib, nous utilisons directement des pandas, et nous avons même vu que ceux-ci interagissent les uns avec les autres car les pandas et les marins
dépendent tous deux de matplotlib. Vous pouvez donc prendre les
objets renvoyés par ces tracés, les enregistrer
et même
les manipuler davantage. Dans le prochain cours,
nous
examinerons le traçage des informations spatiales.
32. 52 géospatial nouveau: Dans ce cours, nous
examinerons la cartographie des données géospatiales. Donc, des données lorsque vous avez des
géolocalisations disponibles. Vous pouvez ainsi créer de belles cartes et vraiment montrer où se trouvent
vos données, ce qui ajoute une autre dimension la compréhension
de vos données. Nous allons commencer par
charger nos données. Nos données contiennent déjà la
longitude et la latitude. Cependant, ils ne sont pas dans
le bon ordre, nous devons
donc en
tenir compte. Nous allons importer du folium. Folium est un moyen de tracer nos données sur des cartes de
manière interactive. Nous allons donc commencer par une carte de base folium et indiquer l'emplacement
de nos premières données. Et j'aime marcher et moyen
facile pour moi de créer la carte
de base mes données est de fournir la moyenne de la latitude et de la longitude comme point
central de notre carte. Et puis nous
pourrons examiner, oui, l'impact de l'affichage. Vous pouvez voir que
OpenStreetMap est en arrière-plan. Et tu peux t'y promener. Ensuite, nous pourrons commencer à
y ajouter des éléments. L'ajout de marqueurs en est un exemple. Les marqueurs sont un bon moyen d'ajouter
simplement des emplacements à partir de vos points de données et de simplement
y donner des exemples d'emplacements
sous forme d'info-bulles. Et c'est ce que
nous allons faire ici. Volume possède donc la classe de marqueurs et examinez toutes les différentes classes
que vous pouvez utiliser. La bibliothèque continue de s'agrandir, mais elle contient déjà des fonctionnalités
vraiment
intéressantes pour créer
des cartes vraiment intéressantes. Et nous utiliserons le
marché pour nous promener. Nous y ajouterons les premiers points
de données de notre marché. C'est pourquoi il doit
adopter deux méthodes. Et nous allons copier la
carte de base dans la cellule, car tout doit être
contenu dans une seule cellule pour pouvoir le modifier. Et nous pouvons le voir ici. Nous allons donc changer cela, ajouter de la latitude et de la longitude
et utiliser simplement I locked pour obtenir la toute première ligne de
notre DataFrame, puis l'
ajouter à notre carte de base. Et lorsque nous dézoomons, nous pouvons voir notre premier
marqueur sur la carte. C'est donc très sympa. Nous pouvons changer sur la carte. Nous pouvons également changer
les marqueurs. Maintenant, différents types de marqueurs. Vous pouvez donc également ajouter des cercles à des
fins de marketing à votre carte. Essayez-le sans aucun doute. C'est très amusant. Je pense qu'il agit d'une
autre
façon très intéressante de visualiser les données. Alors que notre carte zoomait beaucoup trop
à la valeur standard, il n'y avait
rien à trouver à 12. Donc, faites un petit zoom arrière au début pour que nous puissions
réellement voir dans les Marcos Nous pouvons également ajouter plusieurs marqueurs en itérant sur notre DataFrame. Donc, pour cela, nous
utilisons simplement la méthode Iarose nous avons dans le
dataframe et cela renverra le
numéro de notre ligne ainsi que la ligne et
le contenu de la ligne lui-même. Donc, pour que cela fonctionne, j'ajouterai probablement un échantillon
au DF, car
si nous ajoutions 20 000
marqueurs à notre carte, cette carte serait
totalement illisible. On y va. Alors peut-être en faire
cinq pour commencer. Et frit. Ici, je vais ajouter l'ISO qui y est déballé dans
la boucle elle-même. Et je peux le supprimer, le verrouiller ici parce que nous
n'avons pas besoin d'accéder à l'
emplacement de notre objet. est déjà ce que
fait l'itération pour nous. Et nous avons un joli
groupe
de quelques Mockus ici. Ensuite, vous pouvez également
modifier ces marqueurs, exemple ajouter une info-bulle
lorsque vous passez la souris dessus. Et cette infobulle peut contenir toutes les informations dont
nous disposons. Ainsi, par exemple, nous pouvons utiliser la proximité de
l'océan ici. Maintenant, lorsque vous le survolez, vous pouvez voir quel type de
fleurs contient ce marqueur fonction de notre
date dans ce cours, nous avons vu comment
créer des cartes, ajouter des marqueurs à ces cartes et les créer
réellement sympa et interactif. Dans le prochain cours,
nous
examinerons d' autres diagrammes interactifs, des diagrammes à
barres et tout le
reste pour pouvoir interagir directement avec les données et créer
ces jolis graphiques interactifs.
33. 53 exporter des données nouvelles: Nous avons souvent besoin de
sauvegarder ces données car nous ne voulons pas réexécuter l'
analyse tout le temps. Tout ce que nous voulons, c'est partager les
données avec un collègue. Cela signifie que nous devons exporter les données ou les
visualisations que nous réalisons. Et c'est ce que nous allons
faire dans ce cours. Nos données étant légèrement
modifiées, nous pouvons par exemple utiliser le codage one-hot
que nous utilisions auparavant. Juste pour que nous
sachions que nous avons des
données différentes dedans. Et nous pouvons utiliser,
au format CSV ou l'une de ces
méthodes, vous pouvez également sortir, expirer et
écrire ceci dans un fichier. Ainsi, les
données après les avoir traitées
sont disponibles et nous n'
avons pas à recommencer le
calcul à chaque fois. Et pour CSV, il faut beaucoup d' arguments
différents,
tout comme lire du CSV C'est très pratique et
vous pouvez ainsi vraiment remplacer les nans
ici par le mot nan, par exemple . Les gens savent donc qu'il s'agit d'un chiffre, pas
simplement d'une valeur manquante laquelle vous avez oublié
d'ajouter quelque chose. Ensuite, nous pourrons jeter
un œil à ce dossier. Et dans
le navigateur Jupiter, recherchez Nana. Et nous pouvons voir
ici qu'il a ajouté nan directement dans le fichier. C'est donc vraiment un
wrapper pratique pour notre DataFrame dans
un format partageable. Encore une fois, au lieu de cela, nous pouvons également utiliser la fonctionnalité
d'écriture. C'est donc essentiellement ainsi que vous pouvez écrire n'importe quel type
de fichier que vous souhaitez. Nous allons utiliser le texte extérieur et ce point TXT et passer
du mode au mode écriture. Donc w, et nous allons simplement utiliser F S, un identifiant de fichier pour le moment. Et un point F, non ? Cela devrait nous donner l'
opportunité ou la
possibilité d' écrire une chaîne
dans ce fichier. Et nous pouvons convertir
notre DataFrame en une chaîne avec un mur de valeurs. Je pense qu'il
devrait y avoir une méthode
à deux chaînes pour vraiment donner, oui, une
méthode toString ici, qui est innocence et une
autre méthode d'exportation. Mais en réalité, c'est
juste pour montrer que vous pouvez écrire n'importe quel type de chose que vous pouvez former sous forme de chaîne dans un fichier. Nous allons donc voir
ici que ce mur n'est pas aussi bien
formaté qu'avant. Nous avons les onglets entre les deux à la
place du commentateur. Il faut donc vraiment un
peu de magie des cordes pour que cela fonctionne aussi bien
que les pandas au format CSV. Mais oui, c'est ainsi que vous
exportez des fichiers en Python. Maintenant, il convient de
noter que le droit l'
emportera toujours sur votre fichier. Donc, si vous le
remplacez par autre chose, nous
examinerons à nouveau le fichier. Nous pouvons voir que le fait de rafraîchir
cela ne nous donne que cela. Le fichier est donc remplacé
par l'opération d'écriture. Il y a un autre mode que nous
devrions examiner, qui est le mode ajout. Et le mode ajout
a juste le signifiant a, où nous pouvons ajouter dans un fichier. C'est donc très pratique
si vous souhaitez conserver les données d'origine
ou une
sorte de processus
en cours pour écrire des données et
les ajouter à votre fichier, un fichier existant sans en supprimant essentiellement ce
fichier. Nous pouvons donc voir ici que
nous avons écrit notre DataFrame. Ensuite, nous pouvons le
copier et modifier pour ajouter Executed, parcourir, l'actualiser et jeter un œil à la toute fin. Il doit dire n'importe quoi ou être. Et c'est le cas. Donc oui,
ce sont des dossiers. Nous l'avons déjà fait dans les
bases de la visualisation, mais si vous ignorez cela, lorsque vous avez des chiffres, vous pouvez
généralement les exporter à l'aide de la commande de sécurité. Celui-ci prend donc un nom de
fichier, des gestionnaires de fichiers, une sorte de signifiant
et, bien sûr, vous avez besoin d'une
sorte de tracé. Je tiens vraiment à vous indiquer la
méthode de mise en page serrée ici, car celle-ci est vraiment bonne, trop jeune pour améliorer la
disposition de vos parcelles sécurisées. Donc, si vous sauvegardez vos données elles apparaîtront et elles auront
l'air un peu bancales. PLT.Show tight layout
nettoiera vraiment les bords de votre silhouette et les
rendra généralement plus présentables. En gros, je les exécute sur
presque toutes les figurines exportées. Et vous pouvez voir ici que notre figurine a très bien été
exportée. Vous pouvez modifier tout cela
, tous ces paramètres. Bien sûr, pour enregistrer le chiffre exactement comme vous
le souhaitez. Peut-être que vous avez une couleur d'entreprise que vous souhaitez donner à votre silhouette. Dans. Dans cette coque, j'ai choisi le noir, ce qui est bien sûr un mauvais choix si vous êtes une
légende ou si vous débloquez. Mais oui, juste pour
te montrer comment faire, comment jouer avec. Nous avons vu à quel point il est
facile de sauvegarder des données dans différents
formats à partir de Python. Ensuite, lors du prochain cours,
nous verrons comment
générer des présentations directement à partir de
Jupiter Notebooks.
34. 54 présentations nouvelles: Il peut être compliqué de
générer des présentations complètes, mais il est possible d'obtenir des présentations de
Ride out of Jupiter. Et dans ce cours, je vais vous montrer comment utiliser n'importe quel
type de bloc-notes. Nous utiliserons celui créé et celui
de l'exploration visuelle. Vous voulez donc accéder à la barre d'outils
View Cell ,
puis au diaporama. Et vous pouvez modifier le type de
diapositive pour chaque cellule. Donc, si
vous souhaitez afficher ou
ignorer une diapositive, ce
sera l' une des diapositives
principales. Alors. Ainsi, tout ce que vous voulez
sur sa propre diapositive, vous pouvez le placer sous forme de fente, diapositive ou de sous-diapositive. Et la sous-diapositive va
être une navigation différente. Remarquez donc ces intrigues
pendant que je
regarderai la présentation
et dans une seconde. Et fragmenter, va essentiellement
ajouter un autre élément à la diapositive des parents. Nous allons donc également vérifier cela. Donc, après les avoir signifiés, nous pouvons accéder à File Download S et appeler les diapositives Reveal JS. Lorsque nous l'ouvrons, nous obtenons une présentation
directement dans le navigateur. Débarrassons-nous de ça. Il s'agit donc d'une diapositive principale défile essentiellement vers la
droite, et nous pouvons toujours regarder les données et nous montrer
le code et tout le reste. Parfois, il faut
jouer un peu avec,
euh, avec, euh, des intrigues
qui fonctionnent. Voici les diapositives dont
nous avons parlé tout à l'heure. Et maintenant, le fragment
va essentiellement ajouter un autre élément à votre
diapositive. Il s'agit donc également du fragment
et d'un autre fragment. Dans ce cours, nous avons eu un
aperçu de la façon de générer des présentations en JavaScript
et HTML à partir de Jupiter. Nous avons constaté que nous pouvions
réellement conserver les données et le code
dans nos présentations, même inclure
automatiquement ces diagrammes. Nous avons vu que
nous pouvions créer des sous-diapositives et des fragments
pour créer des présentations
vraiment intéressantes différentes de
ce que vous voyez habituellement. Dans le cours suivant. Nous verrons comment obtenir des
rapports PDF à partir de Jupiter.
35. 55 PDF nouveau: Dans ce dernier cours, vous apprendrez à générer des
PDF directement à partir du bloc-notes
Jupiter. Et comment intégrer ces
magnifiques visualisations dans vos PDF sans
aucune étape intermédiaire. Nous allons commencer par
un carnet Jupiter et passer à l'aperçu avant impression. Ici, nous pouvons déjà l'
enregistrer au format PDF. Si nous imprimons ceci. Nous
pouvons également le télécharger au format PDF, mais ici, vous devez vous
assurer que vous l'avez installé. Et je sais que beaucoup de gens ne le savent pas. Je ne le fais pas sur
cet ordinateur, par exemple
, vous obtenez une erreur de serveur. Vous pouvez passer à l'étape supplémentaire
du téléchargement au format HTML. Ouvrez le code HTML et
cela équivaut à l'aperçu avant impression
et enregistrez-le au format PDF. Et dans le PDF, vous pouvez voir qu'il contient désormais votre code et toutes les informations que vous aviez auparavant
disponibles. De plus, nous
avons NB Convert, donc la
fonctionnalité de conversion des ordinateurs portables fournie
avec le bloc-notes Jupiter, et je pense que c'est une très
bonne façon de travailler avec. Cela m'a permis de lire quand on
vous appelle simplement Jupiter espace et que vous vous convertissez. Et il vous expliquera essentiellement
comment l'utiliser. Donc, ce que vous voudrez
faire, c'est accéder à vos données ici dans mon référentiel de code pour
ce cours Skillshare. Et là, vous pouvez simplement Jupiter
et être converti, puis choisir l'une des manières dont vous souhaitez générer le
rapport à partir de ce code HTML. Html est généralement la valeur par défaut. Donc, si vous appeliez simplement Jupiter et que vous étiez converti
sur votre bloc-notes,
il serait converti en HTML. Vous pouvez également indiquer
le moins moins deux. Mais si vous dites PDF, rencontrerez la même
erreur qu'auparavant, à savoir que vous n'avez pas installé latex. Donc, si vous l'installez, vous pouvez facilement obtenir ces rapports PDF
directement pour les mettre en ligne. Un autre moyen très intéressant est que, eh bien, si vous êtes dans un carnet
Jupiter, il joue souvent un
peu et vos cellules
peuvent contenir des chiffres assez élevés. Alors sois comme 60 ou 70 ans. Et cela montre en gros combien d'expériences
vous avez faites. Si vous voulez un bloc-notes propre
qui soit exécuté de haut en bas, vous pouvez leur fournir l'option
d'exécution moins moins, qui exécute
votre bloc-notes cellule
par cellule avant de l'exporter. Et c'est ainsi que vous
générez des PDF dans Jupiter. Alors peut-être que vous devez installer la
dernière version pour pouvoir le faire. Tous. Vous utilisez la fonctionnalité
d'impression des rapports HTML. Mais cela conclut le cours sur science
des données et Python
ici sur Skillshare. Merci d'être
arrivé jusqu'ici. J'espère que cela vous a plu et que cela vous permettra de progresser
dans votre carrière.
36. 60 Conclusion nouvelle: Félicitations, vous avez suivi l'
intégralité du cours sur science
des données avec Python
ici sur Skillshare. Et je comprends
que c'est beaucoup. Nous avons examiné l'ensemble du flux de travail lié à la science
des données, y compris le chargement le nettoyage des données, avant de procéder analyse
exploratoire des données et créer des modèles
d'apprentissage automatique. Ensuite, en les validant, en
examinant leur interprétabilité et en générant des rapports et des présentations à partir de notre analyse. C'est énorme et je comprends que cela
peut être écrasant. Mais vous pouvez toujours revenir
aux petites vidéos
et
les regarder à nouveau pour mieux comprendre
et approfondir vos connaissances. En ce moment. À mon avis, les
meilleurs data scientists
se contentent de créer des projets. Vous en apprendrez davantage
sur la science des données en
appliquant vos
connaissances dès maintenant, et c'est pourquoi nous
avons un projet. À la fin de ce cours, vous allez créer un beau projet de science des
données, analyser vos propres données
ou celles que je fournis ici et créer un PDF avec au moins une visualisation
que vous aimez. Honnêtement, plus
tu en fais, mieux c'est. Approfondissez les données, trouvez des relations intéressantes
dans votre ensemble de données et déterminez comment
les visualiser au mieux. Et c'est ainsi que vous deviendrez un meilleur data scientist en appliquant réellement
vos connaissances. Merci encore d'
avoir suivi ce cours. J'espère que cela vous a plu. Et consultez mes autres
cours ici sur Skillshare Si vous avez le temps, assurez-vous de
créer quelque chose d'intéressant, quelque chose que vous aimez vraiment. Merci encore d'
avoir suivi ce cours. J'y ai consacré beaucoup de
travail et je suis heureuse que vous
y soyez parvenue. J'espère vous revoir
et construire quelque chose d'autre.