Aprendizaje automático en PHP: revisión de bibliotecas y herramientas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Aprendizaje automático en PHP: bibliotecas y herramientas



Tradicionalmente, el aprendizaje automático (ML) se asocia con Python, R o Julia. Sin embargo, PHP, siendo uno de los lenguajes más populares para el desarrollo web, también tiene un ecosistema para implementar algoritmos de ML. Aunque PHP no posee el mismo rendimiento y abundancia de bibliotecas de bajo nivel (como NumPy o TensorFlow), para muchas tareas prácticas — clasificación, regresión, agrupamiento, trabajo con redes neuronales — existen soluciones maduras. En este artículo, revisaremos tres bibliotecas principales para aprendizaje automático en PHP: PHP-ML, Rubix ML y Keras-PHP.



1. PHP-ML (PHP Machine Learning)



PHP-ML es la biblioteca más popular y estable para aprendizaje automático en PHP. No requiere dependencias externas, está escrita completamente en PHP y ofrece una amplia gama de algoritmos. La biblioteca es ideal para aprendizaje, prototipado e integración de ML en aplicaciones web.



Capacidades principales:

  • Clasificación: Naive Bayes, SVM (basado en LibSVM), k-vecinos más cercanos (k-NN), árboles de decisión.
  • Regresión: Regresión lineal, regresión con vectores de soporte (SVR), regresión k-NN.
  • Agrupamiento: k-medias (k-Means), DBSCAN, agrupamiento jerárquico.
  • Métricas de evaluación: Precisión, exhaustividad, medida F1, matriz de confusión.
  • Preprocesamiento de datos: Normalización, estandarización, codificación de características categóricas.


Ejemplo: entrenamiento de un clasificador para determinar la polaridad del texto

use Phpml\\Classification\\NaiveBayes;use Phpml\\FeatureExtraction\\TfIdfTransformer;use Phpml\\Tokenization\\WhitespaceTokenizer;

// Datos de entrenamiento$samples = [ 'excelente película', 'película horrible', 'me gustó mucho', 'aburrido y tonto'];$labels = ['positive', 'negative', 'positive', 'negative'];

// Transformación del texto a vectores numéricos$tokenizer = new WhitespaceTokenizer();$transformer = new TfIdfTransformer();

// Creamos y entrenamos el modelo$classifier = new NaiveBayes();$classifier->train($samples, $labels);

// Predicción$prediction = $classifier->predict(['trama interesante']);echo $prediction; // positive


2. Rubix ML



Rubix ML es una biblioteca más moderna y avanzada, orientada a alto rendimiento y flexibilidad. Soporta trabajo con grandes conjuntos de datos a través de generadores (lazy loading), tiene un sistema de pipelines integrado e integración con TensorFlow a través de NDArray. A diferencia de PHP-ML, Rubix ML requiere PHP 7.4+ y utiliza extensiones como intl y mbstring.



Características clave:

  • Redes neuronales: Perceptrones multicapa (MLP) con soporte para varias funciones de activación (ReLU, Sigmoid, Softmax).
  • Pipelines: Combinación de varios pasos (normalización, codificación, entrenamiento) en un solo flujo.
  • Trabajo con datos dispersos: Algoritmos eficientes para matrices grandes.
  • Visualización: Herramientas integradas para generar gráficos (a través de SVG).
  • Guardado y carga de modelos: Serialización en formato JSON o serializado de PHP.


Ejemplo: regresión para predecir el precio de la vivienda

use Rubix\\ML\\Regressors\\Ridge;use Rubix\\ML\\Datasets\\Labeled;use Rubix\\ML\\Transformers\\NumericStringConverter;

// Cargamos datos (supongamos CSV)$dataset = Labeled::fromIterator(new \\ArrayIterator([ ['area' => 120, 'rooms' => 3, 'price' => 150000], ['area' => 80, 'rooms' => 2, 'price' => 90000], ['area' => 200, 'rooms' => 4, 'price' =&g

Recommendations