{"id":1114,"date":"2019-01-17T13:28:24","date_gmt":"2019-01-17T19:28:24","guid":{"rendered":"http:\/\/www.jacobsoft.com.mx\/?p=1114"},"modified":"2025-02-20T13:37:49","modified_gmt":"2025-02-20T19:37:49","slug":"aprendizaje-con-reglas-de-asociacion","status":"publish","type":"post","link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/aprendizaje-con-reglas-de-asociacion\/","title":{"rendered":"Aprendizaje con Reglas de Asociaci\u00f3n"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Aprendizaje con Reglas de Asociaci\u00f3n usando Python<\/h2>\n\n\n\n<p>El <strong>aprendizaje <\/strong>con <em><strong>reglas de asociaci\u00f3n<\/strong><\/em> lo vemos aplicado principalmente en los sistemas de recomendaci\u00f3n, como en el caso donde se nos muestra que las personas que compraron este producto, tambi\u00e9n compraron este otro .. o quienes vieron tal pel\u00edcula tambi\u00e9n recomiendan estas otras, etc.<\/p>\n\n\n\n<p>Para ello, el algoritmo <strong>a priori<\/strong> es uno de los m\u00e1s utilizados en este tema y permite encontrar de forma eficiente conjuntos de <strong><em>items frecuentes<\/em><\/strong>, los cuales sirven de base para generar <strong>reglas de asociaci\u00f3n<\/strong> entre los items.<\/p>\n\n\n\n<p>Primero identifica los <strong>items <\/strong>individuales frecuentes dentro del conjunto de datos para luego extenderlo a un conjunto de mayor tama\u00f1o siempre y cuando esos conjuntos de datos aparezcan constantemente y de manera frecuente de acuerdo con un <strong>umbral <\/strong>establecido.<\/p>\n\n\n\n<p>El algoritmo se aplica principalmente en el an\u00e1lisis de transacciones comerciales y en los problemas de predicci\u00f3n. Es por ello que el algoritmo est\u00e1 dise\u00f1ado para trabajar con bases de datos que contienen transacciones como los productos o art\u00edculos comprados por consumidores, o detalles sobre las visitas a un sitio web, etc.<\/p>\n\n\n\n<p>La forma de generar las <strong><em>reglas de asociaci\u00f3n<\/em><\/strong> consta de dos pasos:<\/p>\n\n\n\n<div class=\"wp-block-advgb-list\"><ul class=\"advgblist-4b293ceb-87d7-415b-9f63-6b796b9fdd60\"><li><strong>Generaci\u00f3n de combinaciones frecuentes<\/strong>: cuyo objetivo es encontrar aquellos conjuntos que sean frecuentes en la base de datos. Para determinar la frecuencia se establece un umbral.<\/li><li><strong>Generaci\u00f3n de reglas<\/strong>: A partir de los conjuntos frecuentes se crean las reglas en base al ordenamiento de un \u00edndice que establece los grupos de items o productos frecuentes.<\/li><\/ul><\/div>\n\n\n\n<p>El \u00edndice para la generaci\u00f3n de combinaciones se llama <strong><em>soporte <\/em><\/strong>y el \u00edndice para la generaci\u00f3n de reglas se llama <strong><em>confidencia<\/em><\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Algoritmo<\/h3>\n\n\n\n<div class=\"wp-block-advgb-list\"><ul class=\"advgblist-a9d774d4-5515-4ca0-8dce-e2c19a0ebbe4\"><li><strong>Paso 1<\/strong>. Se establecen los valores m\u00ednimos para el soporte y la confidencia<\/li><li><strong>Paso 2<\/strong>. Se toman todos los subconjuntos de transacciones que tienen un soporte mayor al valor del soporte m\u00ednimo.<\/li><li><strong>Paso 3<\/strong>. Tomar todas las reglas de estos subconjuntos que tengan una confidencia mayor al valor de la confidencia m\u00ednima.<\/li><li><strong>Paso 4.<\/strong> Ordenar las reglas de forma decreciente en base al valor del lift.<\/li><\/ul><\/div>\n\n\n\n<p>Si quieres ver el tema en video, checalo aqu\u00ed y suscribete al canal en Youtube.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Aprendizaje con Reglas de Asociaci\u00f3n | Algoritmo Apriori\" width=\"780\" height=\"439\" src=\"https:\/\/www.youtube.com\/embed\/YRhu6yEseh8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><figcaption>Entra a youtube y suscribete al canal<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo<\/h3>\n\n\n\n<p>Si tenemos un conjunto de 5 transacciones con diversos productos en cada una de ellas de acuerdo con la siguiente tabla<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>Pan, leche, pa\u00f1ales<\/td><\/tr><tr><td>2<\/td><td>Pan, pa\u00f1ales, cerveza, huevo<\/td><\/tr><tr><td>3<\/td><td>Leche, pa\u00f1ales, cerveza, refresco, caf\u00e9<\/td><\/tr><tr><td>4<\/td><td>Pan, leche, pa\u00f1ales, cerveza<\/td><\/tr><tr><td>5<\/td><td>Pan, refresco, leche, pa\u00f1ales<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>El primer paso es generar las compinaciones frecuentes, y, si queremos un soporte superior al 50%, entonces contamos la frecuencia de cada uno de los art\u00edculos, es decir, en cuantas transacciones aparecen cada uno de los art\u00edculos.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Art\u00edculo<\/strong><\/td><td><strong>Transacciones<\/strong><\/td><\/tr><tr><td>Cerveza<\/td><td>3<\/td><\/tr><tr><td>Pan<\/td><td>4<\/td><\/tr><tr><td>Refresco<\/td><td>2<\/td><\/tr><tr><td>Pa\u00f1ales<\/td><td>5<\/td><\/tr><tr><td>Leche<\/td><td>4<\/td><\/tr><tr><td>Huevo<\/td><td>1<\/td><\/tr><tr><td>Caf\u00e9<\/td><td>1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Para calcular el soporte de cada art\u00edculo dividimos la cantidad de transacciones de cada art\u00edculo, entre el total de transacciones. Es decir, para cerveza tenemos que aparece en 3 de las 5 transacciones, entonces es 3\/5 = 0.6 que representa el 60%. Para el resto de los art\u00edculos tenemos lo siguiente:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Art\u00edculo<\/strong><\/td><td><strong>Soporte<\/strong><\/td><\/tr><tr><td>Cerveza<\/td><td>60%<\/td><\/tr><tr><td>Pan<\/td><td>80%<\/td><\/tr><tr><td>Refresco<\/td><td>40%<\/td><\/tr><tr><td>Pa\u00f1ales<\/td><td>100%<\/td><\/tr><tr><td>Leche<\/td><td>80%<\/td><\/tr><tr><td>Huevo<\/td><td>20%<\/td><\/tr><tr><td>Caf\u00e9<\/td><td>20%<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Como se requiere un soporte superior al 50% entonces eliminamos todos los art\u00edculos que estan por abajo de este umbral: refreso, huevo y caf\u00e9.<\/p>\n\n\n\n<p>El siguiente paso es generar las combinaciones con los productos que quedaron para iterar primero con combinaciones de dos, calculamos el soporte y despu\u00e9s con combinaciones de 3 y as\u00ed sucesivamente.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Conjuntos<\/strong><\/td><td><strong>Frecuencia<\/strong><\/td><td><strong>Soporte<\/strong><\/td><\/tr><tr><td>Cerveza, Pan<\/td><td>2<\/td><td>40%<\/td><\/tr><tr><td>Cerveza, Pa\u00f1ales<\/td><td>3<\/td><td>60%<\/td><\/tr><tr><td>Cerveza, Leche<\/td><td>2<\/td><td>40%<\/td><\/tr><tr><td>Pan, Pa\u00f1ales<\/td><td>4<\/td><td>80%<\/td><\/tr><tr><td>Pan, Leche<\/td><td>3<\/td><td>60%<\/td><\/tr><tr><td>Pa\u00f1ales, Leche<\/td><td>4<\/td><td>80%<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Eliminamos los que estan por abajo del 50% y nos quedamos con los primeros conjuntos frecuentes cuyo soporte es superior al 50%<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Cerveza, Pa\u00f1ales<\/td><\/tr><tr><td>Pan, Pa\u00f1ales<\/td><\/tr><tr><td>Pan, Leche<\/td><\/tr><tr><td>Pa\u00f1ales, Leche<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>A partir de los conjuntos generados, creamos conjuntos de tres art\u00edculos y calculamos su soporte<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Conjuntos<\/strong><\/td><td><strong>Frecuencia<\/strong><\/td><td><strong>Soporte<\/strong><\/td><\/tr><tr><td>Cerveza, Pa\u00f1ales, Pan<\/td><td>2<\/td><td>40%<\/td><\/tr><tr><td>Cerveza, Pa\u00f1ales, Leche<\/td><td>2<\/td><td>40%<\/td><\/tr><tr><td>Pan, Pa\u00f1ales, Leche<\/td><td>3<\/td><td>60%<\/td><\/tr><tr><td>Pan, Leche, Cerveza<\/td><td>1<\/td><td>20%<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>En estas combinaciones de tres, \u00fanicamente nos quedamos con el conjunto formado por Pan, Pa\u00f1ales y Leche, el cual utilizamos para hacer combinaciones de 4 art\u00edculos, sin embargo para este caso, tienen soporte de 20% por lo cual, aqu\u00ed termina el argoritmo.<\/p>\n\n\n\n<p>El resultado arrojo un elemento de 3 art\u00edculos y cuatro de 2 art\u00edculos:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Pan, Pa\u00f1ales, Leche<\/td><\/tr><tr><td>Cerveza, Pa\u00f1ales<\/td><\/tr><tr><td>Pan, Pa\u00f1ales<\/td><\/tr><tr><td>Pan, Leche<\/td><\/tr><tr><td>Pa\u00f1ales, Leche<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>A partir de estos 5 conjuntos obtenemos la reglas de asociaci\u00f3n, para lo cual, establecemos que tambi\u00e9n queremos un \u00edndice superior 50%. Este \u00edndice es la confidencia y lo calculamos dividiendo las repeticiones de las observaciones del conjunto entre las repeticiones de la regla:<\/p>\n\n\n\n<p>Tomando el primer conjunto de Pan, Pa\u00f1ales, Leche, las reglas posibles son:<\/p>\n\n\n\n<div class=\"wp-block-advgb-list\"><ul class=\"advgblist-bc6bbd44-0347-441c-8fcb-b9c6299974cd\"><li> Pan => Pa\u00f1ales, Leche <\/li><li>Pa\u00f1ales => Pan, Leche<\/li><li>Leche = Pan, Pa\u00f1ales<\/li><li>Pan, Pa\u00f1ales => Leche<\/li><li>Pan, Leche => Pa\u00f1ales<\/li><li>Leche, Pa\u00f1ales => Pan<\/li><\/ul><\/div>\n\n\n\n<p>Si tomamos la primer regla: Pan =&gt; Pa\u00f1ales, Leche observamos que en las transacciones originales que <strong>Pan, Pa\u00f1ales, Leche <\/strong>aparece en 3 transacciones y la regla Pan aparece en 4 transacciones, entonces la confidencia es 3\/4 = 0.75 que es el 75%<\/p>\n\n\n\n<p>Para la regla formada por: Pan, Pa\u00f1ales =&gt; Leche tenemos que la combinaci\u00f3n Pan, Pa\u00f1ales, Leche aparece en 3 transacciones y la regla Pa\u00f1ales, Leche en 4 transacciones por lo que su confidencia es del 75% tambi\u00e9n, es decir 3\/4 = 0.75<\/p>\n\n\n\n<p>Una vez que calculamos  las confidencia de todas las reglas, las ordenamos de mayor a menor en base a esa confidencia calculada y obtenemos las reglas de asociaci\u00f3n para todo el conjunto, que es como funciona el algoritmo <strong>A Priori<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Priori con Python<\/h2>\n\n\n\n<p>Para el ejemplo con <strong>python <\/strong>utilizaremos un conjunto de datos de transacciones comerciales llamado: <strong><em>Market_Basket_Optimisation.csv<\/em><\/strong> con 7,501 registros o transacciones, cada una de las cuales contiene uno o varios productos de un supermercado:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"887\" height=\"532\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/apriori_dataset.png\" alt=\"\" class=\"wp-image-1131\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/apriori_dataset.png 887w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/apriori_dataset-300x180.png 300w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/apriori_dataset-768x461.png 768w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/apriori_dataset-100x60.png 100w\" sizes=\"auto, (max-width: 887px) 100vw, 887px\" \/><figcaption>Conjunto de datos de transacciones comerciales<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/Market_Basket_Optimisation.csv\">Market_Basket_Optimisation<\/a><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/Market_Basket_Optimisation.csv\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<iframe loading=\"lazy\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/apriori.html\" width=\"99%\" height=\"900\" frameborder=\"0\" scrolling=\"auto\"><\/iframe>\n\n\n\n<p>Observamos las reglas resultantes con 2, 3 o m\u00e1s art\u00edculos que implican otro grupo de productos y tenemos tambi\u00e9n el soporte, la confidencia y el lift.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Clase Apriori<\/h3>\n\n\n\n<p>La clase apriori utilizada en la implementaci\u00f3n anterior es la siguiente:<\/p>\n\n\n\n<iframe loading=\"lazy\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/apriori_class.html\" width=\"99%\" height=\"900\" frameborder=\"0\" scrolling=\"auto\"><\/iframe>\n\n\n\n<p>Ambos archivos deben estar en la misma carpeta para poder utilizar la clase en el script que crea las reglas de asociaci\u00f3n.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"amzn-assoc-ad-eeed538b-d6e2-4233-ac92-c9505f45495c\"><\/div><script async=\"\" src=\"\/\/z-na.amazon-adsystem.com\/widgets\/onejs?MarketPlace=US&amp;adInstanceId=eeed538b-d6e2-4233-ac92-c9505f45495c\"><\/script>\n\n\n\n<p><\/p>\n<style class=\"advgb-styles-renderer\">.advgblist-4b293ceb-87d7-415b-9f63-6b796b9fdd60 li { font-size: 16px; margin-left: 20px }.wp-block-advgb-list ul.advgblist-4b293ceb-87d7-415b-9f63-6b796b9fdd60 > li{font-size:16px;}.advgblist-a9d774d4-5515-4ca0-8dce-e2c19a0ebbe4 li { font-size: 16px; margin-left: 20px }.wp-block-advgb-list ul.advgblist-a9d774d4-5515-4ca0-8dce-e2c19a0ebbe4 > li{font-size:16px;}.advgblist-bc6bbd44-0347-441c-8fcb-b9c6299974cd li { font-size: 16px; margin-left: 20px }.wp-block-advgb-list ul.advgblist-bc6bbd44-0347-441c-8fcb-b9c6299974cd > li{font-size:16px;}<\/style>","protected":false},"excerpt":{"rendered":"<p>Aprendizaje con Reglas de Asociaci\u00f3n usando Python El aprendizaje con reglas de asociaci\u00f3n lo vemos &hellip; <\/p>\n","protected":false},"author":2,"featured_media":1115,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[25,35,46],"tags":[101,57,55,58,56,82,50,59,61],"class_list":["post-1114","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmos","category-inteligencia-artificial","category-machine-learning","tag-aprendizaje","tag-ciencia-de-datos","tag-clasificacion","tag-data-mining","tag-data-science","tag-inteligencia-artificial","tag-machine-learning","tag-mineria-de-datos","tag-python"],"aioseo_notices":[],"author_meta":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/author\/jacob-avila\/"},"featured_img":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/destacada_apriori-300x165.png","featured_image_src":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/destacada_apriori.png","featured_image_src_square":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2019\/01\/destacada_apriori.png","author_info":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/author\/jacob-avila\/"},"coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/algoritmos\/\" class=\"advgb-post-tax-term\">Algoritmos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/\" class=\"advgb-post-tax-term\">Inteligencia Artificial<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Machine Learning<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Algoritmos<\/span>","<span class=\"advgb-post-tax-term\">Inteligencia Artificial<\/span>","<span class=\"advgb-post-tax-term\">Machine Learning<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">aprendizaje<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Ciencia de Datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">clasificaci\u00f3n<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Mining<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Science<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Inteligencia Artificial<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">machine learning<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Python<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">aprendizaje<\/span>","<span class=\"advgb-post-tax-term\">Ciencia de Datos<\/span>","<span class=\"advgb-post-tax-term\">clasificaci\u00f3n<\/span>","<span class=\"advgb-post-tax-term\">Data Mining<\/span>","<span class=\"advgb-post-tax-term\">Data Science<\/span>","<span class=\"advgb-post-tax-term\">Inteligencia Artificial<\/span>","<span class=\"advgb-post-tax-term\">machine learning<\/span>","<span class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/span>","<span class=\"advgb-post-tax-term\">Python<\/span>"]}},"comment_count":"4","relative_dates":{"created":"Publicado 7 a\u00f1os hace","modified":"Actualizado 1 a\u00f1o hace"},"absolute_dates":{"created":"Publicado el enero 17, 2019","modified":"Actualizado el febrero 20, 2025"},"absolute_dates_time":{"created":"Publicado el enero 17, 2019 1:28 pm","modified":"Actualizado el febrero 20, 2025 1:37 pm"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/1114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/comments?post=1114"}],"version-history":[{"count":27,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/1114\/revisions"}],"predecessor-version":[{"id":1769,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/1114\/revisions\/1769"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media\/1115"}],"wp:attachment":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media?parent=1114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/categories?post=1114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/tags?post=1114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}