Apprentissage automatique en PHP : aperçu des bibliothèques pour implémenter des algorithmes de ML
Bien que Python soit traditionnellement considéré comme le langage principal pour l'apprentissage automatique, PHP dispose également de plusieurs bibliothèques puissantes permettant d'intégrer des modèles de ML directement dans des applications web. Dans cet article, nous examinerons les principaux outils d'apprentissage automatique en PHP, leurs fonctionnalités et des exemples d'utilisation.
Pourquoi PHP pour l'apprentissage automatique ?
PHP reste l'un des langages les plus populaires pour le développement web. L'utilisation de bibliothèques de ML en PHP permet de :
- Intégrer des modèles directement dans des projets Laravel/Symfony existants
- Éviter de changer de langage au sein d'un même projet
- Utiliser l'écosystème familier de Composer et l'autoloading
- Déployer rapidement des prototypes sur un hébergement bon marché
1. PHP-ML — le standard de l'apprentissage automatique en PHP
PHP-ML (Machine Learning library for PHP) est la bibliothèque la plus populaire pour le ML en PHP. Elle propose un large éventail d'algorithmes sans dépendances externes.
Installation
composer require php-ai/php-mlExemple : classification de textes
<?phprequire_once __DIR__ . '/vendor/autoload.php';
use Phpml\\Classification\\KNearestNeighbors;use Phpml\\FeatureExtraction\\TfIdfTransformer;use Phpml\\Tokenization\\WhitespaceTokenizer;use Phpml\\FeatureExtraction\\TokenCountVectorizer;
// Données d'entraînement$samples = [ 'excellent produit livraison rapide', 'qualité horrible défaut', 'je recommande à tous mes amis', 'ne fonctionne pas cassé après un jour'];$labels = ['positif', 'négatif', 'positif', 'négatif'];
// Transformation du texte en vecteurs$vectorizer = new TokenCountVectorizer(new WhitespaceTokenizer());$vectorizer->fit($samples);$vectorizer->transform($samples);
$transformer = new TfIdfTransformer();$transformer->fit($samples);$transformer->transform($samples);
// Entraînement du modèle$classifier = new KNearestNeighbors();$classifier->train($samples, $labels);
// Prédiction$testSample = ['produit merveilleux qualité'];$vectorizer->transform($testSample);$transformer->transform($testSample);
$predicted = $classifier->predict($testSample[0]);echo "Sentiment : $predicted"; // positif?>Fonctionnalités de PHP-ML
- Classification : KNearestNeighbors, NaiveBayes, SVC, DecisionTree
- Régression : LeastSquares, Ridge, LogisticRegression
- Clustering : KMeans, DBSCAN, FuzzyCMeans
- Traitement de texte : TF-IDF, stemming, tokenisation
- Métriques : accuracy, precision, recall, matrice de confusion
2. Rubix ML — un framework moderne pour l'apprentissage automatique
Rubix ML est une bibliothèque plus récente et plus performante avec le support des réseaux de neurones, de l'accélération GPU et des pipelines de traitement de données.
Installation
composer require rubix/mlExemple : réseau de neurones pour la classification
<?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;
// Création du dataset$samples = [[2.5, 1.2], [1.0, 0.8], [3.5, 4.2], [2.0, 0.5]];$labels = ['chat', 'chien', 'chat', 'chien'];$dataset = new Labeled($samples, $labels);
// Création du MLP (perceptron multicouche)$mlp = new MultilayerPerceptron([ new Dense(10), new Activation(new ReLU()), new Dense(5), new Activa Aussi dans la bibliothèque
Mise en cache en Swift (iOS/macOS) : Redis, NSCache et autres solutions
Analyse HTML en C++ : aperçu des bibliothèques et exemples de code
Génération Swagger/OpenAPI pour Go (Golang) : guide complet
Apprentissage automatique en C# : bibliothèques ML.NET et Accord.NET