Maschinelles Lernen mit PHP: Bibliotheken und Werkzeuge
Traditionell wird maschinelles Lernen (ML) mit Python, R oder Julia assoziiert. PHP, als eine der beliebtesten Sprachen für die Webentwicklung, verfügt jedoch ebenfalls über ein Ökosystem zur Implementierung von ML-Algorithmen. Obwohl PHP nicht über die gleiche Leistungsfähigkeit und Fülle an Low-Level-Bibliotheken (wie NumPy oder TensorFlow) verfügt, gibt es für viele praktische Aufgaben – Klassifikation, Regression, Clustering, Arbeit mit neuronalen Netzen – ausgereifte Lösungen. In diesem Artikel betrachten wir drei Hauptbibliotheken für maschinelles Lernen mit PHP: PHP-ML, Rubix ML und Keras-PHP.
1. PHP-ML (PHP Machine Learning)
PHP-ML ist die beliebteste und stabilste Bibliothek für maschinelles Lernen mit PHP. Sie benötigt keine externen Abhängigkeiten, ist vollständig in PHP geschrieben und bietet eine breite Palette von Algorithmen. Die Bibliothek eignet sich ideal zum Lernen, Prototyping und zur Integration von ML in Webanwendungen.
Hauptfunktionen:
- Klassifikation: Naive Bayes, SVM (basierend auf LibSVM), k-Nächste-Nachbarn (k-NN), Entscheidungsbäume.
- Regression: Lineare Regression, Support Vector Regression (SVR), k-NN Regression.
- Clustering: k-Means, DBSCAN, hierarchisches Clustering.
- Bewertungsmetriken: Genauigkeit, Vollständigkeit, F1-Maß, Konfusionsmatrix (confusion matrix).
- Datenvorverarbeitung: Normalisierung, Standardisierung, Kodierung kategorialer Merkmale.
Beispiel: Training eines Klassifikators zur Bestimmung der Textstimmung
use Phpml\\Classification\\NaiveBayes;use Phpml\\FeatureExtraction\\TfIdfTransformer;use Phpml\\Tokenization\\WhitespaceTokenizer;
// Trainingsdaten$samples = [ 'ausgezeichneter Film', 'schrecklicher Film', 'hat mir sehr gefallen', 'langweilig und dumm'];$labels = ['positive', 'negative', 'positive', 'negative'];
// Text in numerische Vektoren umwandeln$tokenizer = new WhitespaceTokenizer();$transformer = new TfIdfTransformer();
// Modell erstellen und trainieren$classifier = new NaiveBayes();$classifier->train($samples, $labels);
// Vorhersage$prediction = $classifier->predict(['interessante Handlung']);echo $prediction; // positive2. Rubix ML
Rubix ML ist eine modernere und fortschrittlichere Bibliothek, die auf hohe Leistung und Flexibilität ausgelegt ist. Sie unterstützt die Arbeit mit großen Datensätzen durch Generatoren (lazy loading), verfügt über ein integriertes Pipeline-System und eine Integration mit TensorFlow über NDArray. Im Gegensatz zu PHP-ML erfordert Rubix ML PHP 7.4+ und verwendet Erweiterungen wie intl und mbstring.
Schlüsselfunktionen:
- Neuronale Netze: Mehrschichtige Perzeptronen (MLP) mit Unterstützung verschiedener Aktivierungsfunktionen (ReLU, Sigmoid, Softmax).
- Pipelines: Zusammenfassen mehrerer Schritte (Normalisierung, Kodierung, Training) in einer einzigen Pipeline.
- Arbeit mit dünnbesetzten Daten: Effiziente Algorithmen für große Matrizen.
- Visualisierung: Integrierte Werkzeuge zur Erstellung von Diagrammen (über SVG).
- Speichern und Laden von Modellen: Serialisierung in JSON oder PHP-serialisiertes Format.
Beispiel: Regression zur Vorhersage von Immobilienpreisen
use Rubix\\ML\\Regressors\\Ridge;use Rubix\\ML\\Datasets\\Labeled;use Rubix\\ML\\Transformers\\NumericStringConverter;
// Daten laden (angenommen, CSV)$dataset = Labeled::fromIterator(new \\ArrayIterator([ ['area' => 120, 'rooms' => 3, 'price' => 150000], ['area' => 80, 'rooms' => 2, 'price' => 90000], ['area' => 200, 'rooms' => 4, 'price' =&g Auch in der Bibliothek
Logging für TypeScript: Die Bibliothek Winston
Arbeiten mit Excel in Go (Golang): Bibliotheken, Beispiele und Werkzeuge
Arbeit mit Apache Kafka in C++: Bibliotheken und Beispiele
Bull für JavaScript (Node.js): Komplettguide mit Beispielen
Laravel Telescope für PHP: Komplette Anleitung mit Beispielen