{"id":11507,"date":"2020-09-28T13:01:00","date_gmt":"2020-09-28T12:01:00","guid":{"rendered":"https:\/\/agiliacenter.com\/?p=11507"},"modified":"2025-05-28T12:12:01","modified_gmt":"2025-05-28T11:12:01","slug":"como-construir-un-proyecto-robusto-de-inteligencia-artificial","status":"publish","type":"post","link":"https:\/\/agiliacenter.com\/en\/como-construir-un-proyecto-robusto-de-inteligencia-artificial\/","title":{"rendered":"C\u00f3mo construir un proyecto robusto de inteligencia artificial"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"11507\" class=\"elementor elementor-11507\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5f4c2ccc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5f4c2ccc\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-459ceb74\" data-id=\"459ceb74\" data-element_type=\"column\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2f692996 elementor-widget elementor-widget-text-editor\" data-id=\"2f692996\" data-element_type=\"widget\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Como ya sab\u00e9is, Agilia est\u00e1 desarrollando un\u00a0<a href=\"https:\/\/www.agiliacenter.com\/carsharing-blockchain-reducir-contaminacion\/\">servicio de Car Sharing<\/a>\u00a0para mejorar la calidad de vida en las ciudades pero, adem\u00e1s, Agilia tiene experiencia en el desarrollo de proyectos de inteligencia artificial y ha aprovechado para construir un modelo que sea capaz de predecir donde usuarios y compa\u00f1\u00edas deben aparcar sus veh\u00edculos para obtenerles el mejor rendimiento. A continuaci\u00f3n, explicamos c\u00f3mo se ha realizado todo el proyecto de inteligencia artificial.<\/p>\n<p>Un proyecto de data science siempre debe constar, al menos, de siete pasos si quieres finalizarlo con \u00e9xito: marcar un objetivo, obtener los datos, prepararlos, visualizarlos, desarrollar el proyecto de machine\/deep learning, evaluarlo y, finalmente, iterar una y otra vez.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91ea55e elementor-widget elementor-widget-text-editor\" data-id=\"91ea55e\" data-element_type=\"widget\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 data-fontsize=\"18\" data-lineheight=\"27\">Estableciendo el objetivo de un proyecto de inteligencia artificial<\/h2>\n<p>El primer paso lo tenemos: en el negocio del car sharing, la administraci\u00f3n de la flota es uno de los pilares para obtener beneficios, por tanto, nosotros queremos saber d\u00f3nde aparcar nuestros coches para que sean alquilados lo antes posible. De esta manera, la pregunta que queremos responder es \u201c\u00bfD\u00f3nde se alquilan m\u00e1s coches?\u201d Ese es nuestro primer paso, nuestro objetivo.<\/p>\n<p>Despu\u00e9s, tenemos que obtener los datos. Nuestro proyecto de car sharing se encuentra en un entorno simulado ahora mismo, con datos simulados. Estos son lo m\u00e1s reales posibles pero, a\u00fan as\u00ed, no son v\u00e1lidos para hacer predicciones. Para resolver este problema, hemos buscado datos reales de grandes compa\u00f1ias del negocio de la movilidad como Uber o Cabify. En\u00a0<a href=\"https:\/\/www.kaggle.com\/\" target=\"_blank\" rel=\"noopener\">Kaggle<\/a>, encontramos datos de Uber del a\u00f1o 2014, tienen un tiempo, pero nos pueden valer. Sin embargo, nosotros querr\u00edamos a\u00f1adir datos de una ciudad Europea. Despu\u00e9s de mucho buscar, encontramos datos de recogidas de una compa\u00f1\u00eda de taxis en Porto. \u00a1Genial! nosotros conocemos Porto y, adem\u00e1s, uno de nuestros compa\u00f1eros en ARTICONF tiene su sede all\u00ed. Por fin, tenemos datos suficientes, un a\u00f1o y medio de datos reales para entrenar nuestros algoritmos.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7a800b02 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7a800b02\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3b961fa3\" data-id=\"3b961fa3\" data-element_type=\"column\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-17efad7d animation elementor-widget elementor-widget-image\" data-id=\"17efad7d\" data-element_type=\"widget\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1440\" height=\"960\" src=\"https:\/\/agiliacenter.com\/wp-content\/uploads\/2019\/04\/workflow-and-teamwork-concepts-with-colorful-PJF2EQR.jpg\" class=\"attachment-full size-full wp-image-6335\" alt=\"\" srcset=\"https:\/\/agiliacenter.com\/wp-content\/uploads\/2019\/04\/workflow-and-teamwork-concepts-with-colorful-PJF2EQR.jpg 1440w, https:\/\/agiliacenter.com\/wp-content\/uploads\/2019\/04\/workflow-and-teamwork-concepts-with-colorful-PJF2EQR-300x200.jpg 300w, https:\/\/agiliacenter.com\/wp-content\/uploads\/2019\/04\/workflow-and-teamwork-concepts-with-colorful-PJF2EQR-1024x683.jpg 1024w, https:\/\/agiliacenter.com\/wp-content\/uploads\/2019\/04\/workflow-and-teamwork-concepts-with-colorful-PJF2EQR-768x512.jpg 768w, https:\/\/agiliacenter.com\/wp-content\/uploads\/2019\/04\/workflow-and-teamwork-concepts-with-colorful-PJF2EQR-700x466.jpg 700w, https:\/\/agiliacenter.com\/wp-content\/uploads\/2019\/04\/workflow-and-teamwork-concepts-with-colorful-PJF2EQR-440x293.jpg 440w, https:\/\/agiliacenter.com\/wp-content\/uploads\/2019\/04\/workflow-and-teamwork-concepts-with-colorful-PJF2EQR-600x400.jpg 600w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5f6509aa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5f6509aa\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-40cff480\" data-id=\"40cff480\" data-element_type=\"column\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-649e27f2 elementor-widget elementor-widget-text-editor\" data-id=\"649e27f2\" data-element_type=\"widget\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 data-fontsize=\"18\" data-lineheight=\"27\">Luchando con los datos<\/h2>\n<p>Los siguientes dos pasos est\u00e1n muy unidos y saltaremos entre ellos durante su ejecuci\u00f3n. Primero, preparamos los datos. Hay dos features que son importantes para nosotros: tiempo y geolocalizaci\u00f3n. Pensamos que las recogidas de car sharing depender\u00e1n de la hora del d\u00eda y del d\u00eda de la semana. No es lo mismo un d\u00eda entresemana a las 5:00 p.m, cuando la gente sale de la oficina, que un S\u00e1bado, cuando se van al centro. Por tanto, tenemos que pelearnos un poco con los datos y Python para crear un nuevo set de datos con las propiedades modificadas. Al final, tenemos varias features para entrenar nuestros algoritmos: la semana del a\u00f1o, el d\u00eda de la semana, la hora y la latitud y la longitud donde el taxi recogi\u00f3 a los pasajeros.<\/p>\n<p>Durante todo este proceso, mostramos y estudiamos algunas gr\u00e1ficas que confirmaban nuestras sospechas: hay zonas con m\u00e1s actividad y horas con m\u00e1s movimientos.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1133741 elementor-widget elementor-widget-text-editor\" data-id=\"1133741\" data-element_type=\"widget\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 data-fontsize=\"18\" data-lineheight=\"27\">Desarrollando el algoritmo de machine\/deep learning<\/h2>\n<p>Finalmente, tenemos que entrenar nuestros algoritmos y evaluarlos. No entraremos en detalles porque este post ya es demasiado largo pero nos gustar\u00eda explicar que hemos desarrollado nuestro algoritmo de machine learning con Python, usando librer\u00edas como pandas o numpy para gestionar los datos, sklearn para usar algoritmos de machine learning y la librer\u00eda geohash para etiquetar las diferentes zonas.<\/p>\n<p>Adem\u00e1s, hemos entrenado y desplegado un algoritmo de deep learning usando las librer\u00edas de tensorflow y keras. Este algoritmo de deep learning tiene distintas capas en su red neuronal con diferentes funciones de activaci\u00f3n. Entrenando los dos algoritmos con el 80% de los datos (el 20% se reserva para los test), hemos obtenido resultas mejorables pero bastante buenos que hemos comprobado usando las m\u00e9tricas correspondientes: medias, coeficiente r2 cuadrado\u2026 Durante todo el proceso, hemos vuelto sobre los otros pasos, obteniendo, preparando, visualizando y a\u00f1adiendo m\u00e1s datos relevantes (como los datos del tiempo en Porto para las fechas seleccionadas) y hemos modificado y evaluado los algoritmos para afinarlos y mejorarlos.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-613e598c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"613e598c\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2ed769fb\" data-id=\"2ed769fb\" data-element_type=\"column\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-17a39733 elementor-widget elementor-widget-text-editor\" data-id=\"17a39733\" data-element_type=\"widget\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 data-fontsize=\"18\" data-lineheight=\"27\">Resumiendo<\/h2>\n<p>En conclusi\u00f3n, hacer un algoritmo de inteligencia artificial no es tarea f\u00e1cil. Necesitas sumergirte en conceptos complejos de deep learning, redes neuronales, machine learning\u2026 pero, lo que es m\u00e1s importante, necesitas obtener buenos datos, prepararlos, jugar con ello hasta tener un total entendimiento de los mismos y entonces, solo entonces, empezar a desarrollar el algoritmo para facilitar tus tareas o maximizar los beneficios de tu compa\u00f1\u00eda.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f9bd89b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f9bd89b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-326524b\" data-id=\"326524b\" data-element_type=\"column\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-69c0b34 elementor-widget elementor-widget-html\" data-id=\"69c0b34\" data-element_type=\"widget\" data-settings=\"{&quot;starto_ext_is_scrollme&quot;:&quot;false&quot;,&quot;starto_ext_is_smoove&quot;:&quot;false&quot;,&quot;starto_ext_is_parallax_mouse&quot;:&quot;false&quot;,&quot;starto_ext_is_infinite&quot;:&quot;false&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script id=\"mcjs\">!function(c,h,i,m,p){m=c.createElement(h),p=c.getElementsByTagName(h)[0],m.async=1,m.src=i,p.parentNode.insertBefore(m,p)}(document,\"script\",\"https:\/\/chimpstatic.com\/mcjs-connected\/js\/users\/75a6184da5d3774bd7ca93769\/b54d955464a1e456262be535e.js\");<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Como ya sab\u00e9is, Agilia est\u00e1 desarrollando un&nbsp;servicio de Car Sharing&nbsp;para mejorar la calidad de vida en las ciudades pero, adem\u00e1s, Agilia tiene experiencia en el desarrollo de proyectos de inteligencia artificial y ha aprovechado para construir un modelo que sea [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":11509,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-11507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/posts\/11507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/comments?post=11507"}],"version-history":[{"count":10,"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/posts\/11507\/revisions"}],"predecessor-version":[{"id":13369,"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/posts\/11507\/revisions\/13369"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/media\/11509"}],"wp:attachment":[{"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/media?parent=11507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/categories?post=11507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agiliacenter.com\/en\/wp-json\/wp\/v2\/tags?post=11507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}