PHP system resources & CSV Pair file for Machine learning nominadas en los premios de innovación en phpclasses.org
Phpclasses.org es uno de los principales repositorios mundialmente conocidos por los programadores PHP. Se trata de una biblioteca gigante donde poder descargar código que efectúa una tarea concreta y compartido gratuitamente y a nivel mundial gracias al esfuerzo de otros programadores (una clase puede crear un archivo pdf, otra generar y enviar un correo electrónico, etc....). Todos los programadores nos alimentamos de estos códigos publicados para crear nuestras propias aplicaciones.Devolviendo a la comunidad PHP su esfuerzo, compartí unas clases destinadas al aprendizaje profundo y este mes han estado nominadas dos de ellas a los premios de innovación . Es un muy buen reconocimiento al trabajo realizado y a mejorar el funcionamiento global de PHP con nuevas funcionalidades. Hay 15 clases en total que compiten mensualmente. Durante todo este mes estarán disponibles las votaciones aquí: https://www.phpclasses.org/vote.html. El mes siguiente se presentarán los resultados.
Ambas clases están desarrolladas en PHP puro. Las dos que han estado nominadas son:
SYSTEM RESOURCES
https://www.phpclasses.org/package/12157-PHP-Get-values-of-the-current-computer-devices.html
Esta clase se encarga capturar diferentes variables del sistema operativo y del hardware, como uso de la CPU, capacidad de la memoria, disco duro, sistema operativo, etc... La desarrollé porque para crear la nueva clase (y que aún no está publicada) de Machine Learning con Multihilos, necesitaba controlar la temperatura de la CPU/GPU periódicamente, ya que existe el riesgo de sobrecalentar los procesadores debido a la ingente cantidad de cálculos constantes que debe de realizar el sistema.
Aprovechando el desarrollo, incorporé ciertas características extras y útiles sobre el sistema antes de compartir la clase.
CSV PAIR FILE
https://www.phpclasses.org/package/12166-PHP-Manage-values-for-training-machine-learning-system.html
Esta clase se encarga de gestionar ficheros CSV en número par.
En Machine Learning necesitamos:
- Datos de entrenamiento junto con los datos de salida esperados.
- Datos de validación junto con los datos de salida esperados.
- Datos de Test junto con los datos de salida esperados.
Estos datos frecuentemente se sacan todos de un mismo dataset. Pongamos que el 80% irán destinados a entrenamiento, y del 20% restante, la mitad para Validación y el resto para Test.
El problema surge cuando tenemos que reordenar de forma aleatoriamente el dataset, ya que para que un modelo de red neuronal sea eficiente, los datos deberían de estar 'desordenados', para que no influyan unos con otros. Entonces tenemos, por una parte el fichero de entrada de datos, y otro fichero con las correspondientes salidas esperadas. Si desordenamos el fichero de datos de entrada, el fichero de datos de salida quedaría desligado, por lo que también hay que desordenar el fichero de los datos esperados, pero a la vez, siguiendo el nuevo lugar que le corresponda aleatoriamente al dato de entrada para que se correspondan los datos en la nueva fila aleatoria.... Un poco liado, no? 😅
Resumiendo. Esta clase se encarga de reordenar aleatoriamente ambos ficheros .CSV, manteniendo la correspondencia de registros entre ambos. Además, divide el dataset en diferentes partes porcentuales, para obtener los ficheros de validación y de test.
Comentarios