PHP für maschinelles Lernen: Möglichkeiten und Grenzen für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

PHP für maschinelles Lernen: Mythos oder Realität?



Die Welt des maschinellen Lernens (ML) wird stark mit Python, R und Julia assoziiert. Entwickler, die mit PHP arbeiten – einer der beliebtesten Sprachen für die Webentwicklung – fragen sich jedoch oft: „Kann man PHP für ML verwenden?“. Die Antwort: Ja, das ist möglich, jedoch mit einigen Einschränkungen. In diesem Artikel werden wir untersuchen, welche Bibliotheken es gibt, wie man ein einfaches ML-Modell in PHP schreibt und in welchen Fällen dies wirklich sinnvoll ist.



Der Artikel richtet sich an Anfänger, die bereits mit den Grundlagen von PHP vertraut sind und ihre Fähigkeiten im maschinellen Lernen ausprobieren möchten, ohne auf einen anderen Technologie-Stack umzusteigen.



Wichtige PHP-Bibliotheken für maschinelles Lernen



Das PHP-Ökosystem für ML ist nicht so umfangreich wie das von Python, aber es gibt dennoch einige ausgereifte Bibliotheken. Schauen wir uns die beliebtesten an.



PHP-ML (PHP Machine Learning)



PHP-ML ist die beliebteste und aktiv gepflegte Bibliothek. Sie bietet eine breite Palette an Algorithmen: Klassifikation, Regression, Clustering, Datenvorverarbeitung und sogar neuronale Netze.



Beispiel für die Installation via Composer:



composer require php-ai/php-ml


Beispiel für eine einfache Klassifikation mit der Support Vector Machine (SVM):



<?phprequire_once __DIR__ . '/vendor/autoload.php';

use Phpml\\Classification\\SVC;use Phpml\\SupportVectorMachine\\Kernel;

// Trainingsdaten: [Gewicht, Farbe] 0 - grün, 1 - rot$samples = [[150, 0], [170, 0], [130, 1], [180, 1]];$labels = ['Apfel', 'Apfel', 'Tomate', 'Tomate'];

$classifier = new SVC(Kernel::LINEAR, $cost = 1000);$classifier->train($samples, $labels);

// Vorhersageecho $classifier->predict([160, 0]); // Apfelecho $classifier->predict([140, 1]); // Tomate?>


TensorFlow PHP



Es gibt eine offizielle Bindung an TensorFlow – TensorFlow PHP. Sie ermöglicht das Laden von vortrainierten Modellen und die Durchführung von Inferenz (Vorhersagen). Zum Trainieren von Modellen von Grund auf ist sie jedoch nicht geeignet – dies geschieht in Python, während PHP nur für die Produktionsbereitstellung verwendet wird.



Beispiel für das Laden eines Modells und eine Vorhersage:



<?phprequire_once 'vendor/autoload.php';

use TensorFlow\\TensorFlow;use TensorFlow\\Session;use TensorFlow\\Graph;

$graph = new Graph();$graph->importGraphDef(file_get_contents('model.pb'));

$session = new Session($graph);$input = $session->input('input_tensor');$output = $session->output('output_tensor');

$result = $session->run([$input => [[1.0, 2.0, 3.0]]]);print_r($result);?>


Rubix ML



Rubix ML ist eine moderne Bibliothek, die die Funktionalität von scikit-learn nachbilden möchte. Sie unterstützt Pipelines, Kreuzvalidierung und eine Vielzahl von Algorithmen. Geeignet für komplexere Projekte.



Beispiel mit linearer Regression:



<?phprequire_once 'vendor/autoload.php';

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

$samples = [[1], [2], [3], [4]];$labels = [2, 4, 6, 8];

$dataset = new Labeled($samples, $labels);$estimator = new Ridge();$estimator->train($dataset);

echo $estimator->predict([[5]]); // ~10?>


Grenzen von PHP beim maschinellen Lernen



Trotz der Existenz von Bibliotheken hat PHP einige grundlegende Einschränkungen, die es nicht zur besten Wahl für ML machen.



Leistung und Typisierung



PHP ist eine interpretierte Sprache mit dynamischer Typisierung. Für mathematische Berechnungen ist dies langsam. In Python wird dieses Problem durch Bibliotheken in C (NumPy, SciPy) gelöst, die auf niedriger Ebene arbeiten. In PHP gibt es solche optimierten mathematischen Pakete praktisch nicht. Alle Operationen werden im PHP-Code ausgeführt, was bei großen Datensätzen kritisch ist.



Fehlendes Ökosystem für Data Science



In Python gibt es J

Blogs

Buchempfehlungen