PHP-libplot: Matplotlib-PyPlot & Numpy en puro PHP

 

Matplotlib pyplot en php

PHP-libplot: Matplotlib-PyPlot & Numpy en PHP

Librería en PHP al estilo de Matplotlib, pyplot & numpy.

PHP-libplot v.1.0.0 es una librería escrita en puro PHP que emula el funcionamiento de Matplotlib escrita en Python, consiguiendo un resultado muy parecido, de hecho casi indetectable, al original de Pyplot y añadiendo funciones matemáticas de Numpy, muy utilizadas en Machine Learning, como linspace o arraypow, pero como digo, utilizando únicamente código PHP, sin necesidad de tener Python instalado en el sistema ya que esta librería es nativa y no utiliza absolutamente nada de código python.

La librería para generar gráficas de barras, gráficas de líneas, hacer scatters u obtener pairplot es muy utilizada para ver los datos de los datasets en los modelos de Machine Learning, antes de realizar el aprendizaje profundo, ya que hay que modificar los datos antes de empezar el deep learning.
 
El objetivo de haber escrito esta librería en puro PHP en lugar de utilizar la que ya hay disponible en Python es la imposibilidad de utilizar este último lenguaje de programación en servidores compartidos web, ya que están muy capados por seguridad. Poder utilizar estas gráficas era condición indispensable para generar gráficas en php para algunos proyectos de inteligencia artificial. Pyplot era perfecto, pero imposible de utilizar en mi caso, así que decidí crear una clase que me ofreciera la misma calidad y respetara en todo o posible la línea de esas gráficas para PHP.
 
Es imposible incluir todas las características de la fantástica Matplotlib por falta de tiempo, así que de momento he creado las características que necesito en este momento, aunque no descarto poco a poco ir ampliando nuevas características a la clase.

Os habéis preguntado cómo se ven los datos del IBEX35? Pues en el ejemplo superior tenéis el resultado. Es un ejemplo real de los datos del IBEX35 hasta hoy.

En esta gráfica de muestra, si os fijáis bien, existen datos que salen del grupo, otros que están a 0, .... Estos datos se llaman outliers y hay que controlarlos. Gracias a este tipo de herramientas podemos detectar estos datos que nos harían destrozar nuestro aprendizaje en la red neuronal y haría que no aprendiera debidamente.

Con estas gráficas también detectaremos datos que no están correctamente estructurados. Si nos fijamos en la última gráfica inferior derecha, veremos que la barra más alta es la primera, y si nos fijamos en las gráficas directamente superiores, detectamos que se refiere a que la mayoría de datos ocupan los valores 0. Esto hay que controlarlo para eliminar los datos o bien transormarlos en características booleanas que se puedan activar o desactivar en caso de que el valor sea 0, ya que estorban en el trabjo de nuestro modelo de dataset y repartir así el peso de los datos por todo el dataset completo.

Hace unos días publiqué la base de esta clase que realizaba las gráficas de barras y de líneas en php. Es la clase madre de la php-libplot que acabo de lanzar y las dos están ligadas y son como aquel que dice, inseparables. Se pueden obtener resultados tan  fantásticos y casi imposible de diferenciar de los obtenidos por Pyplot, como estos:

Matplotlib pyplot en php



Matplotlib pyplot en php



La clase la podéis descargar desde:

Comentarios

Artículos más populares

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

Clase en PHP para encender/apagar LED en Raspberry pi

¿Se puede utilizar Machine Learning en PHP?