Aprendizaje automático en PHP: revisión de bibliotecas para implementar algoritmos de ML
Aunque Python es tradicionalmente considerado el lenguaje principal para el aprendizaje automático, PHP también cuenta con varias bibliotecas potentes que permiten integrar modelos de ML directamente en aplicaciones web. En este artículo, revisaremos las principales herramientas para el aprendizaje automático en PHP, sus funcionalidades y ejemplos de uso.
¿Por qué PHP para el aprendizaje automático?
PHP sigue siendo uno de los lenguajes más populares para el desarrollo web. El uso de bibliotecas de ML en PHP permite:
- Integrar modelos directamente en proyectos Laravel/Symfony existentes
- Evitar cambiar de lenguaje dentro de un mismo proyecto
- Utilizar el ecosistema familiar de Composer y la autocarga
- Desplegar prototipos rápidamente en hosting económico
1. PHP-ML — el estándar del aprendizaje automático en PHP
PHP-ML (Machine Learning library for PHP) es la biblioteca más popular para ML en PHP. Ofrece una amplia gama de algoritmos sin dependencias externas.
Instalación
composer require php-ai/php-mlEjemplo: clasificación de textos
<?phprequire_once __DIR__ . '/vendor/autoload.php';
use Phpml\\Classification\\KNearestNeighbors;use Phpml\\FeatureExtraction\\TfIdfTransformer;use Phpml\\Tokenization\\WhitespaceTokenizer;use Phpml\\FeatureExtraction\\TokenCountVectorizer;
// Datos de entrenamiento$samples = [ 'excelente producto entrega rápida', 'calidad horrible defectuoso', 'recomiendo a todos mis amigos', 'no funciona se rompió al día'];$labels = ['positive', 'negative', 'positive', 'negative'];
// Transformación de texto a vectores$vectorizer = new TokenCountVectorizer(new WhitespaceTokenizer());$vectorizer->fit($samples);$vectorizer->transform($samples);
$transformer = new TfIdfTransformer();$transformer->fit($samples);$transformer->transform($samples);
// Entrenamiento del modelo$classifier = new KNearestNeighbors();$classifier->train($samples, $labels);
// Predicción$testSample = ['producto excelente calidad'];$vectorizer->transform($testSample);$transformer->transform($testSample);
$predicted = $classifier->predict($testSample[0]);echo \"Tonalidad: $predicted\"; // positive?>Funcionalidades de PHP-ML
- Clasificación: KNearestNeighbors, NaiveBayes, SVC, DecisionTree
- Regresión: LeastSquares, Ridge, LogisticRegression
- Agrupamiento: KMeans, DBSCAN, FuzzyCMeans
- Procesamiento de texto: TF-IDF, stemming, tokenización
- Métricas: accuracy, precision, recall, confusion matrix
2. Rubix ML — framework moderno para aprendizaje automático
Rubix ML es una biblioteca más nueva y de alto rendimiento con soporte para redes neuronales, aceleración por GPU y pipelines de procesamiento de datos.
Instalación
composer require rubix/mlEjemplo: red neuronal para clasificación
<?phprequire_once __DIR__ . '/vendor/autoload.php';
use Rubix\\ML\\Datasets\\Labeled;use Rubix\\ML\\NeuralNet\\Layers\\Dense;use Rubix\\ML\\NeuralNet\\Layers\\Activation;use Rubix\\ML\\NeuralNet\\ActivationFunctions\\ReLU;use Rubix\\ML\\NeuralNet\\ActivationFunctions\\Softmax;use Rubix\\ML\\NeuralNet\\Optimizers\\Adam;use Rubix\\ML\\Classifiers\\MultilayerPerceptron;use Rubix\\ML\\CrossValidation\\Reports\\MulticlassBreakdown;
// Creación del dataset$samples = [[2.5, 1.2], [1.0, 0.8], [3.5, 4.2], [2.0, 0.5]];$labels = ['cat', 'dog', 'cat', 'dog'];$dataset = new Labeled($samples, $labels);
// Creación de MLP (perceptrón multicapa)$mlp = new MultilayerPerceptron([ new Dense(10), new Activation(new ReLU()), new Dense(5), new Activa También en la biblioteca
Criptografía en Swift: cifrado y hash para iOS/macOS
Rate Limiting en JavaScript (Node.js): Guía completa de la biblioteca express-rate-limit
Passport.js para JavaScript (Node.js): guía completa con ejemplos
Limitación de Tasa en C++: bibliotecas e implementación para proteger API