Entradas

Mostrando las entradas etiquetadas como datasets

Manejo de ficheros .CSV en paralelo. Datasets Machine Learning

Imagen
  Gestión de ficheros .CSV en paralelo para procesos de machine learning Cuando leemos datos de ficheros .CSV que van a ir a parar a modelos de Machine Learning, debemos de tener nuestro dataset bien preparado: - Disponer de un dataset para Train (aprendizaje) - Disponer de un dataset validación - Disponer de un dataset para test. Hay muchas veces que disponemos de dos datasets, uno para realizar os inputs y otro para los resutados 'desired', que són los datos deseados. Una de las tareas que debemos hacer es separar estos datasets en as partes anteriormente nombradas (train, validation & test). He reaizado una clase en PHP lamada CSV PAIR FILE. La podéis descargar desde  https://www.phpclasses.org/package/12166-PHP-Manage-values-for-training-machine-learning-system.html o desde  https://github.com/vivesweb/csv_pair_file Esta clase se encarga de realizar estas separaciones de datos automáticamente en los ficheros a modo paralelo, para que concuerden ordenadamente los ...

Visualización de datos en gráficos de barra. Entorno CLI-PHP. Encuentra Outliers

Imagen
  Visualización de datos en gráficos de barra para ayudar en la búsqueda de Outliers La limpieza de los datasets en los procesos anteriores al Deep Learning son esenciales. Encontrar los Outliers (o datos que están fuera de lo común), es primordial para rectificarlos y conseguir unos datos homogéneos. Si no los detectamos o no los regularizamos, nuestras redes neuronales tendrán serios problemas para aprender correctamente, ya que un solo dato de estos puede hacer 'volverse loco' a nuestro modelo y no servir de nada. Ya os comenté en un artículo anterior la importancia que tenía este paso, y es necesario de disponer las herramientas adecuadas. Existen algunas que son de pago y privativas. Yo me he decantado por creármela por mi mismo y liberar el código fuente para que alguien más la pueda aprovechar. Se puede utilizar PHP para realizar Machine Learning . En PHP, cuando se realizan las tareas de búsqueda de errores en nuestros datasets, debemos emplear la Ingeniería de datos ...

Extraer propiedades de los datos .csv para saber cada dato si es string, entero, vacío, numérico, fecha, ip, ....

Imagen
Clase en php para limpiar los valores y extraer sus propiedades dentro de un .csv (tipo string, entero, decimal, vacío, fecha, .....) Hoy os traigo una clase en php que he realizado para extraer las propiedades de los datos de un fichero .csv. Esta clase es útil para el proceso de limpieza de datasets antes de utilizar las redes neuronales en machine learning. La clase se llama row-math-ml-csv y se puede descargar desde github.com o desde phpclasses.org . Con ella podemos extrar las siguientes características de cualquier valor de una fila de nuestro dataset: 'empty': El campo está vacío. No tiene ningún valor o bien contiene '-' 'empty_null': El campo contiene un valor NULL 'empty_nan': El campo contiene un valor numérico no válido NA ó NAN 'empty_anyway': Nos sirve para saber si está vació de cualquier manera anterior. Estos campos nos sirven para estar alerta si nuestro dataset contiene datos vacíos o nulos y poder actuar en ellos. 'strin...

Visualización en tabla para detectar datos incorrectos y limpiar los datasets antes de realizar el Deep Learning (aprendizaje profundo) en PHP

Imagen
  Clase en PHP para visualizar la estructura de datos, preparar y limpiar el dataset antes del Deep Learning Los datos que facilitamos a nuestros modelos de redes neuronales deben de estar impecables, tal y como explicaba en el artículo de Ingeniería de datos para el Machine Learning . No vale con que le demos los datos a nuestro modelo de red neuronal tal cual lo importamos. Nos podemos encontrar con: - Campos vacíos: '' ó '-' - Campos Nulos: null - Campos numéricos erróneos: 'na' ó 'nan' - Valores numéricos 0. Puede ser que falten datos o que realmente sean correctos - Fechas que podemos separar en sub features - Otros campos que podemos separar en sub features, como por ejemplo una IP o códigos de paises 'es', 'de', 'fr',…. - Campos en texto donde el sistema no podrá aprender nada y deberemos eliminarlos o cambiarlos. En definitiva, todo se reduce en tener bajo nuestro control todos los datos, que no se nos escape un dato incoh...

Ingeniería de datos. Como saber qué características o features dar como Inputs a nuestras redes neuronales

Imagen
Una característica es una propiedad que se puede medir de un fenómeno (según la wikipedia ). Partiendo de esta definición totalmente acertada, os enseñaré cómo debemos preparar nuestros datos para crear un buen dataset, antes de empezar a trabajar con los modelos de redes neuronales para no tener datos inútiles, que el sistema no pueda manejar o que entorpezcan lo que tendría que ser un entrenamiento fluido y natural de nuestra red neuronal optimizado al máximo. Quizás lo primero que se nos pasa por la cabeza es..... tengo un listado de artículos con precios, características, etc..... con muuuuuuuchos datos. Mientras más datos le de a la red neuronal mejor, no? así que le paso todos mis datos tal cual a mi red neuronal y que se espabile, a ver qué soluciones me da. Se trata de inteligencia artificial y para esto está, porque es inteligente y ya sabrá qué hacer con todos estos datos. No era tan difícil no? Que bueno soy y qué culito tengo!!!!. ERROR!!!!! Si creías que todo iba a ser un ...

¿Se puede utilizar Machine Learning en PHP?

Imagen
  Vamos al grano, a lo que interesa. La pregunta del millón.  ¿Se puede utilizar Machine Learning en PHP?  y la respuesta tan esperada por los que lo preguntan.... pues es un....  SÍ !!!!! y ya que estamos...   ¿Se puede utilizar Machine Learning en PHP en multiprocesadores con multihilo?  pues....  SÍ , también!!!!! y si no fuese mucho pedir...   ¿Se puede utilizar Machine Learning en PHP en multiprocesadores con multihilo en una Raspberry pi?  pues....  SÍ , también se puede. Qué subidón!!! vamos a intentar rizar el rizo, a ver que me respondes ahora .   ¿Se puede utilizar Machine Learning en PHP en multiprocesadores con multihilo en una Raspberry pi 2 B con 512Mb de ram, 1 solo procesador a 700Mhz y 1.000 threads a la vez?  pues claro que  SÍ (o incluso más Threads 😱), pero nos hemos pasado tres pueblos (tres pueblos por no decir más). ¿Para que quieres tener tantos hilos en un solo procesador...