Aprendizaje automático en PHP: revisión de bibliotecas para integración de ML

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: ¿realidad o compromiso?



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 de bibliotecas para ML. Usar PHP para aprendizaje automático es un compromiso: se pierde en rendimiento y cantidad de modelos listos en comparación con Python, pero se obtiene una integración perfecta con aplicaciones web, un stack tecnológico unificado y la capacidad de implementar rápidamente algoritmos ML simples sin ejecutar microservicios.



En este artículo, analizaremos las principales bibliotecas para aprendizaje automático en PHP, sus capacidades y ejemplos de uso.



1. PHP-ML (PHP Machine Learning)



PHP-ML es la biblioteca más popular para ML en PHP. No requiere dependencias externas y está escrita completamente en PHP. Implementa algoritmos clásicos: clasificación, regresión, agrupamiento, reducción de dimensionalidad y métricas de evaluación.



Capacidades:

  • Clasificación: Naive Bayes, SVM, k-Nearest Neighbors, Decision Tree
  • Regresión: Linear Regression, SVR
  • Agrupamiento: k-Means, DBSCAN
  • Preprocesamiento de datos: normalización, estandarización
  • Métricas: accuracy, precision, recall, F1-score


Ejemplo: Clasificación de los iris de Fisher

require_once __DIR__ . '/vendor/autoload.php';

use Phpml\\Classification\\KNearestNeighbors;use Phpml\\Dataset\\Demo\\IrisDataset;

$dataset = new IrisDataset();$samples = $dataset->getSamples();$labels = $dataset->getTargets();

$classifier = new KNearestNeighbors(3);$classifier->train($samples, $labels);

// Predicción para una nueva instancia (largo del sépalo, ancho del sépalo, largo del pétalo, ancho del pétalo)$newSample = [5.1, 3.5, 1.4, 0.2];$predicted = $classifier->predict($newSample);

echo "Clase predicha: " . $predicted; // 'Iris-setosa'


2. Rubix ML



Rubix ML es una biblioteca más moderna y potente. A diferencia de PHP-ML, soporta redes neuronales, gradient boosting, métodos de conjunto y trabajo con grandes conjuntos de datos a través de generadores (lazy evaluation).



Características:

  • Redes neuronales (Multilayer Perceptron, CNN mediante conversión)
  • Conjuntos: Random Forest, Gradient Boosted Trees
  • Pipelines de procesamiento de datos
  • Soporte para características categóricas y One-Hot Encoding
  • Exportación de modelos en formato serializado de PHP


Ejemplo: Regresión lineal con pipeline

require_once __DIR__ . '/vendor/autoload.php';

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

// Crear conjunto de datos$samples = [[1], [2], [3], [4], [5]];$labels = [1.5, 2.8, 4.1, 5.9, 7.2];

$dataset = new Labeled($samples, $labels);

// Crear pipeline$estimator = new Pipeline([ new NumericStringConverter(), new MinMaxNormalizer(),], new Ridge(1.0));

$estimator->train($dataset);

// Predicción$prediction = $estimator->predict([[6]]);echo "Valor predicho: " . $prediction[0]; // ~8.3


3. Keras PHP (TensorFlow PHP Binding)



Para trabajar con redes neuronales profundas en PHP se puede usar Keras PHP, un envoltorio sobre la biblioteca Python Keras/TensorFlow. Es esencialmente un puente que ejecuta scripts de Python desde PHP. No es una solución pura de PHP, pero permite usar toda la potencia de TensorFlow.



Ejemplo: Cargar un modelo preentrenado

use KerasPHP\\Keras;

$keras = new Keras();

// Cargar modelo desde archivo .h5$model = $keras->load_model('/path/to/model.h5');

// Preparar datos (array)$input = [[0.5, 0.2, 0.1]];

// Predicción$result =

Recommendations