Apprentissage automatique en PHP : aperçu des bibliothèques pour l'intégration du ML

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 : réalité ou compromis ?



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 de bibliothèques pour le ML. Utiliser PHP pour l'apprentissage automatique est un compromis : vous perdez en performance et en nombre de modèles prêts à l'emploi par rapport à Python, mais vous gagnez une intégration transparente avec les applications web, une pile technologique unifiée et la possibilité de déployer rapidement des algorithmes de ML simples sans lancer de microservices.



Dans cet article, nous allons passer en revue les principales bibliothèques pour l'apprentissage automatique en PHP, leurs capacités et des exemples d'utilisation.



1. PHP-ML (PHP Machine Learning)



PHP-ML est la bibliothèque la plus populaire pour le ML en PHP. Elle ne nécessite aucune dépendance externe et est entièrement écrite en PHP. Elle implémente des algorithmes classiques : classification, régression, clustering, réduction de dimensionnalité et métriques d'évaluation.



Fonctionnalités :

  • Classification : Naive Bayes, SVM, k-Nearest Neighbors, Decision Tree
  • Régression : Linear Regression, SVR
  • Clustering : k-Means, DBSCAN
  • Prétraitement des données : normalisation, standardisation
  • Métriques : accuracy, precision, recall, F1-score


Exemple : Classification des 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);

// Prédiction pour un nouvel échantillon (longueur du sépale, largeur du sépale, longueur du pétale, largeur du pétale)$newSample = [5.1, 3.5, 1.4, 0.2];$predicted = $classifier->predict($newSample);

echo "Classe prédite : " . $predicted; // 'Iris-setosa'


2. Rubix ML



Rubix ML est une bibliothèque plus moderne et plus puissante. Contrairement à PHP-ML, elle prend en charge les réseaux de neurones, le gradient boosting, les méthodes d'ensemble et le travail avec de grands ensembles de données via des générateurs (lazy evaluation).



Caractéristiques :

  • Réseaux de neurones (Multilayer Perceptron, CNN via conversion)
  • Ensembles : Random Forest, Gradient Boosted Trees
  • Pipelines de traitement de données (pipelines)
  • Prise en charge des caractéristiques catégorielles et du One-Hot Encoding
  • Exportation des modèles au format sérialisé PHP


Exemple : Régression linéaire avec 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;

// Création de l'ensemble de données$samples = [[1], [2], [3], [4], [5]];$labels = [1.5, 2.8, 4.1, 5.9, 7.2];

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

// Création du pipeline$estimator = new Pipeline([ new NumericStringConverter(), new MinMaxNormalizer(),], new Ridge(1.0));

$estimator->train($dataset);

// Prédiction$prediction = $estimator->predict([[6]]);echo "Valeur prédite : " . $prediction[0]; // ~8.3


3. Keras PHP (TensorFlow PHP Binding)



Pour travailler avec des réseaux de neurones profonds en PHP, vous pouvez utiliser Keras PHP — une surcouche de la bibliothèque Python Keras/TensorFlow. Il s'agit en fait d'un pont qui exécute des scripts Python depuis PHP. Ce n'est pas une solution PHP pure, mais elle permet d'utiliser toute la puissance de TensorFlow.



Exemple : Chargement d'un modèle pré-entraîné

use KerasPHP\\Keras;

$keras = new Keras();

// Chargement du modèle à partir du fichier .h5$model = $keras->load_model('/path/to/model.h5');

// Préparation des données (tableau)$input = [[0.5, 0.2, 0.1]];

// Prédiction$result =

Recommendations