Aprendizado de Máquina em PHP: visão geral das bibliotecas para integração de ML

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Aprendizado de Máquina em PHP: realidade ou compromisso?



Tradicionalmente, o aprendizado de máquina (ML) é associado a Python, R ou Julia. No entanto, o PHP, sendo uma das linguagens mais populares para desenvolvimento web, também possui um ecossistema de bibliotecas para ML. Usar PHP para aprendizado de máquina é um compromisso: você perde em desempenho e quantidade de modelos prontos em comparação com Python, mas ganha integração perfeita com aplicações web, uma pilha de tecnologia unificada e a capacidade de implementar rapidamente algoritmos de ML simples sem executar microsserviços.



Neste artigo, vamos explorar as principais bibliotecas para aprendizado de máquina em PHP, suas capacidades e exemplos de uso.



1. PHP-ML (PHP Machine Learning)



PHP-ML é a biblioteca mais popular para ML em PHP. Ela não requer dependências externas e é escrita inteiramente em PHP. Implementa algoritmos clássicos: classificação, regressão, clusterização, redução de dimensionalidade e métricas de avaliação.



Capacidades:

  • Classificação: Naive Bayes, SVM, k-Nearest Neighbors, Decision Tree
  • Regressão: Linear Regression, SVR
  • Clusterização: k-Means, DBSCAN
  • Pré-processamento de dados: normalização, padronização
  • Métricas: accuracy, precision, recall, F1-score


Exemplo: Classificação das Íris 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);

// Predição para uma nova amostra (comprimento da sépala, largura da sépala, comprimento da pétala, largura da pétala)$newSample = [5.1, 3.5, 1.4, 0.2];$predicted = $classifier->predict($newSample);

echo "Classe prevista: " . $predicted; // 'Iris-setosa'


2. Rubix ML



Rubix ML é uma biblioteca mais moderna e poderosa. Ao contrário do PHP-ML, ela suporta redes neurais, gradient boosting, métodos ensemble e trabalho com grandes conjuntos de dados através de geradores (lazy evaluation).



Características:

  • Redes Neurais (Multilayer Perceptron, CNN via conversão)
  • Ensembles: Random Forest, Gradient Boosted Trees
  • Pipelines de processamento de dados
  • Suporte para atributos categóricos e One-Hot Encoding
  • Exportação de modelos em formato serializado do PHP


Exemplo: Regressão Linear com 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;

// Criando o conjunto de dados$samples = [[1], [2], [3], [4], [5]];$labels = [1.5, 2.8, 4.1, 5.9, 7.2];

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

// Criando o pipeline$estimator = new Pipeline([ new NumericStringConverter(), new MinMaxNormalizer(),], new Ridge(1.0));

$estimator->train($dataset);

// Predição$prediction = $estimator->predict([[6]]);echo "Valor previsto: " . $prediction[0]; // ~8.3


3. Keras PHP (TensorFlow PHP Binding)



Para trabalhar com redes neurais profundas em PHP, você pode usar Keras PHP — um wrapper sobre a biblioteca Python Keras/TensorFlow. Na prática, é uma ponte que executa scripts Python a partir do PHP. Não é uma solução puramente PHP, mas permite usar todo o poder do TensorFlow.



Exemplo: Carregando um modelo pré-treinado

use KerasPHP\\Keras;

$keras = new Keras();

// Carregando o modelo do arquivo .h5$model = $keras->load_model('/caminho/para/modelo.h5');

// Preparando os dados (array)$input = [[0.5, 0.2, 0.1]];

// Predição$result =

Recommendations