

{"id":19275,"date":"2018-06-24T04:20:29","date_gmt":"2018-06-24T04:20:29","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=19275"},"modified":"2021-05-12T11:09:10","modified_gmt":"2021-05-12T05:39:10","slug":"pyspark-mllib","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/","title":{"rendered":"PySpark MLlib &#8211; Algorithms and Parameters"},"content":{"rendered":"<p><span style=\"font-weight: 400\">In our last\u00a0<strong>PySpark tutorial<\/strong>, we discussed <strong>PySpark StorageLevel<\/strong>. Today, we will discuss PySpark MLlib. Moreover, we will see different algorithms and parameters of PySpark MLlib. PySpark has this machine learning API.\u00a0<\/span><\/p>\n<p>So, let&#8217;s start PySpark MLlib.<\/p>\n<h2>What is PySpark MLlib?<\/h2>\n<p><span style=\"font-weight: 400\">As we know, Spark offers a <strong>Machine Learning<\/strong> API which we call MLlib. Though, in Python as well, PySpark has this machine learning API. Also, there are different kind of algorithms in PySpark MLlib, such as:<\/span><\/p>\n<h3>a. mllib.classification<\/h3>\n<p><span style=\"font-weight: 400\">For binary classification, various methods are available in the spark.mllib package\u00a0such as multiclass classification as well as regression analysis. Moreover, in classification, some of the most popular algorithms are Naive Bayes, Random Forest, Decision Tree<\/span><\/p>\n<h3>b. mllib.clustering<\/h3>\n<p><span style=\"font-weight: 400\">An unsupervised learning problem is clustering, here we try to group subsets of entities with one another on the basis of some notion of similarity.<\/span><\/p>\n<h3>c. mllib.linalg<\/h3>\n<p><span style=\"font-weight: 400\">This algorithm supports PySpark MLlib utilities for linear algebra.<\/span><\/p>\n<h3>d. mllib.recommendation<\/h3>\n<p><span style=\"font-weight: 400\">For recommender systems, collaborative filtering is commonly used. So, to fill in the missing entries of a user item association matrix is the main aim of these techniques aim.<\/span><\/p>\n<h3>e. spark.mllib<\/h3>\n<p><span style=\"font-weight: 400\">Recently, this PySpark MLlib supports model-based collaborative filtering. By a small set of latent factors,. Here all the users and products are described, which we can use to predict missing entries. However, to learn these latent factors, spark.mllib uses the Alternating Least Squares (ALS) algorithm.<\/span><\/p>\n<h3>f. mllib.regression<\/h3>\n<p><span style=\"font-weight: 400\">Basically, linear regression comes from the family of regression algorithms. To find relationships and dependencies between variables is the main goal of regression.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Although, PySpark MLlib package also covers other algorithms, classes, and functions. <\/span><br \/>\n<span style=\"font-weight: 400\">Well to understand it better, here is the following example<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>Alternating Least Squares Matrix Factorization<\/strong>&#8211;<\/span><\/p>\n<pre class=\"EnlighterJSRAW\">def train(cls, ratings, rank, iterations=5, lambda_=0.01, blocks=-1, nonnegative=False,\r\n             seed=None):<\/pre>\n<p><b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;&#8221;&#8221;<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Train a matrix factorization model given an RDD of ratings by users<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for a subset of products. The rating matrix is approximated as the<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0product of two lower-rank matrices of a given rank (number of<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0features). To solve for these features, ALS is run iteratively with<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0a configurable level of parallelism.<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:param ratings:<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0RDD of `Rating` or (userID, productID, rating) tuple.<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:param rank:<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Rank of the feature matrices computed (number of features).<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:param iterations:<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Number of iterations of ALS.<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(default: 5)<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:param lambda_:<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Regularization parameter.<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(default: 0.01)<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:param blocks:<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Number of blocks used to parallelize the computation. A value<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0of -1 will use an auto-configured number of blocks.<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(default: -1)<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:param nonnegative:<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0A value of True will solve least-squares with nonnegativity<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0constraints.<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(default: False)<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:param seed:<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Random seed for initial matrix factorization model. A value<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0of None will use system time as the seed.<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(default: None)<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;&#8221;&#8221;<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0model = callMLlibFunc(&#8220;trainALSModel&#8221;, cls._prepare(ratings), rank, iterations,<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lambda_, blocks, nonnegative, seed)<\/b><br \/>\n<b> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return MatrixFactorizationModel(model)<\/b><\/p>\n<h2><span style=\"font-weight: 400\">Parameters<\/span>\u00a0of PySpark MLlib<\/h2>\n<p>Below discussing are some main parameters of PySpark MLlib:<\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Ratings<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This is RDD of Rating or (userID, productID, rating) tuple.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Rank<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">It shows Rank of the feature matrices computed (number of features).<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Iterations<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">These are\u00a0the number of iterations of ALS. (default: 5).<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Lambda<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">It is Regularization parameter. (default: 0.01)<\/span>.<\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Blocks<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">To parallelize the computation some number of blocks used. (default: -1).<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Nonnegative<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">With nonnegativity constraints, a value of True will solve least-squares. (default: False).<\/span><br \/>\nSo, this was all about PySpark MLlib. Hope you like our explanation.<\/p>\n<h2><span style=\"font-weight: 400\">Conclusion<\/span><\/h2>\n<p>Hence, we have seen all about PySpark MLlib. Moreover, in this PySpark tutorial, we discussed different algorithms and parameters for PySpark MLlib. Still, if any doubt, ask in the comment tab. Hope it helps!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our last\u00a0PySpark tutorial, we discussed PySpark StorageLevel. Today, we will discuss PySpark MLlib. Moreover, we will see different algorithms and parameters of PySpark MLlib. PySpark has this machine learning API.\u00a0 So, let&#8217;s start&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":19526,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44],"tags":[2098,7336,8056,8197,8749,8750,8751,8752,8753,9116,9408,10310,10311,11314,11325,13087,15854],"class_list":["post-19275","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pyspark","tag-blocks","tag-iterations","tag-lambda","tag-least-squares-matrix-factorization","tag-mllib-classification","tag-mllib-clustering","tag-mllib-linalg","tag-mllib-recommendation","tag-mllib-regression","tag-nonnegative","tag-parameters-of-pyspark-mllib","tag-pyspark-mllib","tag-pyspark-mllib-algorithms","tag-rank","tag-ratings","tag-spark-mllib","tag-what-is-pyspark-mllib"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PySpark MLlib - Algorithms and Parameters - DataFlair<\/title>\n<meta name=\"description\" content=\"PySpark MLlib tutorial,PySpark machine learning, PySpark MLlib parameter,algorithms in PySpark MLlib,PySpark MLlib example,PySpark Linear regression example\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PySpark MLlib - Algorithms and Parameters - DataFlair\" \/>\n<meta property=\"og:description\" content=\"PySpark MLlib tutorial,PySpark machine learning, PySpark MLlib parameter,algorithms in PySpark MLlib,PySpark MLlib example,PySpark Linear regression example\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-24T04:20:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-12T05:39:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/PySpark-MLlib-01.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PySpark MLlib - Algorithms and Parameters - DataFlair","description":"PySpark MLlib tutorial,PySpark machine learning, PySpark MLlib parameter,algorithms in PySpark MLlib,PySpark MLlib example,PySpark Linear regression example","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:\/\/data-flair.training\/blogs\/pyspark-mllib\/","og_locale":"en_US","og_type":"article","og_title":"PySpark MLlib - Algorithms and Parameters - DataFlair","og_description":"PySpark MLlib tutorial,PySpark machine learning, PySpark MLlib parameter,algorithms in PySpark MLlib,PySpark MLlib example,PySpark Linear regression example","og_url":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-06-24T04:20:29+00:00","article_modified_time":"2021-05-12T05:39:10+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/PySpark-MLlib-01.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"PySpark MLlib &#8211; Algorithms and Parameters","datePublished":"2018-06-24T04:20:29+00:00","dateModified":"2021-05-12T05:39:10+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/"},"wordCount":580,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/PySpark-MLlib-01.jpg","keywords":["Blocks","Iterations","Lambda","Least Squares matrix factorization","mllib.classification","mllib.clustering","mllib.linalg","mllib.recommendation","mllib.regression","Nonnegative","Parameters of PySpark MLlib","PySpark MLlib","PySpark Mllib algorithms","Rank","Ratings","Spark MLlib","What is PySpark MLlib"],"articleSection":["PySpark Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/pyspark-mllib\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/","url":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/","name":"PySpark MLlib - Algorithms and Parameters - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/PySpark-MLlib-01.jpg","datePublished":"2018-06-24T04:20:29+00:00","dateModified":"2021-05-12T05:39:10+00:00","description":"PySpark MLlib tutorial,PySpark machine learning, PySpark MLlib parameter,algorithms in PySpark MLlib,PySpark MLlib example,PySpark Linear regression example","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/pyspark-mllib\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/PySpark-MLlib-01.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/PySpark-MLlib-01.jpg","width":1200,"height":628,"caption":"PySpark MLlib - Algorithms and Parameters"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/pyspark-mllib\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"PySpark Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/pyspark\/"},{"@type":"ListItem","position":3,"name":"PySpark MLlib &#8211; Algorithms and Parameters"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team provides industry-driven content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our expert educators focus on delivering value-packed, easy-to-follow resources for tech enthusiasts and professionals.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam2\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/19275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=19275"}],"version-history":[{"count":4,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/19275\/revisions"}],"predecessor-version":[{"id":94288,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/19275\/revisions\/94288"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/19526"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=19275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=19275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=19275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}