{"id":15809,"date":"2020-04-19T00:22:46","date_gmt":"2020-04-18T23:22:46","guid":{"rendered":"https:\/\/www.datanovia.com\/en\/?p=15809"},"modified":"2020-04-19T00:23:42","modified_gmt":"2020-04-18T23:23:42","slug":"seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees","status":"publish","type":"post","link":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/","title":{"rendered":"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es"},"content":{"rendered":"<div id=\"rdoc\">\n<p>Cet article d\u00e9crit les <strong>m\u00e9thodes de s\u00e9riation<\/strong>, qui consistent \u00e0 trouver un ordre lin\u00e9aire appropri\u00e9 pour un ensemble d\u2019objets dans les donn\u00e9es en utilisant des fonctions de perte (loss) ou de m\u00e9rite.<\/p>\n<p>Il existe diff\u00e9rents algorithmes de s\u00e9riation. Les donn\u00e9es d\u2019entr\u00e9e peuvent \u00eatre soit une matrice de dissimilarit\u00e9, soit une matrice de donn\u00e9es standard.<\/p>\n<p>Vous apprendrez \u00e0 effectuer la s\u00e9riation dans R et \u00e0 visualiser les donn\u00e9es r\u00e9organis\u00e9es \u00e0 l\u2019aide du package R <strong>seriation<\/strong>.<\/p>\n<p>Sommaire:<\/p>\n<div id=\"TOC\">\n<ul>\n<li><a href=\"#pr\u00e9requis\">Pr\u00e9requis<\/a><\/li>\n<li><a href=\"#pr\u00e9paration-des-donn\u00e9es\">Pr\u00e9paration des donn\u00e9es<\/a><\/li>\n<li><a href=\"#exemple-basic-de-s\u00e9riation\">Exemple basic de s\u00e9riation<\/a><\/li>\n<li><a href=\"#heat-maps\">Heat maps<\/a><\/li>\n<li><a href=\"#matrice-de-permutation-de-bertin\">Matrice de permutation de Bertin<\/a><\/li>\n<li><a href=\"#matrices-de-donn\u00e9es-binaires\">Matrices de donn\u00e9es binaires<\/a><\/li>\n<li><a href=\"#r\u00e9sum\u00e9\">R\u00e9sum\u00e9<\/a><\/li>\n<li><a href=\"#r\u00e9f\u00e9rences\">R\u00e9f\u00e9rences<\/a><\/li>\n<\/ul>\n<\/div>\n<div id=\"pr\u00e9requis\" class=\"section level2\">\n<h2>Pr\u00e9requis<\/h2>\n<p>Charger les packages R requis:<\/p>\n<pre class=\"r\"><code>library(seriation)<\/code><\/pre>\n<\/div>\n<div id=\"pr\u00e9paration-des-donn\u00e9es\" class=\"section level2\">\n<h2>Pr\u00e9paration des donn\u00e9es<\/h2>\n<p>Donn\u00e9es de d\u00e9monstration: <code>iris<\/code><\/p>\n<pre class=\"r\"><code># Charger les donn\u00e9es\r\ndata(\"iris\")\r\ndf &lt;- iris\r\nhead(df, 2)<\/code><\/pre>\n<pre><code>##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species\r\n## 1          5.1         3.5          1.4         0.2  setosa\r\n## 2          4.9         3.0          1.4         0.2  setosa<\/code><\/pre>\n<pre class=\"r\"><code># Supprimer la colonne `species` (colonne 5)\r\ndf &lt;- df[, -5]\r\n# R\u00e9organiser les objets au hasard\r\nset.seed(123)\r\ndf &lt;- df[sample(seq_len(nrow(df))),]\r\nhead(df, 2)<\/code><\/pre>\n<pre><code>##     Sepal.Length Sepal.Width Petal.Length Petal.Width\r\n## 44           5.0         3.5          1.6         0.6\r\n## 118          7.7         3.8          6.7         2.2<\/code><\/pre>\n<\/div>\n<div id=\"exemple-basic-de-s\u00e9riation\" class=\"section level2\">\n<h2>Exemple basic de s\u00e9riation<\/h2>\n<p>R\u00e9organiser les objets et inspecter l\u2019effet de la s\u00e9riation sur la matrice de dissimilarit\u00e9:<\/p>\n<pre class=\"r\"><code># Calculer la matrice de dissimilarit\u00e9\r\ndist_result &lt;- dist(df)\r\n# S\u00e9rier les objets, r\u00e9organiser les lignes en fonction de leur similarit\u00e9\r\nobject_order &lt;- seriate(dist_result)\r\n# Extraire l'ordre des objets\r\nhead(get_order(object_order), 15)<\/code><\/pre>\n<pre><code>##  [1]  78   2  52  83  76 139 148  32  59  20 129 103 143   4  85<\/code><\/pre>\n<pre class=\"r\"><code># Visualiser l'effet de la s\u00e9riation sur la matrice de dissimilarit\u00e9\r\npimage(dist_result, main = \"Random order\")<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-effect-of-seriation-on-dissimilarity-matrix-1.png\" width=\"576\" \/><\/p>\n<pre class=\"r\"><code>pimage(dist_result, order = object_order, main = \"Reordered\")<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-effect-of-seriation-on-dissimilarity-matrix-2.png\" width=\"576\" \/><\/p>\n<p>Effet de la s\u00e9riation sur l\u2019\u00e9chelle des donn\u00e9es d\u2019origine. Nous normalisons les donn\u00e9es en utilisant la fonction <code>scale()<\/code> telle que la valeur visualis\u00e9e est le nombre de d\u2019\u00e9cart type qu\u2019un objet diff\u00e8re de la moyenne variable. Pour les matrices contenant des valeurs n\u00e9gatives, <code>pimage()<\/code> utilise automatiquement une palette divergente.<\/p>\n<p>\u00c9tant donn\u00e9 que la s\u00e9riation ci-dessus n\u2019a produit qu\u2019un ordre pour les lignes des donn\u00e9es, nous utilisons <code>NA<\/code> pour les ordres des colonnes dans le code R ci-dessous.<\/p>\n<pre class=\"r\"><code># Heatmap des donn\u00e9es brutes\r\npimage(scale(df), main = \"Random\")<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-effect-of-seriation-on-the-original-data-1.png\" width=\"576\" \/><\/p>\n<pre class=\"r\"><code># Heatmap des donn\u00e9es r\u00e9organis\u00e9es\r\npimage(scale(df), order = c(object_order, NA), main = \"Reordered\")<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-effect-of-seriation-on-the-original-data-2.png\" width=\"576\" \/><\/p>\n<\/div>\n<div id=\"heat-maps\" class=\"section level2\">\n<h2>Heat maps<\/h2>\n<p>Une Heat Map est une matrice de donn\u00e9es cod\u00e9es en couleur, avec un dendrogramme ajout\u00e9 sur un c\u00f4t\u00e9 et en haut pour indiquer l\u2019ordre des lignes et des colonnes.<\/p>\n<p>En r\u00e8gle g\u00e9n\u00e9rale, le r\u00e9arrangement se fait en fonction des moyennes des lignes ou des colonnes dans les limites impos\u00e9es par le dendrogramme.<\/p>\n<p>Il est possible de trouver l\u2019ordre optimal des n\u0153uds des feuilles d\u2019un dendrogramme qui minimise les distances entre les objets adjacents. Un tel ordre pourrait apporter une am\u00e9lioration visuelle par rapport \u00e0 l\u2019utilisation d\u2019un simple r\u00e9arrangement tel que les moyennes de lignes ou de colonnes.<\/p>\n<p>La fonction R <code>hmap()<\/code> [package seriation] utilise un ordre optimal et peut \u00e9galement utiliser la s\u00e9riation directement sur des matrices de distance sans utiliser de clustering hi\u00e9rarchique pour produire d\u2019abord des dendrogrammes. Il utilise la fonction <code>gplots::heatmap.2()<\/code> pour cr\u00e9er la heatmap.<\/p>\n<p>Pour l\u2019exemple suivant, nous utilisons \u00e0 nouveau le jeu de donn\u00e9es <code>iris<\/code> r\u00e9organis\u00e9 de fa\u00e7on al\u00e9atoire \u00e0 partir des exemples pr\u00e9c\u00e9dents. Pour rendre les variables (colonnes) comparables, nous utilisons une normalisation standard.<\/p>\n<pre class=\"r\"><code># Standardiser les donn\u00e9es\r\ndf_scaled &lt;- scale(df, center = FALSE)\r\n\r\n# Produire une heatmap avec des dendrogrammes r\u00e9ordonn\u00e9s de mani\u00e8re optimale\r\n# Le clustering hi\u00e9rarchique est utilis\u00e9 pour produire des dendrogrammes\r\nhmap(df_scaled, margin = c(7, 4), cexCol = 1, labRow = FALSE)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-heat-maps-1.png\" width=\"576\" \/><\/p>\n<pre class=\"r\"><code># Pr\u00e9ciser la m\u00e9thode de s\u00e9riation\r\n# la s\u00e9riation sur les matrices de dissimilarit\u00e9 pour les lignes et les colonnes est effectu\u00e9e\r\nhmap(df_scaled, method = \"MDS\")<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-heat-maps-2.png\" width=\"576\" \/><\/p>\n<\/div>\n<div id=\"matrice-de-permutation-de-bertin\" class=\"section level2\">\n<h2>Matrice de permutation de Bertin<\/h2>\n<p>L\u2019id\u00e9e est de r\u00e9v\u00e9ler une structure plus homog\u00e8ne dans une matrice de donn\u00e9es en r\u00e9organisant simultan\u00e9ment les lignes et les colonnes. La matrice r\u00e9organis\u00e9e est affich\u00e9e et, les cas et les variables peuvent \u00eatre regroup\u00e9s manuellement pour mieux comprendre les donn\u00e9es.<\/p>\n<p>\u00c0 titre d\u2019exemple, nous utilisons le jeu de donn\u00e9es <code>USArrests<\/code>, qui contient les taux de criminalit\u00e9 des \u00c9tats am\u00e9ricains en 1973. Pour rendre les valeurs comparables entre les colonnes (variables), les rangs des valeurs de chaque variable sont utilis\u00e9s \u00e0 la place des valeurs initiales.<\/p>\n<p>Pour la s\u00e9riation, nous calculons les distances entre les lignes et entre les colonnes en utilisant la somme des diff\u00e9rences de rang absolues (ceci est \u00e9gal \u00e0 la distance de Minkowski avec la puissance 1).<\/p>\n<p>Dans l\u2019exemple ci-dessous, le r\u00e9sultat est illustr\u00e9 par une matrice de barres. Les valeurs \u00e9lev\u00e9es sont mises en \u00e9vidence (blocs remplis). Les cas sont affich\u00e9s sous forme de colonnes et les variables sous forme de lignes.<\/p>\n<pre class=\"r\"><code># Pr\u00e9paration des donn\u00e9es\r\n# Charger le jeu de donn\u00e9es\r\ndata(\"USArrests\")\r\n# Remplacer les valeurs initiales par leurs rangs\r\ndf &lt;- head(apply(USArrests, 2, rank), 30)\r\n\r\n# Effectuer la s\u00e9riation sur les lignes et les colonnes\r\nrow_order &lt;- seriate(dist(df, \"minkowski\", p = 1),  method =\"TSP\")\r\ncol_order &lt;- seriate(dist(t(df), \"minkowski\", p = 1),  method =\"TSP\")\r\norders &lt;- c(row_order, col_order)\r\n\r\n# Visualisation : matrice de barres \r\n# Matrice originale\r\nbertinplot(df)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-berlin-permutation-matrix-1.png\" width=\"576\" \/><\/p>\n<pre class=\"r\"><code># Matrice r\u00e9organis\u00e9e\r\nbertinplot(df, orders)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-berlin-permutation-matrix-2.png\" width=\"576\" \/><\/p>\n<\/div>\n<div id=\"matrices-de-donn\u00e9es-binaires\" class=\"section level2\">\n<h2>Matrices de donn\u00e9es binaires<\/h2>\n<p>Les donn\u00e9es binaires sont des matrices de donn\u00e9es 0-1. La visualisation standard de <code>bertinplot()<\/code>, n\u2019a pas beaucoup de sens pour les donn\u00e9es binaires. Nous pouvons utiliser les fonctions de panel <code>panel.squares()<\/code> ou <code>panel.circles()<\/code>.<\/p>\n<pre class=\"r\"><code># Charger les donn\u00e9es de d\u00e9monstration\r\ndata(\"Townships\")\r\n# Visualiser les donn\u00e9es originales\r\nbertinplot(\r\n  Townships, \r\n  options = list(panel = panel.circles)\r\n  )<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-binary-data-matrix-1.png\" width=\"576\" \/><\/p>\n<pre class=\"r\"><code># S\u00e9rier les lignes et les colonnes en utilisant l'algorithme de l'\u00e9nergie de liaison (BEA: bond energy algorithm)\r\nset.seed(1234)\r\norders &lt;- seriate(Townships, method = \"BEA\", control = list(rep = 10))\r\nbertinplot(\r\n  Townships, order = orders, \r\n  options = list(panel = panel.circles)\r\n  )<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/r-tutorial\/figures\/seriation-in-r-binary-data-matrix-2.png\" width=\"576\" \/><\/p>\n<div class=\"block\">\n<p>Une structure claire est visible dans la matrice r\u00e9organis\u00e9e est affich\u00e9e. Les variables peuvent \u00eatre r\u00e9parties en trois cat\u00e9gories d\u00e9crivant diff\u00e9rents \u00e9tats d\u2019\u00e9volution des communes:<\/p>\n<ol style=\"list-style-type: decimal;\">\n<li>Rurale : Pas de m\u00e9decin, d\u2019\u00e9cole \u00e0 classe unique et peut-\u00eatre aussi pas d\u2019approvisionnement en eau<\/li>\n<li>Interm\u00e9diaire : R\u00e9allocation des terres, coop\u00e9rative v\u00e9t\u00e9rinaire et agricole<\/li>\n<li>Urbain : Gare, lyc\u00e9e et poste de police<\/li>\n<\/ol>\n<p>Les <code>townships<\/code> font aussi clairement partie de ces trois groupes qui peuvent \u00eatre provisoirement appel\u00e9s villages (7 premiers), villes (5 suivants) et cit\u00e9s (2 derniers). Les townships (\u201ccantons\u201d) B et C sont en transition vers le groupe sup\u00e9rieur suivant.<\/p>\n<\/div>\n<\/div>\n<div id=\"r\u00e9sum\u00e9\" class=\"section level2\">\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Cet article d\u00e9crit comment r\u00e9organiser les objets dans un jeu de donn\u00e9es en utilisant des m\u00e9thodes de s\u00e9riation.<\/p>\n<\/div>\n<div id=\"r\u00e9f\u00e9rences\" class=\"section level2\">\n<h2>R\u00e9f\u00e9rences<\/h2>\n<ul>\n<li>Michael Hahsler, Kurt Hornik et Christian Buchta, <a href=\"http:\/\/dx.doi.org\/10.18637\/jss.v025.i03\">Getting Things in Order : An Introduction to the R Package seriation,<\/a> <em>Journal of Statistical Software,<\/em> 25(3), 2008.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p><!--end rdoc--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cet article d\u00e9crit les m\u00e9thodes de s\u00e9riation, qui consistent \u00e0 trouver un ordre lin\u00e9aire appropri\u00e9 pour un ensemble d\u2019objets dans les donn\u00e9es en utilisant des fonctions de perte (loss) ou [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":15806,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rating_form_position":"","rating_results_position":"","mr_structured_data_type":"","footnotes":""},"categories":[274,275],"tags":[364],"class_list":["post-15809","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-clustering","category-visualisation-de-donnees","tag-heatmap-fr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es - Datanovia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es - Datanovia\" \/>\n<meta property=\"og:description\" content=\"Cet article d\u00e9crit les m\u00e9thodes de s\u00e9riation, qui consistent \u00e0 trouver un ordre lin\u00e9aire appropri\u00e9 pour un ensemble d\u2019objets dans les donn\u00e9es en utilisant des fonctions de perte (loss) ou [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/\" \/>\n<meta property=\"og:site_name\" content=\"Datanovia\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-18T23:22:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-18T23:23:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1344\" \/>\n\t<meta property=\"og:image:height\" content=\"864\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alboukadel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alboukadel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/\"},\"author\":{\"name\":\"Alboukadel\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/person\/7767cf2bd5c91a1610c6eb53a0ff069e\"},\"headline\":\"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es\",\"datePublished\":\"2020-04-18T23:22:46+00:00\",\"dateModified\":\"2020-04-18T23:23:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/\"},\"wordCount\":834,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png\",\"keywords\":[\"Heatmap\"],\"articleSection\":[\"Clustering\",\"Visualisation de Donn\u00e9es\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/\",\"name\":\"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es - Datanovia\",\"isPartOf\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png\",\"datePublished\":\"2020-04-18T23:22:46+00:00\",\"dateModified\":\"2020-04-18T23:23:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#primaryimage\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png\",\"width\":1344,\"height\":864,\"caption\":\"seriation-in-r-logo-1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.datanovia.com\/en\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#website\",\"url\":\"https:\/\/www.datanovia.com\/en\/fr\/\",\"name\":\"Datanovia\",\"description\":\"Exploration de Donn\u00e9es et Statistiques pour l'Aide \u00e0 la D\u00e9cision\",\"publisher\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.datanovia.com\/en\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#organization\",\"name\":\"Datanovia\",\"url\":\"https:\/\/www.datanovia.com\/en\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"width\":98,\"height\":99,\"caption\":\"Datanovia\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/person\/7767cf2bd5c91a1610c6eb53a0ff069e\",\"name\":\"Alboukadel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ed3108646c5c7c3d188324ab972f96ad7d9975b41b94014d7f68257791be395a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ed3108646c5c7c3d188324ab972f96ad7d9975b41b94014d7f68257791be395a?s=96&d=mm&r=g\",\"caption\":\"Alboukadel\"},\"url\":\"https:\/\/www.datanovia.com\/en\/fr\/blog\/author\/kassambara\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es - Datanovia","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/","og_locale":"fr_FR","og_type":"article","og_title":"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es - Datanovia","og_description":"Cet article d\u00e9crit les m\u00e9thodes de s\u00e9riation, qui consistent \u00e0 trouver un ordre lin\u00e9aire appropri\u00e9 pour un ensemble d\u2019objets dans les donn\u00e9es en utilisant des fonctions de perte (loss) ou [&hellip;]","og_url":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/","og_site_name":"Datanovia","article_published_time":"2020-04-18T23:22:46+00:00","article_modified_time":"2020-04-18T23:23:42+00:00","og_image":[{"width":1344,"height":864,"url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png","type":"image\/png"}],"author":"Alboukadel","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Alboukadel","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#article","isPartOf":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/"},"author":{"name":"Alboukadel","@id":"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/person\/7767cf2bd5c91a1610c6eb53a0ff069e"},"headline":"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es","datePublished":"2020-04-18T23:22:46+00:00","dateModified":"2020-04-18T23:23:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/"},"wordCount":834,"commentCount":0,"publisher":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/#organization"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png","keywords":["Heatmap"],"articleSection":["Clustering","Visualisation de Donn\u00e9es"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/","url":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/","name":"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es - Datanovia","isPartOf":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#primaryimage"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png","datePublished":"2020-04-18T23:22:46+00:00","dateModified":"2020-04-18T23:23:42+00:00","breadcrumb":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#primaryimage","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2020\/04\/seriation-in-r-logo-1.png","width":1344,"height":864,"caption":"seriation-in-r-logo-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.datanovia.com\/en\/fr\/blog\/seriation-dans-r-comment-ordonner-de-maniere-optimale-les-objets-dans-une-matrice-de-donnees\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.datanovia.com\/en\/fr\/"},{"@type":"ListItem","position":2,"name":"S\u00e9riation dans R : Comment Ordonner de Mani\u00e8re Optimale les Objets dans une Matrice de Donn\u00e9es"}]},{"@type":"WebSite","@id":"https:\/\/www.datanovia.com\/en\/fr\/#website","url":"https:\/\/www.datanovia.com\/en\/fr\/","name":"Datanovia","description":"Exploration de Donn\u00e9es et Statistiques pour l'Aide \u00e0 la D\u00e9cision","publisher":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.datanovia.com\/en\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.datanovia.com\/en\/fr\/#organization","name":"Datanovia","url":"https:\/\/www.datanovia.com\/en\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","width":98,"height":99,"caption":"Datanovia"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/person\/7767cf2bd5c91a1610c6eb53a0ff069e","name":"Alboukadel","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.datanovia.com\/en\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ed3108646c5c7c3d188324ab972f96ad7d9975b41b94014d7f68257791be395a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ed3108646c5c7c3d188324ab972f96ad7d9975b41b94014d7f68257791be395a?s=96&d=mm&r=g","caption":"Alboukadel"},"url":"https:\/\/www.datanovia.com\/en\/fr\/blog\/author\/kassambara\/"}]}},"multi-rating":{"mr_rating_results":[]},"_links":{"self":[{"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/posts\/15809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/comments?post=15809"}],"version-history":[{"count":2,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/posts\/15809\/revisions"}],"predecessor-version":[{"id":15812,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/posts\/15809\/revisions\/15812"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/media\/15806"}],"wp:attachment":[{"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/media?parent=15809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/categories?post=15809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/fr\/wp-json\/wp\/v2\/tags?post=15809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}