{"id":8080,"date":"2018-10-25T02:17:00","date_gmt":"2018-10-25T00:17:00","guid":{"rendered":"https:\/\/www.datanovia.com\/en\/?post_type=dt_lessons&#038;p=8080"},"modified":"2018-10-25T02:17:00","modified_gmt":"2018-10-25T00:17:00","slug":"model-based-clustering-essentials","status":"publish","type":"dt_lessons","link":"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/","title":{"rendered":"Model Based Clustering Essentials"},"content":{"rendered":"<div id=\"rdoc\">\n<p>The traditional clustering methods, such as <a href=\"https:\/\/www.datanovia.com\/en\/lessons\/agglomerative-hierarchical-clustering\/\">hierarchical clustering<\/a> and <a href=\"https:\/\/www.datanovia.com\/en\/lessons\/k-means-clustering-in-r-algorith-and-practical-examples\/\">k-means clustering<\/a>, are heuristic and are not based on formal models. Furthermore, k-means algorithm is commonly randomnly initialized, so different runs of k-means will often yield different results. Additionally, k-means requires the user to specify the the optimal number of clusters.<\/p>\n<p>An alternative is <strong>model-based clustering<\/strong>, which consider the data as coming from a distribution that is mixture of two or more clusters <span class=\"citation\">(Fraley and Raftery 2002, <span class=\"citation\">Fraley et al. (2012)<\/span>)<\/span>. Unlike k-means, the model-based clustering uses a soft assignment, where each data point has a probability of belonging to each cluster.<\/p>\n<div class=\"block\">\n<p>In this chapter, we illustrate model-based clustering using the R package <em>mclust<\/em>.<\/p>\n<\/div>\n<p>Contents:<\/p>\n<div id=\"TOC\">\n<ul>\n<li><a href=\"#concept-of-model-based-clustering\">Concept of model-based clustering<\/a><\/li>\n<li><a href=\"#estimating-model-parameters\">Estimating model parameters<\/a><\/li>\n<li><a href=\"#choosing-the-best-model\">Choosing the best model<\/a><\/li>\n<li><a href=\"#computing-model-based-clustering-in-r\">Computing model-based clustering in R<\/a><\/li>\n<li><a href=\"#visualizing-model-based-clustering\">Visualizing model-based clustering<\/a><\/li>\n<li><a href=\"#references\">References<\/a><\/li>\n<\/ul>\n<\/div>\n<div class='dt-sc-hr-invisible-medium  '><\/div>\n<div class='dt-sc-ico-content type1'><div class='custom-icon' ><a href='https:\/\/www.datanovia.com\/en\/product\/practical-guide-to-cluster-analysis-in-r\/' target='_blank'><span class='fa fa-book'><\/span><\/a><\/div><h4><a href='https:\/\/www.datanovia.com\/en\/product\/practical-guide-to-cluster-analysis-in-r\/' target='_blank'> Related Book <\/a><\/h4>Practical Guide to Cluster Analysis in R<\/div>\n<div class='dt-sc-hr-invisible-medium  '><\/div>\n<div id=\"concept-of-model-based-clustering\" class=\"section level2\">\n<h2>Concept of model-based clustering<\/h2>\n<p>In model-based clustering, the data is considered as coming from a mixture of density.<\/p>\n<p>Each component (i.e.\u00a0cluster) k is modeled by the normal or Gaussian distribution which is characterized by the parameters:<\/p>\n<ul>\n<li><span class=\"math inline\">\\(\\mu_k\\)<\/span>: mean vector,<\/li>\n<li><span class=\"math inline\">\\(\\sum_k\\)<\/span>: covariance matrix,<\/li>\n<li>An associated probability in the mixture. Each point has a probability of belonging to each cluster.<\/li>\n<\/ul>\n<p>For example, consider the \u201cold faithful geyser data\u201d [in MASS R package], which can be illustrated as follow using the ggpubr R package:<\/p>\n<pre class=\"r\"><code># Load the data\r\nlibrary(\"MASS\")\r\ndata(\"geyser\")\r\n\r\n# Scatter plot\r\nlibrary(\"ggpubr\")\r\nggscatter(geyser, x = \"duration\", y = \"waiting\")+\r\n  geom_density2d() # Add 2D density<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/005-advanced-clustering\/figures\/022-model-based-clustering-scatter-plot-1.png\" width=\"336\" \/><\/p>\n<p>The plot above suggests at least 3 clusters in the mixture. The shape of each of the 3 clusters appears to be approximately elliptical suggesting three bivariate normal distributions. As the 3 ellipses seems to be similar in terms of volume, shape and orientation, we might anticipate that the three components of this mixture might have homogeneous covariance matrices.<\/p>\n<\/div>\n<div id=\"estimating-model-parameters\" class=\"section level2\">\n<h2>Estimating model parameters<\/h2>\n<p>The model parameters can be estimated using the <em>Expectation-Maximization<\/em> (EM) algorithm initialized by hierarchical model-based clustering. Each cluster k is centered at the means <span class=\"math inline\">\\(\\mu_k\\)<\/span>, with increased density for points near the mean.<\/p>\n<p>Geometric features (shape, volume, orientation) of each cluster are determined by the covariance matrix <span class=\"math inline\">\\(\\sum_k\\)<\/span>.<\/p>\n<p>Different possible parameterizations of <span class=\"math inline\">\\(\\sum_k\\)<\/span> are available in the R package <em>mclust<\/em> (see <em>?mclustModelNames<\/em>).<\/p>\n<p>The available model options, in <em>mclust<\/em> package, are represented by identifiers including: EII, VII, EEI, VEI, EVI, VVI, EEE, EEV, VEV and VVV.<\/p>\n<p>The first identifier refers to volume, the second to shape and the third to orientation. E stands for \u201cequal\u201d, V for \u201cvariable\u201d and I for \u201ccoordinate axes\u201d.<\/p>\n<p>For example:<\/p>\n<ul>\n<li>EVI denotes a model in which the volumes of all clusters are equal (E), the shapes of the clusters may vary (V), and the orientation is the identity (I) or \u201ccoordinate axes.<\/li>\n<li>EEE means that the clusters have the same volume, shape and orientation in p-dimensional space.<\/li>\n<li>VEI means that the clusters have variable volume, the same shape and orientation equal to coordinate axes.<\/li>\n<\/ul>\n<\/div>\n<div id=\"choosing-the-best-model\" class=\"section level2\">\n<h2>Choosing the best model<\/h2>\n<p>The <em>Mclust<\/em> package uses maximum likelihood to fit all these models, with different covariance matrix parameterizations, for a range of k components.<\/p>\n<p>The best model is selected using the Bayesian Information Criterion or <em>BIC<\/em>. A large BIC score indicates strong evidence for the corresponding model.<\/p>\n<\/div>\n<div id=\"computing-model-based-clustering-in-r\" class=\"section level2\">\n<h2>Computing model-based clustering in R<\/h2>\n<p>We start by installing the <em>mclust<\/em> package as follow: <em>install.packages(\u201cmclust\u201d)<\/em><\/p>\n<div class=\"notice\">\n<p>Note that, model-based clustering can be applied on univariate or multivariate data.<\/p>\n<\/div>\n<p>Here, we illustrate model-based clustering on the diabetes data set [mclust package] giving three measurements and the diagnosis for 145 subjects described as follow:<\/p>\n<pre class=\"r\"><code>library(\"mclust\")\r\ndata(\"diabetes\")\r\nhead(diabetes, 3)<\/code><\/pre>\n<pre><code>##    class glucose insulin sspg\r\n## 1 Normal      80     356  124\r\n## 2 Normal      97     289  117\r\n## 3 Normal     105     319  143<\/code><\/pre>\n<ul>\n<li>class: the diagnosis: normal, chemically diabetic, and overtly diabetic. Excluded from the cluster analysis.<\/li>\n<li>glucose: plasma glucose response to oral glucose<\/li>\n<li>insulin: plasma insulin response to oral glucose<\/li>\n<li>sspg: steady-state plasma glucose (measures insulin resistance)<\/li>\n<\/ul>\n<p>Model-based clustering can be computed using the function Mclust() as follow:<\/p>\n<pre class=\"r\"><code>library(mclust)\r\ndf &lt;- scale(diabetes[, -1]) # Standardize the data\r\nmc &lt;- Mclust(df)            # Model-based-clustering<\/code><\/pre>\n<pre class=\"r\"><code>summary(mc)                 # Print a summary<\/code><\/pre>\n<pre><code>## ----------------------------------------------------\r\n## Gaussian finite mixture model fitted by EM algorithm \r\n## ----------------------------------------------------\r\n## \r\n## Mclust VVV (ellipsoidal, varying volume, shape, and orientation) model with 3 components:\r\n## \r\n##  log.likelihood   n df  BIC  ICL\r\n##            -169 145 29 -483 -501\r\n## \r\n## Clustering table:\r\n##  1  2  3 \r\n## 81 36 28<\/code><\/pre>\n<p>For this data, it can be seen that model-based clustering selected a model with three components (i.e.\u00a0clusters). The optimal selected model name is VVV model. That is the three components are ellipsoidal with varying volume, shape, and orientation. The summary contains also the clustering table specifying the number of observations in each clusters.<\/p>\n<p>You can access to the results as follow:<\/p>\n<pre class=\"r\"><code>mc$modelName                # Optimal selected model ==&gt; \"VVV\"\r\nmc$G                        # Optimal number of cluster =&gt; 3\r\nhead(mc$z, 30)              # Probality to belong to a given cluster\r\nhead(mc$classification, 30) # Cluster assignement of each observation<\/code><\/pre>\n<\/div>\n<div id=\"visualizing-model-based-clustering\" class=\"section level2\">\n<h2>Visualizing model-based clustering<\/h2>\n<p>Model-based clustering results can be drawn using the base function plot.Mclust() [in mclust package]. Here we\u2019ll use the function <em>fviz_mclust<\/em>() [in <em>factoextra<\/em> package] to create beautiful plots based on ggplot2.<\/p>\n<p>In the situation, where the data contain more than two variables, <em>fviz_mclust<\/em>() uses a principal component analysis to reduce the dimensionnality of the data. The first two principal components are used to produce a scatter plot of the data. However, if you want to plot the data using only two variables of interest, let say here c(\u201cinsulin\u201d, \u201csspg\u201d), you can specify that in the <em>fviz_mclust<\/em>() function using the argument <em>choose.vars = c(\u201cinsulin\u201d, \u201csspg\u201d)<\/em>.<\/p>\n<pre class=\"r\"><code>library(factoextra)\r\n# BIC values used for choosing the number of clusters\r\nfviz_mclust(mc, \"BIC\", palette = \"jco\")\r\n# Classification: plot showing the clustering\r\nfviz_mclust(mc, \"classification\", geom = \"point\", \r\n            pointsize = 1.5, palette = \"jco\")\r\n# Classification uncertainty\r\nfviz_mclust(mc, \"uncertainty\", palette = \"jco\")<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/005-advanced-clustering\/figures\/022-model-based-clustering-model-base-clustering-1.png\" width=\"307.2\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/005-advanced-clustering\/figures\/022-model-based-clustering-model-base-clustering-2.png\" width=\"307.2\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/005-advanced-clustering\/figures\/022-model-based-clustering-model-base-clustering-3.png\" width=\"307.2\" \/><\/p>\n<p>Note that, in the uncertainty plot, larger symbols indicate the more uncertain observations.<\/p>\n<\/div>\n<div id=\"references\" class=\"section level2 unnumbered\">\n<h2>References<\/h2>\n<div id=\"refs\" class=\"references\">\n<div id=\"ref-fraley2002\">\n<p>Fraley, Chris, and Adrian E Raftery. 2002. \u201cModel-Based Clustering, Discriminant Analysis, and Density Estimation.\u201d <em>Journal of the American Statistical Association<\/em> 97 (458): 611\u201331.<\/p>\n<\/div>\n<div id=\"ref-fraley2012\">\n<p>Fraley, Chris, Adrian E. Raftery, T. Brendan Murphy, and Luca Scrucca. 2012. \u201cMclust Version 4 for R: Normal Mixture Modeling for Model-Based Clustering, Classification, and Density Estimation.\u201d <em>Technical Report No. 597, Department of Statistics, University of Washington<\/em>. <a class=\"uri\" href=\"https:\/\/www.stat.washington.edu\/research\/reports\/2012\/tr597.pdf\">https:\/\/www.stat.washington.edu\/research\/reports\/2012\/tr597.pdf<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><!--end rdoc--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In model-based clustering, the data are viewed as coming from a distribution that is mixture of two ore more clusters. It finds best fit of models to data and estimates the number of clusters. In this chapter, we illustrate model-based clustering using the R package mclust.<\/p>\n","protected":false},"author":1,"featured_media":7872,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","class_list":["post-8080","dt_lessons","type-dt_lessons","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Model Based Clustering Essentials - 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\/lessons\/model-based-clustering-essentials\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Model Based Clustering Essentials - Datanovia\" \/>\n<meta property=\"og:description\" content=\"In model-based clustering, the data are viewed as coming from a distribution that is mixture of two ore more clusters. It finds best fit of models to data and estimates the number of clusters. In this chapter, we illustrate model-based clustering using the R package mclust.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/\" \/>\n<meta property=\"og:site_name\" content=\"Datanovia\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_9571.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/\",\"name\":\"Model Based Clustering Essentials - Datanovia\",\"isPartOf\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_9571.jpg\",\"datePublished\":\"2018-10-25T00:17:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#primaryimage\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_9571.jpg\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_9571.jpg\",\"width\":1024,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.datanovia.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lessons\",\"item\":\"https:\/\/www.datanovia.com\/en\/lessons\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Model Based Clustering Essentials\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"name\":\"Datanovia\",\"description\":\"Data Mining and Statistics for Decision Support\",\"publisher\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.datanovia.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\",\"name\":\"Datanovia\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/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\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Model Based Clustering Essentials - 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\/lessons\/model-based-clustering-essentials\/","og_locale":"en_US","og_type":"article","og_title":"Model Based Clustering Essentials - Datanovia","og_description":"In model-based clustering, the data are viewed as coming from a distribution that is mixture of two ore more clusters. It finds best fit of models to data and estimates the number of clusters. In this chapter, we illustrate model-based clustering using the R package mclust.","og_url":"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/","og_site_name":"Datanovia","og_image":[{"width":1024,"height":512,"url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_9571.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/","url":"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/","name":"Model Based Clustering Essentials - Datanovia","isPartOf":{"@id":"https:\/\/www.datanovia.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#primaryimage"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_9571.jpg","datePublished":"2018-10-25T00:17:00+00:00","breadcrumb":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#primaryimage","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_9571.jpg","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_9571.jpg","width":1024,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.datanovia.com\/en\/lessons\/model-based-clustering-essentials\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.datanovia.com\/en\/"},{"@type":"ListItem","position":2,"name":"Lessons","item":"https:\/\/www.datanovia.com\/en\/lessons\/"},{"@type":"ListItem","position":3,"name":"Model Based Clustering Essentials"}]},{"@type":"WebSite","@id":"https:\/\/www.datanovia.com\/en\/#website","url":"https:\/\/www.datanovia.com\/en\/","name":"Datanovia","description":"Data Mining and Statistics for Decision Support","publisher":{"@id":"https:\/\/www.datanovia.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.datanovia.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.datanovia.com\/en\/#organization","name":"Datanovia","url":"https:\/\/www.datanovia.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/#\/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\/#\/schema\/logo\/image\/"}}]}},"multi-rating":{"mr_rating_results":[]},"_links":{"self":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons\/8080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons"}],"about":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/types\/dt_lessons"}],"author":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/comments?post=8080"}],"version-history":[{"count":0,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons\/8080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media\/7872"}],"wp:attachment":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media?parent=8080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}