Машинное обучение на PHP: обзор библиотек для ML

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Машинное обучение на PHP: обзор библиотек для реализации ML-алгоритмов

Хотя Python традиционно считается основным языком для машинного обучения, PHP также имеет несколько мощных библиотек, позволяющих внедрять ML-модели непосредственно в веб-приложения. В этой статье мы рассмотрим основные инструменты для машинного обучения на PHP, их возможности и примеры использования.

Почему PHP для машинного обучения?

PHP остаётся одним из самых популярных языков для веб-разработки. Использование ML-библиотек на PHP позволяет:

  • Интегрировать модели непосредственно в существующие Laravel/Symfony проекты
  • Избежать переключения между языками в рамках одного проекта
  • Использовать знакомую экосистему Composer и автозагрузку
  • Быстро разворачивать прототипы на дешёвом хостинге

1. PHP-ML — стандарт машинного обучения на PHP

PHP-ML (Machine Learning library for PHP) — самая популярная библиотека для ML на PHP. Она предоставляет широкий спектр алгоритмов без внешних зависимостей.

Установка

composer require php-ai/php-ml

Пример: классификация текстов

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

use Phpml\Classification\KNearestNeighbors;
use Phpml\FeatureExtraction\TfIdfTransformer;
use Phpml\Tokenization\WhitespaceTokenizer;
use Phpml\FeatureExtraction\TokenCountVectorizer;

// Обучающие данные
$samples = [
    'отличный товар быстрая доставка',
    'ужасное качество брак',
    'рекомендую всем друзьям',
    'не работает сломалось через день'
];
$labels = ['positive', 'negative', 'positive', 'negative'];

// Преобразование текста в векторы
$vectorizer = new TokenCountVectorizer(new WhitespaceTokenizer());
$vectorizer->fit($samples);
$vectorizer->transform($samples);

$transformer = new TfIdfTransformer();
$transformer->fit($samples);
$transformer->transform($samples);

// Обучение модели
$classifier = new KNearestNeighbors();
$classifier->train($samples, $labels);

// Предсказание
$testSample = ['прекрасный продукт качество'];
$vectorizer->transform($testSample);
$transformer->transform($testSample);

$predicted = $classifier->predict($testSample[0]);
echo "Тональность: $predicted"; // positive
?>

Возможности PHP-ML

  • Классификация: KNearestNeighbors, NaiveBayes, SVC, DecisionTree
  • Регрессия: LeastSquares, Ridge, LogisticRegression
  • Кластеризация: KMeans, DBSCAN, FuzzyCMeans
  • Обработка текста: TF-IDF, стемминг, токенизация
  • Метрики: accuracy, precision, recall, confusion matrix

2. Rubix ML — современный фреймворк для машинного обучения

Rubix ML — более новая и производительная библиотека с поддержкой нейронных сетей, GPU-ускорения и конвейеров обработки данных.

Установка

composer require rubix/ml

Пример: нейронная сеть для классификации

<?php
require_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;

// Создание датасета
$samples = [[2.5, 1.2], [1.0, 0.8], [3.5, 4.2], [2.0, 0.5]];
$labels = ['cat', 'dog', 'cat', 'dog'];
$dataset = new Labeled($samples, $labels);

// Создание MLP (многослойный перцептрон)
$mlp = new MultilayerPerceptron([
    new Dense(10),
    new Activation(new ReLU()),
    new Dense(5),
    new Activation(new ReLU()),
    new Dense(2),
    new Activation(new Softmax())
], new Adam(0.001));

$mlp->train($dataset);

// Предсказание
$newSample = [[2.8, 1.5]];
$predictions = $mlp->predict($newSample);
echo "Предсказанный класс: " . $predictions[0]; // cat
?>

Преимущества Rubix ML

Рекомендаций