# The Mapper Algorithm | Overview & Python Example Code

https://www.youtube.com/watch?v=NlMrvCYlOOQ
Translation: fr

[00:00] Hey folks, welcome back.
  Salut tout le monde, bon retour.

[00:01] This is the second video in a three-part series on topological data analysis, or TDA for short.
  Ceci est la deuxième vidéo d'une série en trois parties sur l'analyse topologique des données, ou TDA en abrégé.

[00:08] In this video, I'll be talking about a specific technique under the umbrella of TDA called the mapper algorithm.
  Dans cette vidéo, je vais parler d'une technique spécifique sous l'égide de la TDA appelée l'algorithme mapper.

[00:15] What this approach allows you to do is translate your data into an interactive graphical representation, which enables things like exploratory data analysis and finding new patterns in your data.
  Ce que cette approche vous permet de faire est de traduire vos données en une représentation graphique interactive, ce qui permet des choses comme l'analyse exploratoire des données et la découverte de nouveaux motifs dans vos données.

[00:25] I'll start with a discussion of how the algorithm works before diving into a concrete example with code.
  Je commencerai par une discussion sur le fonctionnement de l'algorithme avant de plonger dans un exemple concret avec du code.

[00:31] And with that, let's get into the video.
  Et sur ce, entrons dans la vidéo.

[00:35] So in the previous video, I discussed a famous problem in math called the seven bridges of Koenigsberg.
  Donc dans la vidéo précédente, j'ai discuté d'un problème célèbre en mathématiques appelé les sept ponts de Königsberg.

[00:39] So I won't go into all the details of the problem, but it was eventually solved by famous mathematician Leonard Euler.
  Donc je n'entrerai pas dans tous les détails du problème, mais il a été finalement résolu par le célèbre mathématicien Leonard Euler.

[00:46] And the way he solved it was by drawing a picture, and this picture is what we now call a graph.
  Et la façon dont il l'a résolu était en dessinant une image, et cette image est ce que nous appelons maintenant un graphe.

[00:51] And so a graph consists of dots connected by lines.
  Et donc un graphe se compose de points reliés par des lignes.

[00:57] More technical term for these things: the dots are called vertices and the lines are called edges.
  Terme plus technique pour ces choses : les points sont appelés sommets et les lignes sont appelées arêtes.

[01:01] Another equivalent terminology is instead of calling this thing a graph we can call it a network and we can call the dots nodes and we can call the lines links so these are all equivalent terminology that I'll probably use interchangeably for this video.
  Une autre terminologie équivalente consiste à appeler cette chose un graphe, on peut l'appeler un réseau, on peut appeler les points des nœuds et on peut appeler les lignes des liens, donc ce sont toutes des terminologies équivalentes que j'utiliserai probablement de manière interchangeable pour cette vidéo.

[01:20] And so graphs or networks they typically represent something from the real world.
  Et donc les graphes ou les réseaux représentent généralement quelque chose du monde réel.

[01:22] So in this case Euler drew a graph representing Königsberg where each of the nodes represented a land mass and each of the lines connecting two nodes represented a bridge.
  Donc dans ce cas, Euler a dessiné un graphe représentant Königsberg où chaque nœud représentait une masse terrestre et chaque ligne reliant deux nœuds représentait un pont.

[01:35] And so what this does is it boils down the problem to its essential elements and this is what allowed Euler to famously solve this problem.
  Et donc ce que cela fait, c'est réduire le problème à ses éléments essentiels, et c'est ce qui a permis à Euler de résoudre ce problème de manière célèbre.

[01:44] And as I mentioned in the previous video, this is essentially what we're doing when we do topological data analysis: we are translating data from the real world into its essential elements or, in other words, into its underlying shape.
  Et comme je l'ai mentionné dans la vidéo précédente, c'est essentiellement ce que nous faisons lorsque nous effectuons une analyse topologique des données : nous traduisons les données du monde réel en leurs éléments essentiels ou, en d'autres termes, en leur forme sous-jacente.

[01:57] And so one way of doing this is via the mapper algorithm, and the main topic of this video.
  Et donc une façon de faire cela est via l'algorithme Mapper, et le sujet principal de cette vidéo.

[02:02] Algorithm allows us to translate data into a graph.
  L'algorithme nous permet de traduire des données en un graphique.

[02:08] So key applications of the map or algorithm one is exploratory data analysis.
  Ainsi, une application clé de la carte ou de l'algorithme est l'analyse exploratoire des données.

[02:11] It allows us to take a data set and generate a visually engaging and interactive visualization.
  Il nous permet de prendre un ensemble de données et de générer une visualisation visuellement attrayante et interactive.

[02:20] Another application is that it allows you to compress and visualize very high dimensional data.
  Une autre application est qu'il vous permet de compresser et de visualiser des données de très haute dimension.

[02:26] So imagine trying to visualize a 500 dimensional data set.
  Imaginez donc essayer de visualiser un ensemble de données à 500 dimensions.

[02:28] With mapper algorithm we can take our data set, compress it into a two-dimensional graph and then visualize it and try to highlight some key insights.
  Avec l'algorithme mapper, nous pouvons prendre notre ensemble de données, le compresser en un graphique bidimensionnel, puis le visualiser et essayer de mettre en évidence des informations clés.

[02:38] And we saw some examples of this in the previous video with discovery of cancer subtypes, defining new roles in basketball and characterizing the evolution of the two political parties in the U.S.
  Et nous avons vu quelques exemples de cela dans la vidéo précédente avec la découverte de sous-types de cancer, la définition de nouveaux rôles au basketball et la caractérisation de l'évolution des deux partis politiques aux États-Unis.

[02:49] So at a super high level the mapper algorithm takes data and translates it into a graph.
  Donc, à un niveau très élevé, l'algorithme mapper prend des données et les traduit en un graphique.

[02:53] But how exactly does it work?
  Mais comment fonctionne-t-il exactement ?

[02:55] I've broken down the algorithm into five steps and I apologize in advance because it's a bit sophisticated but I will do my best to explain it in plain English.
  J'ai décomposé l'algorithme en cinq étapes et je m'excuse par avance car c'est un peu sophistiqué, mais je ferai de mon mieux pour l'expliquer en anglais simple.

[03:05] So the first step is we start with our data set.
  Donc la première étape est que nous commençons avec notre ensemble de données.

[03:08] So here we have a two-dimensional data set because we have two variables x1 and x2.
  Donc ici nous avons un ensemble de données bidimensionnel parce que nous avons deux variables x1 et x2.

[03:12] Then the second step is we project our data into a lower dimensional space.
  Ensuite, la deuxième étape est que nous projetons nos données dans un espace de dimension inférieure.

[03:17] So here we're going from two dimensions and we're projecting down to one dimension.
  Donc ici nous passons de deux dimensions et nous projetons vers une dimension.

[03:21] And we can do this with any dimensionality reduction strategy.
  Et nous pouvons le faire avec n'importe quelle stratégie de réduction de dimensionnalité.

[03:22] Like we do something standard like PCA.
  Comme nous faisons quelque chose de standard comme l'ACP.

[03:26] We can do something more sophisticated as we will see in the example later.
  Nous pouvons faire quelque chose de plus sophistiqué comme nous le verrons dans l'exemple plus tard.

[03:31] Another popular strategy is to take just basic statistics to project out into one dimension.
  Une autre stratégie populaire est de prendre simplement des statistiques de base pour projeter en une dimension.

[03:35] In other words, you could consider two variables x1 and x2.
  En d'autres termes, vous pourriez considérer deux variables x1 et x2.

[03:39] So each point will have a corresponding x1 and x2 value.
  Donc chaque point aura une valeur x1 et x2 correspondante.

[03:41] You could take the average of those two and organize them onto a one-dimensional axis.
  Vous pourriez prendre la moyenne de ces deux et les organiser sur un axe unidimensionnel.

[03:45] You could take the max.
  Vous pourriez prendre le maximum.

[03:47] You could take them in so they're all these different strategies.
  Vous pourriez les prendre ainsi, ce sont toutes ces différentes stratégies.

[03:51] So we've gone from two dimensions down to one dimension.
  Donc nous sommes passés de deux dimensions à une dimension.

[03:53] So nothing too fancy yet.
  Donc rien de trop sophistiqué pour l'instant.

[03:55] So the next step is we define something called a cover.
  Donc l'étape suivante est que nous définissons quelque chose appelé un recouvrement.

[03:57] So basically what this means is we're going to define two subsets indicated by this red circle and this green circle.
  Donc fondamentalement, ce que cela signifie est que nous allons définir deux sous-ensembles indiqués par ce cercle rouge et ce cercle vert.

[04:04] And we will have these two subsets have some.
  Et nous aurons ces deux sous-ensembles qui ont une certaine.

[04:06] Overlap so we can see here that the red subset and the green subset indeed have some overlap and these are indicated by the yellow points in the center of this picture and so that's what we mean by cover we just define a collection of subsets that have some overlap which include the entirety of the data set.
  Chevauchement, donc nous pouvons voir ici que le sous-ensemble rouge et le sous-ensemble vert ont effectivement un certain chevauchement, et ceux-ci sont indiqués par les points jaunes au centre de cette image, et c'est ce que nous entendons par couverture : nous définissons simplement une collection de sous-ensembles qui ont un certain chevauchement et qui incluent la totalité de l'ensemble de données.

[04:24] Another thing is we could do more than just two subsets we could have three subsets four subsets so on but just for this toy example I chose two because it's easy to see what's going on here.
  Une autre chose est que nous pourrions faire plus que deux sous-ensembles, nous pourrions avoir trois sous-ensembles, quatre sous-ensembles, etc., mais pour cet exemple simple, j'en ai choisi deux parce qu'il est facile de voir ce qui se passe ici.

[04:34] Okay and then the fourth step is we cluster the pre-image there's a lot of jargon here so I'm just gonna break it down so if we look at step three we have these red points green points and yellow points but if we remember that each of these points has a corresponding point in our original data set so what's being shown in this picture in step four is our original data set but the points are colored based on which subset they appear in from step three and so the next step is we're going to iteratively go through all our subsets so we only
  D'accord, et ensuite la quatrième étape est que nous regroupons la pré-image ; il y a beaucoup de jargon ici, donc je vais juste le décomposer. Donc, si nous regardons l'étape trois, nous avons ces points rouges, points verts et points jaunes, mais si nous nous souvenons que chacun de ces points a un point correspondant dans notre ensemble de données original, donc ce qui est montré dans cette image à l'étape quatre est notre ensemble de données original, mais les points sont colorés en fonction du sous-ensemble dans lequel ils apparaissent à l'étape trois, et donc l'étape suivante est que nous allons parcourir itérativement tous nos sous-ensembles, donc nous seulement

[05:07] We have two subsets: we have a red subset at green subset, and we're going to apply our favorite clustering algorithm.
  Nous avons deux sous-ensembles : un sous-ensemble rouge et un sous-ensemble vert, et nous allons appliquer notre algorithme de clustering préféré.

[05:13] We'll start with this red subset.
  Nous commencerons par ce sous-ensemble rouge.

[05:15] So in other words, we're going to look at the red and yellow points only, and we're going to do a clustering algorithm, and let's say it looks something like this.
  En d'autres termes, nous allons examiner uniquement les points rouges et jaunes, et nous allons exécuter un algorithme de clustering, et disons qu'il ressemble à ceci.

[05:22] Then we will go to our next subset, which is the green and yellow points here, and we will cluster those, and let's say we get something like this.
  Ensuite, nous passerons à notre prochain sous-ensemble, qui est les points verts et jaunes ici, et nous les regrouperons, et disons que nous obtenons quelque chose comme ceci.

[05:30] So now we have these four clusters defined with some overlap between them.
  Nous avons donc maintenant ces quatre clusters définis avec un certain chevauchement entre eux.

[05:34] Now we're set up to create a graph.
  Maintenant, nous sommes prêts à créer un graphe.

[05:36] So we can create a graph where the nodes are these clusters, so four nodes corresponding to four clusters, and then two nodes are connected by an edge if the clusters have shared members.
  Nous pouvons donc créer un graphe où les nœuds sont ces clusters, soit quatre nœuds correspondant à quatre clusters, et deux nœuds sont reliés par une arête si les clusters ont des membres en commun.

[05:46] So this middle cluster shares members with the other three, and that's what's being shown here.
  Ce cluster du milieu partage donc des membres avec les trois autres, et c'est ce qui est montré ici.

[05:53] Okay, so this is just a toy example.
  D'accord, ce n'est qu'un exemple simplifié.

[05:55] I hope that was somewhat clear of what's going on here, but I'm going to try to make things more concrete with an example with code.
  J'espère que c'était un peu clair sur ce qui se passe ici, mais je vais essayer de rendre les choses plus concrètes avec un exemple avec du code.

[06:01] So in this example, we're going to do exploratory data analysis of S&P 500 data.
  Dans cet exemple, nous allons effectuer une analyse exploratoire des données du S&P 500.

[06:06] So our first step is to import some...
  Notre première étape est donc d'importer quelques...

[06:08] Modules so we have the yahoo finance module which allows us to get the stock data.
  Modules, donc nous avons le module yahoo finance qui nous permet d'obtenir les données boursières.

[06:12] We have this k-mapper module which allows us to do the mapper algorithm stuff.
  Nous avons ce module k-mapper qui nous permet de faire des choses liées à l'algorithme mapper.

[06:16] So we're importing this umap module sklearn and then something from sklearn and we're using these for our dimensionality reduction.
  Donc nous importons ce module umap sklearn et ensuite quelque chose de sklearn et nous les utilisons pour notre réduction de dimensionnalité.

[06:24] Then we have numpy and matplotlib to do some standard math and visualization stuff.
  Ensuite nous avons numpy et matplotlib pour faire des mathématiques standard et des visualisations.

[06:29] Okay so the first step as with any data science project is you're gonna get your data.
  D'accord, donc la première étape comme pour tout projet de science des données est que vous allez obtenir vos données.

[06:33] So this is pretty straightforward you just define your ticker names and you define the date range for which you want your data.
  Donc c'est assez simple, vous définissez simplement vos noms de tickers et vous définissez la plage de dates pour laquelle vous voulez vos données.

[06:40] Then with one line of code you can pull all that data.
  Ensuite avec une ligne de code vous pouvez extraire toutes ces données.

[06:43] And so this code is available on the github everything should just work out of the box.
  Et donc ce code est disponible sur github, tout devrait fonctionner directement.

[06:46] And once we have our data we can do some more preparation to make it ready to go to do our analysis.
  Et une fois que nous avons nos données, nous pouvons faire plus de préparation pour les rendre prêtes à effectuer notre analyse.

[06:51] So the first step is we're just going to look at adjusted close prices.
  Donc la première étape est que nous allons simplement regarder les prix de clôture ajustés.

[06:55] And so now what you can imagine is we have columns corresponding to ticker names and then we have rows which are corresponding to days that the markets open.
  Et donc maintenant ce que vous pouvez imaginer est que nous avons des colonnes correspondant aux noms de tickers et ensuite nous avons des lignes qui correspondent aux jours où les marchés ouvrent.

[07:04] And then what we're going to do is convert this pandas data frame into a numpy array.
  Et ensuite ce que nous allons faire est de convertir ce dataframe pandas en un tableau numpy.

[07:09] We're going to standardize each of the columns.
  Nous allons normaliser chacune des colonnes.

[07:11] So basically what that means is we're going to consider a column, compute its mean and standard deviation, and then we're going to subtract the mean from each value in this column and we're going to divide it by the standard deviation.
  Donc, en gros, cela signifie que nous allons considérer une colonne, calculer sa moyenne et son écart type, puis soustraire la moyenne de chaque valeur de cette colonne et la diviser par l'écart type.

[07:23] And then the last step here is we do a transpose, just because later this will allow us to compare tickers together as opposed to days.
  Et ensuite, la dernière étape ici est de faire une transposition, simplement parce que plus tard cela nous permettra de comparer les tickers entre eux plutôt que les jours.

[07:31] So we could also not do a transpose, and then the analysis wouldn't so much be comparing different tickers together but comparing days that the market was open.
  Donc, nous pourrions aussi ne pas faire de transposition, et alors l'analyse ne consisterait pas tant à comparer différents tickers entre eux, mais à comparer les jours où le marché était ouvert.

[07:39] And then the last step here is we're going to compute the percent return of each of the tickers, because later when we generate this interactive network we can color the nodes in the network based on the percent return value of each of the tickers.
  Et ensuite, la dernière étape ici est que nous allons calculer le rendement en pourcentage de chacun des tickers, car plus tard, lorsque nous générerons ce réseau interactif, nous pourrons colorer les nœuds du réseau en fonction de la valeur du rendement en pourcentage de chacun des tickers.

[07:53] Okay, so all this talking and explaining and we still haven't really gotten into any topological data analysis.
  D'accord, donc tout ce discours et ces explications, et nous n'avons toujours pas vraiment abordé l'analyse topologique des données.

[07:58] So if we think back to that visual overview from earlier, this is all still step one: we're still getting our data.
  Donc, si nous repensons à cet aperçu visuel de tout à l'heure, tout cela fait encore partie de la première étape : nous sommes encore en train d'obtenir nos données.

[08:07] So now we can finally get into the mapper algorithm stuff.
  Donc, maintenant nous pouvons enfin entrer dans le vif du sujet de l'algorithme Mapper.

[08:08] First we will initialize this object.
  D'abord, nous allons initialiser cet objet.

[08:10] Next we're gonna...
  Ensuite, nous allons...

[08:10] Do step two in the process which is project our data into a lower dimensional space.
  Faites l'étape deux du processus qui consiste à projeter nos données dans un espace de dimension inférieure.

[08:17] So we actually have 495 tickers here and what we're going to do is project that down into two dimensions.
  Donc nous avons en fait 495 tickers ici et ce que nous allons faire est de projeter cela en deux dimensions.

[08:23] And the way we do this is a two-step process: first we use IsoMap from this manifold library in sklearn.
  Et la façon dont nous procédons est un processus en deux étapes : d'abord nous utilisons IsoMap de cette bibliothèque de variétés dans sklearn.

[08:29] So that'll take us from 495 dimensions down to 100.
  Donc cela nous fera passer de 495 dimensions à 100.

[08:31] Then we'll use UMAP which will take us further from 100 down to two dimensions.
  Ensuite nous utiliserons UMAP qui nous fera passer de 100 à deux dimensions.

[08:36] So the nice thing about this syntax is we can define a custom data pipeline to do our dimensionality reduction.
  Donc l'avantage de cette syntaxe est que nous pouvons définir un pipeline de données personnalisé pour effectuer notre réduction de dimensionnalité.

[08:42] So we can see this projection keyword is being set to a list and this list is actually a list of functions.
  Donc nous pouvons voir que ce mot-clé projection est défini sur une liste et cette liste est en fait une liste de fonctions.

[08:48] Each element in this list is manifold.Isomap with all the input arguments there and then the second element of the list is UMAP with all its input arguments.
  Chaque élément de cette liste est manifold.Isomap avec tous les arguments d'entrée, puis le deuxième élément de la liste est UMAP avec tous ses arguments d'entrée.

[08:57] But we could have gone further.
  Mais nous aurions pu aller plus loin.

[09:00] We could have added a third element and made that PCA which took us from two components down to one component.
  Nous aurions pu ajouter un troisième élément et en faire une ACP qui nous aurait fait passer de deux composantes à une seule.

[09:04] Or we could have done a completely different data processing pipeline.
  Ou nous aurions pu faire un pipeline de traitement de données complètement différent.

[09:08] So you can already start to see that you have a lot of flexibility in.
  Donc vous pouvez déjà commencer à voir que vous avez beaucoup de flexibilité.

[09:11] Using the mapper algorithm in practice.
  En utilisant l'algorithme mapper en pratique.

[09:14] So we essentially will combine steps three, four and five from the overview earlier into one line of code.
  Donc nous allons essentiellement combiner les étapes trois, quatre et cinq de l'aperçu précédent en une seule ligne de code.

[09:22] So defining a cover, clustering the pre-image and generating an output graph is all compressed down to a single function call in that we pass in the projected data from the previous step, the original data set and we defined the clustering strategy that we want to use.
  Donc définir un recouvrement, regrouper la pré-image et générer un graphe de sortie est tout compressé en un seul appel de fonction dans lequel nous passons les données projetées de l'étape précédente, l'ensemble de données original et nous définissons la stratégie de regroupement que nous voulons utiliser.

[09:35] Here we use the DB scan with a cosine similarity metric.
  Ici nous utilisons DBSCAN avec une métrique de similarité cosinus.

[09:37] Yeah, you can also customize the details of the cover but here we're just using the default values and in less than a second it generates the graph.
  Oui, vous pouvez également personnaliser les détails du recouvrement mais ici nous utilisons simplement les valeurs par défaut et en moins d'une seconde cela génère le graphe.

[09:45] And so the next step here I define a file ID which isn't really necessary, I just like to do it because every time I've used the mapper algorithm I'll try different choices of cover, I'll try different projection strategies, I'll try different clustering algorithms and so on and I'll typically have these going in a for loop and I don't want the output graphs to get overwritten so I'll define this file ID which will automatically generate a unique file name for each output graph.
  Et donc l'étape suivante ici je définis un identifiant de fichier qui n'est pas vraiment nécessaire, j'aime juste le faire parce qu'à chaque fois que j'ai utilisé l'algorithme mapper, j'essaie différents choix de recouvrement, j'essaie différentes stratégies de projection, j'essaie différents algorithmes de regroupement et ainsi de suite et j'ai généralement cela dans une boucle for et je ne veux pas que les graphes de sortie soient écrasés donc je définis cet identifiant de fichier qui générera automatiquement un nom de fichier unique pour chaque graphe de sortie.

[10:10] And then the last step is we visualize.
  Et puis la dernière étape est que nous visualisons.

[10:12] The network you just pass in the graph.
  Le réseau que vous venez de passer dans le graphique.

[10:13] You define a file name, you can give the graph a title, you can have these custom tool tips which is the label for each of the members.
  Vous définissez un nom de fichier, vous pouvez donner un titre au graphique, vous pouvez avoir ces info-bulles personnalisées qui sont l'étiquette pour chacun des membres.

[10:17] So basically this is our ticker names.
  Donc, fondamentalement, ce sont nos noms de tickers.

[10:24] We can define color values which we will define as the log percent returns.
  Nous pouvons définir des valeurs de couleur que nous définirons comme les rendements en pourcentage logarithmique.

[10:28] We can give a name to the color function.
  Nous pouvons donner un nom à la fonction de couleur.

[10:31] And then we can also have multiple options of how these color values are aggregated.
  Et ensuite, nous pouvons également avoir plusieurs options sur la manière dont ces valeurs de couleur sont agrégées.

[10:34] Though we could just do a simple average, we could compute the standard deviation, the sum, the max, the min, and so on.
  Bien que nous puissions simplement faire une moyenne simple, nous pourrions calculer l'écart type, la somme, le maximum, le minimum, et ainsi de suite.

[10:41] And so what the output of the mapper algorithm looks like is something like this.
  Et donc, à quoi ressemble la sortie de l'algorithme de mappage, c'est quelque chose comme ça.

[10:45] It actually generates a web page which allows you to interact with the graph and blends itself very well to explore our data analysis which we're doing right now.
  Il génère en fait une page web qui vous permet d'interagir avec le graphique et se prête très bien à l'exploration de notre analyse de données que nous faisons en ce moment.

[10:52] Okay, so the code that we just walked through will actually generate an HTML file which we can go ahead and open.
  D'accord, donc le code que nous venons de parcourir va en fait générer un fichier HTML que nous pouvons ouvrir.

[11:02] So first look, this does not look like the network I showed earlier.
  Donc, à première vue, cela ne ressemble pas au réseau que j'ai montré plus tôt.

[11:06] But if we go to this help menu, we will find different viewing options.
  Mais si nous allons dans ce menu d'aide, nous trouverons différentes options d'affichage.

[11:11] So we can click E on our keyboard to do a tight.
  Donc, nous pouvons appuyer sur E sur notre clavier pour faire un ajustement serré.

[11:14] Layout and already it's starting to look a bit nicer.
  Disposition et ça commence déjà à avoir l'air un peu plus joli.

[11:20] And then we can click P for print mode which will just give the graph a white background.
  Et ensuite nous pouvons cliquer sur P pour le mode d'impression qui donnera simplement un fond blanc au graphique.

[11:25] And then next we can click on any node we like and it'll start to kind of radiate this glow.
  Et ensuite nous pouvons cliquer sur n'importe quel nœud que nous aimons et il commencera à émettre une sorte de lueur.

[11:30] And then we can go over to this cluster details click on this plus sign.
  Et ensuite nous pouvons aller dans les détails de ce cluster et cliquer sur ce signe plus.

[11:35] And so remember that the nodes in this network are actually clusters of data points.
  Et donc rappelez-vous que les nœuds de ce réseau sont en réalité des clusters de points de données.

[11:40] And then the way we do the analysis here is we actually have clusters of tickers or in other words stocks.
  Et ensuite la façon dont nous faisons l'analyse ici est que nous avons en réalité des clusters de tickers ou en d'autres termes d'actions.

[11:48] So down here you'll see the names of the members of this cluster listed.
  Donc ici en bas vous verrez les noms des membres de ce cluster listés.

[11:54] And so this was generated from that custom tool tip option in that last function call we made.
  Et donc cela a été généré à partir de cette option d'infobulle personnalisée dans ce dernier appel de fonction que nous avons fait.

[12:00] And then here we also have a histogram which is showing distribution of the log percent returns of the members of this selected cluster.
  Et ensuite ici nous avons aussi un histogramme qui montre la distribution des rendements en pourcentage logarithmique des membres de ce cluster sélectionné.

[12:07] So right now the weighted average of the log percent returns of each cluster is what generates each node's color.
  Donc actuellement la moyenne pondérée des rendements en pourcentage logarithmique de chaque cluster est ce qui génère la couleur de chaque nœud.

[12:15] Could use other statistics so if we go over here to this node color function we can click this drop down menu we could do the standard deviation which doesn't look too exciting we could also do the sum which also looks pretty uniform but then we could also do max so now we're starting to see some variation we then might be curious about the clusters that contain members with high returns so we can click on this yellow node here and then we can look at these ticker names and maybe do some further analysis so I'm no financial expert so I don't have much intuition to offer here but when working with data that you are familiar with you may immediately start to see interesting patterns just by jumping around and you can really do this all day you can click on a particular node see what members are in that cluster and then you can click on adjacent nodes and see what members are in those clusters and then you can go back try out different projection strategies try out different clustering algorithms generate new graphs and then repeat this whole process all right so that's basically it again the code for
  Pourrait utiliser d'autres statistiques donc si nous allons ici à cette fonction de couleur de nœud nous pouvons cliquer sur ce menu déroulant nous pourrions faire l'écart type qui n'a pas l'air très excitant nous pourrions aussi faire la somme qui a aussi l'air assez uniforme mais ensuite nous pourrions aussi faire le max donc maintenant nous commençons à voir une certaine variation nous pourrions alors être curieux des clusters qui contiennent des membres avec des rendements élevés donc nous pouvons cliquer sur ce nœud jaune ici et ensuite nous pouvons regarder ces noms de tickers et peut-être faire une analyse plus approfondie donc je ne suis pas un expert financier donc je n'ai pas beaucoup d'intuition à offrir ici mais quand on travaille avec des données que vous connaissez vous pouvez immédiatement commencer à voir des motifs intéressants juste en naviguant et vous pouvez vraiment faire cela toute la journée vous pouvez cliquer sur un nœud particulier voir quels membres sont dans ce cluster et ensuite vous pouvez cliquer sur les nœuds adjacents et voir quels membres sont dans ces clusters et ensuite vous pouvez revenir essayer différentes stratégies de projection essayer différents algorithmes de clustering générer de nouveaux graphiques et ensuite répéter tout ce processus d'accord donc c'est essentiellement ça encore le code pour

[13:18] This example is freely available at the github if you want to learn more check out other videos in the series.
  Cet exemple est librement disponible sur github si vous voulez en savoir plus, regardez d'autres vidéos de la série.

[13:24] In the next video I will discuss another specific TDA technique called persistent homology.
  Dans la prochaine vidéo, je discuterai d'une autre technique spécifique de TDA appelée homologie persistante.

[13:27] If you enjoyed this content please consider liking subscribing and sharing this video.
  Si vous avez apprécié ce contenu, veuillez envisager de liker, de vous abonner et de partager cette vidéo.

[13:31] Like many of you I am still learning so I would also appreciate your questions concerns and feedback in the comments section below.
  Comme beaucoup d'entre vous, j'apprends encore, donc j'apprécierais également vos questions, préoccupations et retours dans la section des commentaires ci-dessous.

[13:41] And as always thanks for watching.
  Et comme toujours, merci d'avoir regardé.

[13:49] You
  Vous
