Aprendizado Supervisionado – Classificação no Rubix ML

Rubix ML
Tempo de leitura: 5 minutos

Aprendizado Supervisionado – Classificação no Rubix ML: Passamos pelas etapas de preparação, limpeza e refinaria. Agora, chegou o momento que todo desenvolvedor espera: a hora de dar “vida” aos dados. No sexto artigo da nossa jornada com Rubix ML, vamos mergulhar no Aprendizado Supervisionado, especificamente na tarefa de Classificação.

Como especialista em desenvolvimento e inteligência de dados, preparei este guia para que você crie seu primeiro modelo preditivo capaz de tomar decisões categóricas. Se você já se perguntou como o Gmail sabe o que é Spam ou como o RPJobs pode classificar um candidato como “Aprovado” ou “Reprovado”, este artigo é para você.

Aprendizado Supervisionado – Classificação: Criando seu Primeiro Modelo no Rubix ML

Aprendizado Supervisionado – Classificação no Rubix ML: A Classificação é uma das tarefas mais fundamentais do Machine Learning. No aprendizado supervisionado, nós treinamos o modelo fornecendo a ele perguntas (samples) e as respostas corretas (labels). O objetivo é que o algoritmo aprenda a mapear as características de entrada para uma categoria específica.

No Rubix ML, temos à disposição diversos algoritmos de classificação, cada um com seus pontos fortes. Hoje, focaremos nos dois pilares mais populares: o K-Nearest Neighbors (KNN) e o Random Forest.

Machine Learnig vs Deep Learning

1. O que é Classificação e por que ela é útil?

Diferente da regressão (que prevê números contínuos, como o preço de uma casa), a classificação lida com grupos discretos. Se o resultado esperado é uma “etiqueta” ou “classe”, estamos falando de classificação.

Exemplos de aplicabilidade em problemas reais:

  • Diagnóstico Médico: Com base em exames, classificar se um tumor é “Benigno” ou “Maligno”.
  • Retenção de Clientes (Churn): Prever se um usuário do seu SaaS vai “Cancelar” ou “Manter” a assinatura no próximo mês.
  • Análise de Sentimento: Classificar um comentário no seu blog como “Positivo”, “Negativo” ou “Neutro”.

2. Conhecendo os Algoritmos

K-Nearest Neighbors (KNN)

O KNN é o algoritmo da “vizinhança”. Ele classifica uma nova amostra com base na classe das amostras mais próximas a ela no espaço de dados.

  • Vantagem: Extremamente simples de entender e não requer um treinamento complexo.
  • Desvantagem: Pode ser lento em datasets gigantescos, pois precisa calcular a distância para todos os pontos.

Random Forest (Floresta Aleatória)

Como o nome sugere, é um conjunto de muitas “Árvores de Decisão” que trabalham juntas. Cada árvore dá um “voto” e a classe mais votada vence.

  • Vantagem: Muito robusto, lida bem com ruídos e é um dos favoritos para competições de ciência de dados.
  • Desvantagem: É um modelo de “caixa preta”, sendo mais difícil explicar exatamente por que ele tomou aquela decisão em comparação com uma árvore única.

3. Criando o Modelo: O Caso do Sucesso Profissional

Vamos imaginar um cenário prático para o seu portal RPJobs. Queremos prever se um desenvolvedor terá sucesso em uma entrevista técnica com base em três fatores: Anos de Experiência, Nível de Inglês (0 a 10) e Projetos no GitHub.

Passo 1: Preparação do Dataset

PHP

use Rubix\ML\Datasets\Labeled;

// Samples: [Anos Exp, Nível Inglês, Projetos GitHub]
$samples = [
    [5, 8, 12], [2, 4, 3], [10, 9, 20], [1, 2, 1], [7, 7, 15], [3, 5, 5]
];

// Labels: [Sucesso na Entrevista]
$labels = ['Sim', 'Não', 'Sim', 'Não', 'Sim', 'Não'];

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

Passo 2: Treinando com Random Forest

Para garantir um resultado profissional, vamos envolver nosso classificador em um Pipeline com um StandardScaler, garantindo que os “Anos de Experiência” e o “Nível de Inglês” estejam na mesma escala.

PHP

use Rubix\ML\Pipeline;
use Rubix\ML\Transformers\StandardScaler;
use Rubix\ML\Classifiers\RandomForest;

$estimator = new Pipeline([
    new StandardScaler(),
], new RandomForest(100)); // Criamos uma floresta com 100 árvores

echo "Iniciando o treinamento..." . PHP_EOL;
$estimator->train($dataset);

4. Fazendo Predições em Tempo Real

Com o modelo treinado, podemos agora submeter novos dados. Imagine que um novo candidato se inscreveu no seu site em São José do Rio Preto:

PHP

$novoCandidato = [4, 6, 8]; // 4 anos exp, inglês 6, 8 projetos

$previsao = $estimator->predictSample($novoCandidato);

echo "Previsão de sucesso: " . strtoupper($previsao); 
// Provável saída: SIM

5. Validação: O Modelo é Confiável?

Não basta o modelo dar uma resposta; precisamos saber o quão bom ele é. No aprendizado supervisionado, usamos uma Matriz de Confusão para ver onde o modelo está acertando e onde está confundindo as classes.

PHP

use Rubix\ML\CrossValidation\Reports\ConfusionMatrix;

// Simulando um teste com dados que o modelo nunca viu
[$training, $testing] = $dataset->split(0.8);
$estimator->train($training);

$predictions = $estimator->predict($testing);

$report = new ConfusionMatrix();
$results = $report->generate($predictions, $testing->labels());

print_r($results);

6. Boas Práticas para uma Classificação de Elite

Para atuar como um especialista em Rubix ML, siga estas diretrizes:

  1. Equilíbrio de Classes: Se você tem 900 exemplos de “Não” e apenas 10 de “Sim”, o modelo vai aprender a dizer sempre “Não”. Tente equilibrar seu dataset ou use técnicas de resampling.
  2. Escolha o K certo no KNN: Um K muito pequeno (ex: 1) torna o modelo sensível a ruídos. Um K muito grande suaviza demais as fronteiras. Geralmente, números ímpares como 3, 5 ou 7 funcionam bem.
  3. Não subestime o Random Forest: Ele é excelente para começar quase qualquer projeto de classificação. Se ele não performar bem, o problema geralmente está nos dados (engenharia de atributos), não no algoritmo.
  4. Persistência: Como vimos no artigo de deploy do CakePHP, salve seu modelo treinado. Não faz sentido treinar o modelo a cada visita ao seu blog.

Conclusão: O Poder da Decisão Automatizada

Criar seu primeiro modelo de Classificação com Rubix ML é o momento em que você deixa de ser um espectador da inteligência artificial e se torna um criador. O aprendizado supervisionado abre portas para automações incríveis, permitindo que seu software PHP tome decisões complexas com base em experiências passadas.

Seja classificando currículos no RPJobs, identificando comportamentos de usuários ou filtrando o conteúdo do seu blog, a classificação é a ferramenta que traz a inteligência para o centro da sua regra de negócio.

No próximo artigo, exploraremos o outro lado da moeda: “Aprendizado Supervisionado – Regressão: Prevendo valores numéricos (ex: preços de imóveis ou salários).”

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:

Capa Curso PHP
PHP
SQL
SQL
Laravel
Laravel
CakePHP
CakePHP

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.

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime

Dica de Especialista: Quer ver algo surpreendente? O Rubix ML permite que você use o Probabilistic para ver a probabilidade de cada classe. Em vez de apenas “Sim”, o modelo pode dizer: “Há 85% de chance de ser Sim”. Isso é ouro para criar dashboards de suporte à decisão!

Author: Thiago Rossi
Com mais de 20 anos de jornada na tecnologia, minha trajetória evoluiu do ensino técnico à arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de soluções de Inteligência Artificial nativa e análise de dados públicos, utilizando o ecossistema PHP para transformar dados brutos em transparência e eficiência. Como autor e desenvolvedor, acredito na democratização do conhecimento. Essa visão resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura até os bastidores da indústria de Jogos e IA. No universo de Game Design, sou autor do livro "GDD – O Guia Definitivo" e documento ativamente meus processos através de DevLogs, unindo rigor técnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso é conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.