{"id":3869,"date":"2019-08-18T18:31:41","date_gmt":"2019-08-18T18:31:41","guid":{"rendered":"https:\/\/dalelane.co.uk\/blog\/?p=3869"},"modified":"2019-08-19T09:50:35","modified_gmt":"2019-08-19T09:50:35","slug":"explaining-machine-learning-with-decision-trees","status":"publish","type":"post","link":"https:\/\/dalelane.co.uk\/blog\/?p=3869","title":{"rendered":"Explaining machine learning with decision trees"},"content":{"rendered":"<p><iframe loading=\"lazy\" width=\"450\" height=\"253\" style=\"border: thin black solid\" src=\"https:\/\/www.youtube.com\/embed\/yvMWa0YPs30?rel=0\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe><\/p>\n<p><strong><a href=\"https:\/\/machinelearningforkids.co.uk\">Machine Learning for Kids<\/a> now includes interactive visualisations that explain how some of the machine learning models that children create work.<\/strong><\/p>\n<p>The tool lets children learn about artificial intelligence by training machine learning models, and using that to make projects using tools like <a href=\"https:\/\/scratch.mit.edu\">Scratch<\/a>. I&#8217;ve described how <a href=\"https:\/\/dalelane.co.uk\/blog\/?p=3852\">I&#8217;ve seen children learn a lot about machine learning principles by being able to play and experiment<\/a> with it. But I still want the site to do more to explain how the tech actually works, and this new feature is an attempt to do that.<\/p>\n<p><!--more-->Let&#8217;s start with a trivial example.<\/p>\n<p>Imagine you want to train a machine learning model to recognize if a number is a big number or a small number. (<em>Not a great use of machine learning, I admit&#8230;<\/em>)<\/p>\n<p>You start by collecting examples of big numbers, and examples of small numbers.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-training.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-training-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-training.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>You use this to train a machine learning model. And as well as letting you use it from Scratch, App Inventor, or Python, the website lets you experiment with the model &#8211; trying out values with it to see what it would predict.<\/p>\n<p>If you give it a small number, it displays the prediction and the confidence score for that prediction.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-test.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-test-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-test.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>What I&#8217;ve now added to the site is a visualisation of how that prediction was made.<\/p>\n<p>The site generates a visualisation of the decision tree classifier that you&#8217;ve created.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-tree-all.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-tree-all-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-tree-all.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>To try and make it clearer how it works, I&#8217;ve made it interactive.<\/p>\n<p>If you enter some test values, it highlights the nodes of the tree that were used to make a prediction.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-tree-highlight.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-tree-highlight-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example1-tree-highlight.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p><strong>You start at the top of the tree, and follow it until you reach a leaf node at the bottom of the tree. <\/strong><\/p>\n<p><strong>Each node describes the test that is applied &#8211; if your test values pass the test, it follows the left node, otherwise it follows the right node.<\/strong><\/p>\n<p>That&#8217;s the basic idea, but no-one is using machine learning to recognize if numbers are big or small, so let&#8217;s see what a real visualisation looks like.<\/p>\n<h4>Explaining Pac-Man<\/h4>\n<p>Pac-Man is a popular project. Students create a simple version of Pac-Man in Scratch, using the arrow keys to control Pac-Man and avoid the ghost.<\/p>\n<p><iframe loading=\"lazy\" width=\"450\" height=\"253\" style=\"border: thin black solid\" src=\"https:\/\/www.youtube.com\/embed\/xwaHyPVqqjs\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe><br \/>\n<em><small><a href=\"https:\/\/youtu.be\/xwaHyPVqqjs\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>By playing the game, they collect training examples for their machine learning model.<\/p>\n<p>They can see that in their training page. Each training example has four numbers: the x,y coordinates for Pac-Man, and the x,y coordinates for the ghost &#8211; each example records the location of the Pac-Man and the ghost when they made a move.<\/p>\n<p>Each training bucket represents the four moves that Pac-Man can make (go up, down, left or right).<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-training.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-training-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-training.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>If Pac-Man was at x=3,y=4 and the ghost was at x=6,y=5, and they pressed the down arrow, then the training example (3,4,6,5) will be added to the &#8220;down&#8221; bucket.<\/p>\n<p>They use that to create a machine learning model that can predict the best direction for Pac-Man to go, based on the current character locations.<\/p>\n<p>If they enter locations for Pac-Man and the ghost, they can test what their machine learning model predicts Pac-Man should do.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-test.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-test-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-test.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>They can experiment to see if it makes predictions they would agree with. For example, if Pac-Man is at x=1,y=1, and the ghost is at x=6,y=5, my machine learning model predicted that Pac-Man should go right.<\/p>\n<p>And they use this in Scratch to put the machine learning model in charge of the character, using the predictions from the machine learning model to control Pac-Man.<\/p>\n<p><iframe loading=\"lazy\" width=\"450\" height=\"253\" style=\"border: thin black solid\" src=\"https:\/\/www.youtube.com\/embed\/UnHpZrt9B0E\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe><br \/>\n<em><small><a href=\"https:\/\/youtu.be\/UnHpZrt9B0E\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>With the new visualisation feature, now they can see <strong>how<\/strong> that works!<\/p>\n<p>The decision tree created for a project like this quickly gets quite large.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-tree-all.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-tree-all-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-tree-all.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>The decision tree graphic is a vector, so students can zoom right in.<\/p>\n<p>I&#8217;ve added controls so they can easily pan around to focus on different sections of the tree.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-tree-all-zoom.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-tree-all-zoom-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-tree-all-zoom.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>And the interactivity means they can enter in test coordinates, and see how the tree is used to make a prediction.<\/p>\n<p>Using the same coordinates as before (Pac-Man at x=1,y=1 and the ghost at x=6,y=5) it looks like this:<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-tree-highlight.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-tree-highlight-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example2-tree-highlight.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<h4>Explaining Noughts and Crosses<\/h4>\n<p>Noughts and Crosses is a more complicated version of the same idea.<\/p>\n<p>There are nine training buckets this time, representing the nine possible moves that the machine learning model needs to be able to predict.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-noughts-and-crosses-training-1.png\" style=\"border: thin black solid\"\/><\/p>\n<p>The project works in the same way, with students collecting their training examples by playing games of Noughts and Crosses in Scratch.<\/p>\n<p>And they train a machine learning model that predicts the best place to make the next move, so they train a Scratch game to play against them.<\/p>\n<p>The training examples they collect are a description of the contents of each space on the noughts and crosses board, and go into the training bucket for the move that they made at that time.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-noughts-and-crosses-training-2.png\" style=\"border: thin black solid\"\/><\/p>\n<p>The decision tree for this can get very big.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-tree-all.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-tree-all-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-tree-all.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>But it gets very good at making decisions for playing the game.<\/p>\n<p>For example, if cross makes it&#8217;s first move in the top left corner&#8230;<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-noughtsandcrosses-1.png\" style=\"border: thin black solid\"\/><\/p>\n<p>&#8230;my machine learning model predicts that noughts should go in the centre space.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-test.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-test-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-test.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>Now students can see for themselves why it makes that prediction.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-tree-highlight.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-tree-highlight-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-tree-highlight.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>So nought goes in the centre space, which is followed by cross going in the top-middle space.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-noughtsandcrosses-2.png\" style=\"border: thin black solid\"\/><\/p>\n<p>This time, my machine learning model predicts that noughts should go in the top-right.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-test-2.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-test-2-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-test-2.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>And now students can see why.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-tree-highlight-2.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-tree-highlight-2-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example3-tree-highlight-2.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<h4>Titanic passengers<\/h4>\n<p>Finally, you can use this with the Titanic passenger data that <a href=\"https:\/\/dalelane.co.uk\/blog\/?p=3723\">I&#8217;ve written about before<\/a>.<\/p>\n<p>Students can import a set of training data describing passengers on the Titanic, sorted into whether or not they survived the sinking of the ship.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-training.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-training-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-training.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>They can use this to train a predictive model that, given a description of a passenger, predicts whether they would have been likely to survive.<\/p>\n<p>(<em>Yes, I still have <a href=\"https:\/\/dalelane.co.uk\/blog\/?p=3723\">the same uneasy qualms<\/a> about this project&#8230;<\/em>)<\/p>\n<p>The visualization for this model is a thing of beauty.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-tree-all.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-tree-all-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-tree-all.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>And it makes it easier to see what patterns the machine learning model has identified in the training data.<\/p>\n<p>Making a prediction that a six-year old boy travelling with three brothers and sisters and two parents would likely have survived.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-tree-test-1.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-tree-test-1-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-tree-test-1.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<p>Or a prediction that a 28-year-old woman travelling alone on a third-class ticket would also likely have survived.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-tree-test-2.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-tree-test-2-thumb.png\" style=\"border: thin black solid\"\/><\/a><br \/>\n<em><small><a href=\"http:\/\/dalelane.co.uk\/blog\/post-images\/190818-decisiontrees\/190818-example4-tree-test-2.png\" target=\"_blank\" rel=\"noopener noreferrer\">Click to enlarge<\/a><\/small><\/em><\/p>\n<h3>What next?<\/h3>\n<p>This is still, at best, an early beta. I&#8217;m sure there are rough edges, I know it doesn&#8217;t cope well with very large training sets, I need to find a better way of explaining it, I want to improve the way that the tests for each node are described, and much more.<\/p>\n<p>As a start, I&#8217;m very happy with it. As always, any <a href=\"https:\/\/github.com\/IBM\/taxinomitis\/wiki\/Input-from-teachers-and-group-leaders\">suggestions and feedback are always welcome<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Machine Learning for Kids now includes interactive visualisations that explain how some of the machine learning models that children create work. The tool lets children learn about artificial intelligence by training machine learning models, and using that to make projects using tools like Scratch. I&#8217;ve described how I&#8217;ve seen children learn a lot about machine [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3882,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[580,587],"class_list":["post-3869","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-machine-learning","tag-mlforkids-tech"],"_links":{"self":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3869"}],"version-history":[{"count":0,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3869\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/media\/3882"}],"wp:attachment":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}