Aprendizado Supervisionado – Regressão com Rubix ML: No artigo anterior, aprendemos como ensinar o computador a colocar coisas em “caixinhas” através da classificação. Hoje, vamos subir um degrau na nossa jornada de inteligência de dados. Imagine que você não quer apenas saber se uma vaga de TI na sua aplicação de empregos é de nível “Sênior” ou “Pleno”, mas quer prever exatamente qual será o salário ofertado em reais. Ou, quem sabe, estimar o valor de mercado de um imóvel em sua cidade com base na sua metragem e localização.
Como especialista em Rubix ML, preparei este sétimo guia focado em Regressão. Vamos descobrir como transformar o PHP em uma poderosa ferramenta de previsão numérica, capaz de enxergar tendências onde outros veem apenas números aleatórios.
Aprendizado Supervisionado – Regressão: Prevendo o Futuro Numérico com Rubix ML
Aprendizado Supervisionado – Regressão com Rubix ML: A Regressão é o ramo do aprendizado supervisionado que lida com a previsão de valores contínuos. Enquanto a classificação busca uma resposta discreta (Sim/Não, A/B/C), a regressão busca um número em uma escala infinita. No ecossistema Rubix ML, temos algoritmos sofisticados que realizam essa tarefa com uma precisão impressionante, permitindo que suas aplicações PHP façam estimativas financeiras e estatísticas de alto nível.
1. O que é Regressão e por que seu App precisa dela?
Em termos matemáticos, a regressão tenta encontrar a função que melhor descreve a relação entre suas variáveis de entrada (features) e o valor de saída (target). Se você tem dados históricos, a regressão permite “interpolar” e “extrapolar” esses valores.
Exemplos de aplicabilidade no mundo real:
- Mercado Imobiliário: Prever o preço de venda de uma casa com base na área construída, número de banheiros e idade do imóvel.
- Finanças: Estimar a receita do próximo mês com base nos investimentos em marketing e tráfego do blog.
- Recrutamento: Sugerir uma faixa salarial justa para um candidato com base em seus anos de experiência e stack tecnológica.
- Análise de Dados Públicos: Prever o gasto de uma licitação futura baseando-se em contratos anteriores de uma cidade com base no portal da transparência da mesma.
2. Conhecendo os Algoritmos de Regressão
O Rubix ML oferece diversas opções. Vamos destacar as duas abordagens mais fundamentais:
Regressão Linear (ou Ridge)
É o ponto de partida. Ela assume que existe uma relação linear (uma linha reta) entre os dados. É extremamente rápida e excelente para entender o impacto de cada variável.
- Quando usar: Quando você percebe que, se uma variável aumenta, a outra aumenta de forma proporcional.
Gradient Boost (Regressor)
Um algoritmo muito mais potente que utiliza um conjunto de árvores de decisão (similar ao Random Forest, mas focado em corrigir os erros das árvores anteriores). É um dos algoritmos mais precisos para comparações de dados.
- Quando usar: Quando os dados têm relações complexas e não lineares que uma simples reta não consegue captar.
3. Mão na Massa: Prevendo Salários no Mercado de TI
Vamos construir um modelo prático. O objetivo é prever o salário anual de um desenvolvedor com base em dois fatores: Anos de Experiência e Quantidade de Linguagens Dominadas.
Passo 1: O Dataset de Treino
PHP
use Rubix\ML\Datasets\Labeled;
// Amostras: [Anos Exp, Qtd Linguagens]
$samples = [
[1, 2], [2, 3], [3, 2], [5, 4], [8, 5], [10, 6], [12, 4]
];
// Rótulos (Labels): Salário Anual em Reais
$labels = [
45000, 55000, 62000, 85000, 120000, 155000, 170000
];
$dataset = new Labeled($samples, $labels);
Passo 2: Construindo o Pipeline de Regressão
Para regressão, é vital que os dados estejam em escalas similares. Usaremos o ZScaleStandardizer para normalizar nossas features antes de entregá-las ao regressor Ridge.
PHP
use Rubix\ML\Pipeline;
use Rubix\ML\Transformers\ZScaleStandardizer;
use Rubix\ML\Regressors\Ridge;
$estimator = new Pipeline([
new ZScaleStandardizer(),
], new Ridge(1.0)); // 1.0 é o parâmetro de regularização (Alpha)
echo "Treinando o regressor salarial..." . PHP_EOL;
$estimator->train($dataset);
4. Fazendo a Previsão (O Momento da Verdade)
Agora, imagine que um desenvolvedor com 6 anos de experiência e domínio de 3 linguagens quer saber sua estimativa salarial no seu portal:
PHP
$desenvolvedor = [6, 3];
$salarioPrevisto = $estimator->predictSample($desenvolvedor);
echo "Estimativa de Salário Anual: R$ " . number_format($salarioPrevisto, 2, ',', '.');
// Saída aproximada: R$ 98.450,00 (dependendo do cálculo do modelo)
5. Medindo o Erro: R-Quadrado e RMSE
Diferente da classificação, onde medimos “acertos”, na regressão medimos o “quão longe” estamos do valor real.
- R² (R-Quadrado): Diz quanto da variação dos dados o seu modelo explica (vai de 0 a 1). Quanto mais perto de 1, melhor.
- RMSE (Root Mean Squared Error): Diz, em média, qual o valor do erro na mesma unidade do seu label (ex: reais).
PHP
use Rubix\ML\CrossValidation\Reports\RegressionAnalysis;
$report = new RegressionAnalysis();
$analysis = $report->generate($predictions, $dataset->labels());
print_r($analysis);
6. Boas Práticas para uma Regressão Profissional
Para atuar como um desenvolvedor especialista em Rubix ML, considere estas diretrizes:
- Cuidado com Outliers: Um único salário de R$ 1.000.000 em um dataset de juniores pode “puxar” a linha de regressão para cima, estragando todas as outras previsões. Limpe seus dados extremos!
- Multicolinearidade: Se você incluir “Anos de Experiência” e “Ano de Formação”, as duas colunas dizem quase a mesma coisa. Isso confunde o modelo de regressão linear.
- Não-Linearidade: Se o seu modelo linear está com um erro muito alto, tente o
KDRegressorou oRegressionTree. Nem tudo na vida segue uma linha reta. - Log-Transform: Às vezes, transformar o valor do salário usando
log()antes do treino ajuda o modelo a lidar com grandes variações, revertendo comexp()no final.
Conclusão: De Programador a Analista Preditivo
Dominar a Regressão com Rubix ML transforma você em um arquiteto de soluções financeiras e estratégicas. Você deixa de apenas exibir dados do passado para começar a estimar o futuro com base em evidências estatísticas.
Seja para calcular o ROI do seu blog, precificar imóveis em alguma cidade ou sugerir salários na aplicação de divulgação de empregos, a regressão é a ferramenta que dá peso matemático às suas decisões. O PHP, com o ecossistema correto, prova-se novamente uma linguagem robusta para a nova era da inteligência de dados.
No próximo artigo, entraremos no fascinante mundo dos dados sem rótulos: “Aprendizado Não Supervisionado – Clustering: Agrupando dados similares automaticamente.”
Mas antes de dominar o Rubix ML, se este for o seu caso, entendemos que toda jornada tem um início. Vamos entender quais são os conhecimentos básicos necessários para aproveitar ao máximo esta poderosa biblioteca. Para iniciar seus estudos do Rubix ML, você precisará dominar as seguintes tecnologias e/ou framework:
E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados.
Dica de Especialista: No Rubix ML, você pode usar o PersistentModel para salvar o seu regressor e carregá-lo em uma rota API no seu app CakePHP. Imagine uma rota GET que recebe os parâmetros via query string e retorna o valor previsto em JSON. Performance pura!









