{"id":403,"date":"2018-10-07T16:30:34","date_gmt":"2018-10-07T22:30:34","guid":{"rendered":"http:\/\/www.jacobsoft.com.mx\/?p=403"},"modified":"2025-02-20T13:37:51","modified_gmt":"2025-02-20T19:37:51","slug":"support-vector-regression","status":"publish","type":"post","link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/support-vector-regression\/","title":{"rendered":"Support Vector Regression (SVR)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Regresi\u00f3n de Soporte Vectorial (Support Vector Regression &#8211; SVR)<\/h2>\n\n\n\n<p>Support Vector Regression es una variante del modelo de an\u00e1lisis <strong>Support Vector Machine<\/strong> utilizado para clasificar, sin embargo, con esta variante el modelo de vector soporte se utiliza como un esquema de regresi\u00f3n para predecir valores.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">M\u00e1quina de Soporte Vectorial (SVM)<\/h3>\n\n\n\n<p>Es un conjunto de algoritmos de aprendizaje supervisado relacionados directamente con problemas de clasificaci\u00f3n y regresi\u00f3n en donde a partir de un conjunto de datos de entrenamiento o muestras y con las clases etiquetadas se entrena una SVM para construir el modelo que prediga la clase de una muestra nueva.<\/p>\n\n\n\n<p>Intuitivamente la SVM es un modelo que representa a los puntos de la muestra en el espacio, separando las clases en dos espacios lo m\u00e1s amplios posibles mediante un hiperplano de separaci\u00f3n, el cual es definido como el vector entre los dos puntos de las dos clases m\u00e1s cercanas y a este vector se le llama vector soporte.<\/p>\n\n\n\n<p>Cuando una nueva muestra se pone en correspondencia con dicho modelo, en funci\u00f3n del espacio al que pertenece, entonces puede ser clasificada a una u otra clase. Una buena separaci\u00f3n entre las clases permitir\u00e1 una clasificaci\u00f3n correcta.<\/p>\n\n\n\n<p>En este sentido, una SVM construye un hiperplano o un conjunto de hiperplanos en un espacio de dimensionalidad muy alta o incluso infinita que puede ser utilizado en problemas de clasificaci\u00f3n o regresi\u00f3n.<\/p>\n\n\n\n<p>Los modelos basados en SVM est\u00e1n relacionados con las redes neuronales. Utilizando una funci\u00f3n kernel, se obtiene un m\u00e9todo de entrenamiento alternativo para clasificadores polinomiales, funci\u00f3n de base radial y perceptr\u00f3n multicapa.<\/p>\n\n\n\n<p>Como en la mayor\u00eda de los m\u00e9todos de clasificaci\u00f3n supervisada, los datos de entrada son vistos como un vector p-dimensional (una lista ordenada de p n\u00fameros). La SVM busca un hiperplano que separe de forma \u00f3ptima a los puntos de una clase con respecto a otra, que previamente han podido ser proyectados en un espacio de dimensionalidad superior.<\/p>\n\n\n\n<p>En este concepto de separaci\u00f3n \u00f3ptima es donde reside la caracter\u00edstica fundamental de las SVM, buscando que el hiperplano tenga la m\u00e1xima distancia con los puntos m\u00e1s cercano a el. De esta manera los puntos del vector que est\u00e1n de un lado del hiperplano se etiquetan con una categor\u00eda y los que se encuentran del otro lado, se etiquetan con otra categor\u00eda.<\/p>\n\n\n\n<p>A la variable predictora se le llama atributo y a los atributos utilizados para definir el hiperplano se les llaman caracter\u00edsticas. La elecci\u00f3n de la representaci\u00f3n m\u00e1s adecuada del universo estudiado se lleva a cabo mediante un proceso llamado selecci\u00f3n de caracter\u00edsticas. Al vector formado por los puntos m\u00e1s cercanos al hiperplano se le llama vector soporte.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"508\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVM1.png\" alt=\"\" class=\"wp-image-455\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVM1.png 689w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVM1-300x221.png 300w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><figcaption>Supongamos este conjunto de datos<\/figcaption><\/figure>\n\n\n\n<p>El SVM escoger\u00e1 un hiperplano para separar los grupos, con la mayor distancia posible:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"508\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVM2.png\" alt=\"\" class=\"wp-image-456\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVM2.png 689w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVM2-300x221.png 300w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><\/figure>\n\n\n\n<p>Un buen margen es aquel en el cual se tiene la m\u00e1xima distancia desde los vectores de soporte hacia las dos clases.<\/p>\n\n\n\n<p>Cuando el conjunto de datos es m\u00e1s complejo, el SVM convierte los datos en un espacio lineal utilizando algunas ecuaciones para llegar a un espacio dimensional m\u00e1s alto, utiliza por ejemplo: z = x<sup>2<\/sup>&nbsp;+ y<sup>2<\/sup><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Support Vector Regression<\/h2>\n\n\n\n<p>Support Vector Regression utiliza el mismo principio con algunos cambios menores. En principio dado que la salida es un n\u00famero real, se vuelve dif\u00edcil predecir la informaci\u00f3n a mano dado que existen posibilidades infinitas. Para el caso de la regresi\u00f3n, entonces se establece un margen de tolerancia (epsilon) cerca del vector con el fin de minimizar el error tomando en cuenta que parte de ese error es tolerado.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"491\" height=\"281\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_2.png\" alt=\"\" class=\"wp-image-457\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_2.png 491w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_2-300x172.png 300w\" sizes=\"auto, (max-width: 491px) 100vw, 491px\" \/><figcaption>fuente:&nbsp;http:\/\/www.saedsayad.com\/support_vector_machine_reg.htm<\/figcaption><\/figure>\n\n\n\n<p>Para el caso de un problema lineal, el SVR esta dado por<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"84\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_4.png\" alt=\"\" class=\"wp-image-458\"\/><\/figure><\/div>\n\n\n\n<p>Cuando el problema no es lineal, la funci\u00f3n Kernel transforma los datos en una caracter\u00edstica de espacio dimensional m\u00e1s alto para hacer posible ejecutar la separaci\u00f3n lineal:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"302\" height=\"180\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_6.png\" alt=\"\" class=\"wp-image-459\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_6.png 302w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_6-300x179.png 300w\" sizes=\"auto, (max-width: 302px) 100vw, 302px\" \/><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"274\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_5.png\" alt=\"\" class=\"wp-image-460\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_5.png 494w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_5-300x166.png 300w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><figcaption>fuente:&nbsp;http:\/\/www.saedsayad.com\/support_vector_machine_reg.htm<br><\/figcaption><\/figure>\n\n\n\n<p>Las funciones Kernel m\u00e1s comunes son:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"255\" height=\"217\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVM_kernel_1.png\" alt=\"\" class=\"wp-image-461\"\/><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Support Vector Regression con Python\" width=\"780\" height=\"439\" src=\"https:\/\/www.youtube.com\/embed\/g2nNzRP21Sc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">SVR &#8211; Support Vector Regression con Python<\/h2>\n\n\n\n<p>Importamos la librer\u00edas b\u00e1sicas y cargamos el conjunto de datos que utilizaremos para este ejemplo:<\/p>\n\n\n\n\n<pre class=\"wp-block-preformatted\"><span class=\"kw\">import<\/span> numpy <span class=\"kw\">as<\/span> np\n<span class=\"kw\">import<\/span> matplotlib.pyplot <span class=\"kw\">as<\/span> plt\n<span class=\"kw\">import<\/span> pandas <span class=\"kw\">as<\/span> pd\n\ndataset = pd.read_csv('<span class=\"st\">Salario_por_Posicion.csv<\/span>')\nX = dataset.iloc[:, <span class=\"kw\">1<\/span>:<span class=\"kw\">2<\/span>].values\ny = dataset.iloc[:, <span class=\"kw\">2<\/span>].values<\/pre>\n\n\n\n<p>El conjunto de datos contiene 3 columnas, de las cuales utilizaremos la segunda columna que representa el nivel del puesto de una persona, como la variable independiente y el salario que es la \u00faltima columna como la variable dependiente a predecir<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"470\" height=\"428\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_9.png\" alt=\"\" class=\"wp-image-394\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_9.png 470w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_9-300x273.png 300w\" sizes=\"auto, (max-width: 470px) 100vw, 470px\" \/><\/figure><\/div>\n\n\n\n<p>Ahora realizamos un ajuste de escalas a trav\u00e9s de la estandarizaci\u00f3n de datos:<\/p>\n\n\n\n\n<pre class=\"wp-block-preformatted\"><span class=\"com\"># Ajustes de escalas<\/span>\n<span class=\"kw\">from<\/span> sklearn.preprocessing <span class=\"kw\">import<\/span> StandardScaler\nsc_X = StandardScaler()\nsc_y = StandardScaler()\nX = sc_X.fit_transform(X)\ny = sc_y.fit_transform(y)<\/pre>\n\n\n\n<p>Los datos quedan ahora de la siguiente manera para la variable independiente X y la variable dependiente Y<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"387\" height=\"415\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_scalling.png\" alt=\"\" class=\"wp-image-468\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_scalling.png 387w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/SVR_scalling-280x300.png 280w\" sizes=\"auto, (max-width: 387px) 100vw, 387px\" \/><\/figure><\/div>\n\n\n\n<p>El siguiente paso es crear el objeto SVR desde la librer\u00eda sklearn y el subpaquete SVM para entrenarlo con los datos X y Y utilizando la funci\u00f3n kernel RBF<\/p>\n\n\n\n\n<pre class=\"wp-block-preformatted\"><span class=\"kw\">from<\/span> sklearn.svm <span class=\"kw\">import<\/span> SVR\nregressor = SVR(kernel = <span class=\"st\">'rbf'<\/span>)\nregressor.fit(X, y)\n<\/pre>\n\n\n\n<p>La salida obtenida despu\u00e9s de ejecutar el bloque anterior es:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto', kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)<\/pre>\n\n\n\n<p>Para las funciones kernel tenemos varias opciones: linear, poly, rbf, sigmoid o precomputed. la funcion rbf es la funci\u00f3n de base radial com\u00fanmente utilizada para&nbsp; el entrenamiento de algoritmos.<\/p>\n\n\n\n<p>Ya con el modelo entrenado, podemos realizar una predicci\u00f3n, para el valor de X (Nivel), por ejemplo 6.5, para ello primero transformamos el valor con el objeto StandarScaler y lo enviamos al m\u00e9todo predict(), el resultado lo transformamos a la inversa para obtener el valor del salario calculado:<\/p>\n\n\n\n\n<pre class=\"wp-block-preformatted\"><span class=\"com\"># prediccion de un nuevo valor<\/span>\nx_trans = sc_X.transform([[<span class=\"kw\">6.5<\/span>]])\ny_pred = regressor.predict(x_trans)\ny_pred = sc_y.inverse_transform(y_pred)\n<\/pre>\n\n\n\n<p>El valor de y_pred es 170,370.02 que es el salario calculado para el nivel 6.5, observamos en la tabla original que el salario para el nivel 6 es de 150,000 y para el nivel 7 es de 200,000, por lo que el valor de 170 mil esta en el espacio de predicci\u00f3n<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"416\" height=\"338\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/svr_pred.png\" alt=\"\" class=\"wp-image-471\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/svr_pred.png 416w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/svr_pred-300x244.png 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/figure><\/div>\n\n\n\n<p>Ahora graficamos los valores reales de x y Y con rojo y la linea de la predicci\u00f3n con azul para observar la curva y los valores calculados con la predicci\u00f3n del SVR<\/p>\n\n\n\n\n<pre class=\"wp-block-preformatted\"><span class=\"com\">#Graficando los valores reales<\/span>\nx_real = sc_X.inverse_transform(X)\ny_real = sc_y.inverse_transform(y)\n\nX_grid = np.arange(min(x_real), max(x_real), <span class=\"kw\">0.01<\/span>) \nX_grid = X_grid.reshape((len(X_grid), <span class=\"kw\">1<\/span>))\n\nx_grid_transform = sc_X.transform(X_grid)\n\ny_grid = regressor.predict(x_grid_transform)\ny_grid_real = sc_y.inverse_transform(y_grid)\n\nplt.scatter(x_real, y_real, color = <span class=\"st\">'red'<\/span>)\nplt.plot(X_grid, y_grid_real, color = <span class=\"st\">'blue'<\/span>)\nplt.title('SVR')\nplt.xlabel('Nivel Salarial')\nplt.ylabel('Salario')\nplt.show()\n<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"656\" height=\"584\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/svr_grafica-1.png\" alt=\"\" class=\"wp-image-477\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/svr_grafica-1.png 656w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/svr_grafica-1-300x267.png 300w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/figure><\/div>\n\n\n\n<p>\n\nPuedes comparar el resultado con lo que se muestra en el art\u00edculo sobre los \u00e1rboles de regresi\u00f3n y observar la diferencia, en este caso no es un clasificaci\u00f3n para asignar el valor a un grupo, sino una interpolaci\u00f3n.\n\n<\/p>\n<style class=\"advgb-styles-renderer\">\n.kw{color:blue;}\n.st{color:green;}\n\n.kw{color:blue;}\n.st{color:green;}\n\t.com{color:gray;}\n\n.kw{color:blue;}\n.st{color:green;}\n\t.com{color:gray;}\n\n.kw{color:blue;}\n.st{color:green;}\n\t.com{color:gray;}\n\n.kw{color:blue;}\n.st{color:green;}\n\t.com{color:gray;}\n<\/style>","protected":false},"excerpt":{"rendered":"<p>Regresi\u00f3n de Soporte Vectorial (Support Vector Regression &#8211; SVR) Support Vector Regression es una variante &hellip; <\/p>\n","protected":false},"author":2,"featured_media":405,"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":[57,55,58,56,82,50,70,53,51,83],"class_list":["post-403","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmos","category-inteligencia-artificial","category-machine-learning","tag-ciencia-de-datos","tag-clasificacion","tag-data-mining","tag-data-science","tag-inteligencia-artificial","tag-machine-learning","tag-metodos-predictivos","tag-prediccion","tag-regresion","tag-support-vector-regression"],"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\/2018\/09\/destacada_SVR-300x165.jpg","featured_image_src":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/destacada_SVR.jpg","featured_image_src_square":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/destacada_SVR.jpg","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\">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\">m\u00e9todos predictivos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">predicci\u00f3n<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">regresi\u00f3n<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">support vector regression<\/a>"],"unlinked":["<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\">m\u00e9todos predictivos<\/span>","<span class=\"advgb-post-tax-term\">predicci\u00f3n<\/span>","<span class=\"advgb-post-tax-term\">regresi\u00f3n<\/span>","<span class=\"advgb-post-tax-term\">support vector regression<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Publicado 8 a\u00f1os hace","modified":"Actualizado 1 a\u00f1o hace"},"absolute_dates":{"created":"Publicado el octubre 7, 2018","modified":"Actualizado el febrero 20, 2025"},"absolute_dates_time":{"created":"Publicado el octubre 7, 2018 4:30 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\/403","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=403"}],"version-history":[{"count":16,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/403\/revisions"}],"predecessor-version":[{"id":1449,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/403\/revisions\/1449"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media\/405"}],"wp:attachment":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media?parent=403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/categories?post=403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/tags?post=403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}