Apprentissage automatique en PHP : aperçu des bibliothèques et outils

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Apprentissage automatique en PHP : bibliothèques et outils



Traditionnellement, l'apprentissage automatique (ML) est associé à Python, R ou Julia. Cependant, PHP, étant l'un des langages les plus populaires pour le développement web, possède également un écosystème pour implémenter des algorithmes de ML. Bien que PHP n'offre pas les mêmes performances et la même abondance de bibliothèques de bas niveau (comme NumPy ou TensorFlow), il existe des solutions matures pour de nombreuses tâches pratiques — classification, régression, clustering, travail avec les réseaux de neurones. Dans cet article, nous examinerons trois bibliothèques principales pour l'apprentissage automatique en PHP : PHP-ML, Rubix ML et Keras-PHP.



1. PHP-ML (PHP Machine Learning)



PHP-ML est la bibliothèque la plus populaire et la plus stable pour l'apprentissage automatique en PHP. Elle ne nécessite aucune dépendance externe, est entièrement écrite en PHP et offre un large éventail d'algorithmes. Cette bibliothèque est idéale pour l'apprentissage, le prototypage et l'intégration du ML dans les applications web.



Fonctionnalités principales :

  • Classification : Naïve Bayes, SVM (basé sur LibSVM), k-plus proches voisins (k-NN), arbres de décision.
  • Régression : Régression linéaire, régression à vecteurs de support (SVR), régression k-NN.
  • Clustering : k-moyennes (k-Means), DBSCAN, clustering hiérarchique.
  • Métriques d'évaluation : Précision, rappel, score F1, matrice de confusion.
  • Prétraitement des données : Normalisation, standardisation, encodage des caractéristiques catégorielles.


Exemple : entraînement d'un classifieur pour déterminer la tonalité d'un texte

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

// Données d'entraînement$samples = [ 'excellent film', 'film horrible', 'beaucoup aimé', 'ennuyeux et stupide'];$labels = ['positif', 'négatif', 'positif', 'négatif'];

// Transformation du texte en vecteurs numériques$tokenizer = new WhitespaceTokenizer();$transformer = new TfIdfTransformer();

// Création et entraînement du modèle$classifier = new NaiveBayes();$classifier->train($samples, $labels);

// Prédiction$prediction = $classifier->predict(['intrigue intéressante']);echo $prediction; // positif


2. Rubix ML



Rubix ML est une bibliothèque plus moderne et avancée, axée sur des performances élevées et une grande flexibilité. Elle prend en charge le travail avec de grands ensembles de données via des générateurs (lazy loading), dispose d'un système de pipelines intégré et d'une intégration avec TensorFlow via NDArray. Contrairement à PHP-ML, Rubix ML nécessite PHP 7.4+ et utilise des extensions comme intl et mbstring.



Caractéristiques clés :

  • Réseaux de neurones : Perceptrons multicouches (MLP) avec prise en charge de diverses fonctions d'activation (ReLU, Sigmoid, Softmax).
  • Pipelines : Combinaison de plusieurs étapes (normalisation, encodage, entraînement) en un seul pipeline.
  • Travail avec des données creuses : Algorithmes efficaces pour les grandes matrices.
  • Visualisation : Outils intégrés pour créer des graphiques (via SVG).
  • Sauvegarde et chargement de modèles : Sérialisation au format JSON ou sérialisé PHP.


Exemple : régression pour prédire le prix d'un logement

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

// Chargement des données (supposons un 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