{"id":5992,"date":"2026-04-22T13:56:37","date_gmt":"2026-04-22T16:56:37","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=5992"},"modified":"2026-04-22T14:10:12","modified_gmt":"2026-04-22T17:10:12","slug":"validacao-cruzada-e-metricas-com-rubix-ml","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/","title":{"rendered":"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 7<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>\n<p class=\"has-medium-font-size wp-block-paragraph\">Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: Voc\u00ea treinou o seu modelo, ele n\u00e3o disparou erros no terminal e j\u00e1 consegue fazer predi\u00e7\u00f5es. Mas aqui vem a pergunta de um milh\u00e3o de reais: <strong>o qu\u00e3o confi\u00e1vel ele realmente \u00e9?<\/strong> Se o seu classificador de curr\u00edculos diz que um candidato \u00e9 &#8220;Excelente&#8221;, ele est\u00e1 chutando ou baseando-se em padr\u00f5es s\u00f3lidos? Se o seu sistema de detec\u00e7\u00e3o de fraudes deixa passar um ataque, qual o custo disso para o seu neg\u00f3cio?<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Como especialista em <strong>Rubix ML<\/strong>, preparei este d\u00e9cimo artigo para levar voc\u00ea al\u00e9m do c\u00f3digo funcional. Vamos entrar no mundo da <strong>Valida\u00e7\u00e3o Cruzada e M\u00e9tricas de Performance<\/strong>. \u00c9 aqui que separamos os amadores dos Engenheiros de Machine Learning: aprendendo a auditar a intelig\u00eancia que criamos.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Valida\u00e7\u00e3o Cruzada e M\u00e9tricas: Como Saber se Seu Modelo Rubix ML \u00e9 Bom?<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: No desenvolvimento web tradicional, fazemos testes unit\u00e1rios para verificar se <code>2 + 2 = 4<\/code>. No Machine Learning, os testes s\u00e3o probabil\u00edsticos. Um modelo pode ter 99% de acerto nos dados que ele j\u00e1 viu (treino), mas falhar miseravelmente com dados novos. Isso \u00e9 o que chamamos de <strong>Overfitting<\/strong>. Para evitar essa armadilha, precisamos de uma metodologia rigorosa de valida\u00e7\u00e3o.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">1. O Problema da Mentira dos Dados de Treino<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Imagine que voc\u00ea est\u00e1 estudando para uma prova e decorou todas as respostas do gabarito de anos anteriores. Na hora do exame real, se as perguntas mudarem um pouco, voc\u00ea reprova. O seu modelo faz o mesmo. Se voc\u00ea test\u00e1-lo com os mesmos dados que usou para trein\u00e1-lo, ele ter\u00e1 uma performance artificialmente alta.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A solu\u00e7\u00e3o \u00e9 a <strong>Divis\u00e3o de Dados (Train-Test Split)<\/strong>, mas para ser profissional, usamos a <strong>Valida\u00e7\u00e3o Cruzada (Cross-Validation)<\/strong>.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">2. Valida\u00e7\u00e3o Cruzada: O Teste de Estresse<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A <strong>Valida\u00e7\u00e3o Cruzada K-Fold<\/strong> \u00e9 a t\u00e9cnica de elite para garantir que o modelo \u00e9 robusto. Funciona assim:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">O Rubix ML divide seu dataset em $K$ partes (geralmente 5 ou 10).<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Ele treina o modelo em 4 partes e testa na 5\u00aa.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Repete o processo 5 vezes, alternando a parte que serve de teste.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">No final, voc\u00ea tem a m\u00e9dia real de performance de todos os testes.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo Pr\u00e1tico com Rubix ML:<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>use Rubix\\ML\\CrossValidation\\KFold;\nuse Rubix\\ML\\CrossValidation\\Metrics\\Accuracy;\n\n$validator = new KFold(5); \/\/ Divide em 5 partes\n$metric = new Accuracy();\n\n$score = $validator-&gt;test($estimator, $dataset, $metric);\n\necho \"Acur\u00e1cia m\u00e9dia ap\u00f3s 5 rodadas: \" . ($score * 100) . \"%\";\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">3. Entendendo as M\u00e9tricas: Al\u00e9m da Acur\u00e1cia<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A <strong>Acur\u00e1cia<\/strong> (porcentagem de acertos totais) \u00e9 a m\u00e9trica mais famosa, mas \u00e0s vezes ela \u00e9 a mais mentirosa. Imagine um sistema que detecta uma doen\u00e7a rar\u00edssima que atinge 1 em cada 1000 pessoas. Se o modelo simplesmente disser &#8220;Ningu\u00e9m est\u00e1 doente&#8221; para todo mundo, ele ter\u00e1 <strong>99,9% de acur\u00e1cia<\/strong>, mas ser\u00e1 completamente in\u00fatil.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para resolver isso, precisamos entender o quarteto fant\u00e1stico: <strong>Precis\u00e3o, Recall, F1-Score e Matriz de Confus\u00e3o<\/strong>.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">A. Matriz de Confus\u00e3o<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para entender a <strong>Matriz de Confus\u00e3o<\/strong> sem dor de cabe\u00e7a, imagine que voc\u00ea \u00e9 o moderador do seu blog e criou um pequeno &#8220;rob\u00f4&#8221; para te ajudar a identificar <strong>Spams<\/strong>.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A matriz nada mais \u00e9 do que um quadro de notas para o seu rob\u00f4. Ela compara o que o rob\u00f4 <strong>achou<\/strong> que era o coment\u00e1rio com o que o coment\u00e1rio <strong>realmente<\/strong> era.<\/p>\n\n\n\n<figure class=\"wp-block-table has-medium-font-size\"><table class=\"has-fixed-layout\"><thead><tr><td><strong><\/strong><\/td><td><strong>Previsto Positivo<\/strong><\/td><td><strong>Previsto Negativo<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Real Positivo<\/strong><\/td><td>Verdadeiro Positivo (VP)<\/td><td>Falso Negativo (FN)<\/td><\/tr><tr><td><strong>Real Negativo<\/strong><\/td><td>Falso Positivo (FP)<\/td><td>Verdadeiro Negativo (VN)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Os 4 Quadrantes da Verdade<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Imagine que passamos 100 coment\u00e1rios pelo seu rob\u00f4. A matriz vai organizar os resultados em quatro categorias:<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>1. O Acerto Positivo (Verdadeiro Positivo &#8211; VP)<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>O que aconteceu:<\/strong> O rob\u00f4 disse: <em>&#8220;Isso \u00e9 um Spam!&#8221;<\/em>. Voc\u00ea olhou e era mesmo um link de propaganda de cassino.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Sentimento:<\/strong> Sucesso! O rob\u00f4 trabalhou direito.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>2. O Alarme Falso (Falso Positivo &#8211; FP)<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>O que aconteceu:<\/strong> O rob\u00f4 disse: <em>&#8220;Isso \u00e9 um Spam!&#8221;<\/em>. Voc\u00ea foi ver e era um leitor real fazendo uma pergunta super pertinente sobre CakePHP.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Sentimento:<\/strong> Problema. Voc\u00ea quase ignorou um leitor fiel porque o rob\u00f4 foi r\u00edgido demais.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Apelido t\u00e9cnico:<\/strong> Erro do Tipo I.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>3. O &#8220;Passou Batido&#8221; (Falso Negativo &#8211; FN)<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>O que aconteceu:<\/strong> O rob\u00f4 disse: <em>&#8220;Pode postar, isso \u00e9 um coment\u00e1rio leg\u00edtimo!&#8221;<\/em>. Mas, na verdade, era um bot vendendo iPhones falsos.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Sentimento:<\/strong> Perigo. O seu blog agora tem lixo vis\u00edvel porque o rob\u00f4 foi &#8220;bonzinho&#8221; ou distra\u00eddo demais.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Apelido t\u00e9cnico:<\/strong> Erro do Tipo II.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>4. O Acerto Negativo (Verdadeiro Negativo &#8211; VN)<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>O que aconteceu:<\/strong> O rob\u00f4 disse: <em>&#8220;Isso n\u00e3o \u00e9 spam&#8221;<\/em>. E realmente era um elogio genu\u00edno de um colega desenvolvedor.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Sentimento:<\/strong> Al\u00edvio. O sistema sabe reconhecer o que \u00e9 bom.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. Precis\u00e3o (Precision)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Diz: &#8220;De todos que eu classifiquei como Positivo, quantos eram realmente Positivos?&#8221;.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Importante em:<\/strong> Filtros de Spam. Voc\u00ea n\u00e3o quer que um e-mail importante do seu cliente v\u00e1 para o lixo (Falso Positivo).<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">C. Recall (Sensibilidade)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Diz: &#8220;De todos que eram realmente Positivos, quantos eu consegui capturar?&#8221;.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Importante em:<\/strong> Diagn\u00f3stico de doen\u00e7as ou detec\u00e7\u00e3o de fraudes. \u00c9 melhor ter um alarme falso (Falso Positivo) do que deixar um fraudador passar (Falso Negativo).<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">D. F1-Score<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\u00c9 a m\u00e9dia harm\u00f4nica entre Precis\u00e3o e Recall. \u00c9 a melhor m\u00e9trica quando voc\u00ea quer um equil\u00edbrio entre n\u00e3o dar alarmes falsos e n\u00e3o deixar nada passar.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">4. Implementando a Auditoria no Rubix ML<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Vamos aplicar isso em um classificador de inten\u00e7\u00e3o de coment\u00e1rios no seu blog t\u00e9cnico.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>use Rubix\\ML\\CrossValidation\\Reports\\ConfusionMatrix;\nuse Rubix\\ML\\CrossValidation\\Reports\\AggregateReport;\nuse Rubix\\ML\\CrossValidation\\Metrics\\Precision;\nuse Rubix\\ML\\CrossValidation\\Metrics\\Recall;\n\n\/\/ Supondo que voc\u00ea j\u00e1 tenha as predi\u00e7\u00f5es e os labels reais (testes)\n$predictions = $estimator-&gt;predict($testingSet);\n$labels = $testingSet-&gt;labels();\n\n\/\/ Gerando um relat\u00f3rio completo\n$report = new AggregateReport(&#91;\n    new ConfusionMatrix(),\n    new Precision(),\n    new Recall(),\n]);\n\n$results = $report-&gt;generate($predictions, $labels);\n\nprint_r($results);\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">5. Aplicabilidade em Problemas Reais: Caso de Recrutamento e Sele\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Imagine que voc\u00ea est\u00e1 usando o Rubix ML para prever se um candidato deve ser convidado para uma entrevista t\u00e9cnica.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Cen\u00e1rio de Alta Precis\u00e3o:<\/strong> Voc\u00ea quer economizar tempo dos seus recrutadores. Voc\u00ea s\u00f3 quer convidar quem tem certeza absoluta que \u00e9 bom. Voc\u00ea aceita perder alguns talentos (Recall baixo) para garantir que ningu\u00e9m ruim seja convidado (Precis\u00e3o alta).<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Cen\u00e1rio de Alto Recall:<\/strong> Voc\u00ea est\u00e1 em uma fase de expans\u00e3o agressiva. Voc\u00ea quer ver todos os talentos poss\u00edveis. Voc\u00ea aceita entrevistar pessoas que n\u00e3o s\u00e3o t\u00e3o boas (Precis\u00e3o baixa) para garantir que nenhum g\u00eanio escape (Recall alto).<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>O Rubix ML permite que voc\u00ea ajuste o &#8220;Threshold&#8221; (limiar) do seu modelo para favorecer uma m\u00e9trica ou outra.<\/strong><\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo: Avaliando o Filtro de Candidatos<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Neste exemplo, vamos gerar um relat\u00f3rio de performance completo para entender onde o nosso &#8220;recrutador digital&#8221; est\u00e1 acertando ou falhando.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>&lt;?php\n\nrequire 'vendor\/autoload.php';\n\nuse Rubix\\ML\\Datasets\\Labeled;\nuse Rubix\\ML\\CrossValidation\\Reports\\ConfusionMatrix;\nuse Rubix\\ML\\CrossValidation\\Reports\\AggregateReport;\nuse Rubix\\ML\\CrossValidation\\Metrics\\Precision;\nuse Rubix\\ML\\CrossValidation\\Metrics\\Recall;\nuse Rubix\\ML\\CrossValidation\\Metrics\\F1Score;\n\n\/**\n * 1. DADOS REAIS VS PREDI\u00c7\u00d5ES\n * Imagine que o seu modelo fez predi\u00e7\u00f5es para 10 candidatos.\n * 'convidar' = Positivo | 'descartar' = Negativo\n *\/\n\n\/\/ O que o modelo previu:\n$predictions = &#91;\n    'convidar', 'descartar', 'convidar', 'convidar', 'descartar', \n    'descartar', 'convidar', 'descartar', 'convidar', 'descartar'\n];\n\n\/\/ A realidade (o que um recrutador humano s\u00eanior decidiu ap\u00f3s a entrevista):\n$labels = &#91;\n    'convidar', 'descartar', 'descartar', 'convidar', 'convidar', \n    'descartar', 'convidar', 'descartar', 'convidar', 'descartar'\n];\n\n\/**\n * 2. GERANDO O RELAT\u00d3RIO AGREGADO\n * Vamos extrair a Matriz de Confus\u00e3o e as m\u00e9tricas de precis\u00e3o e sensibilidade.\n *\/\n$report = new AggregateReport(&#91;\n    new ConfusionMatrix(),\n    new Precision(),\n    new Recall(),\n    new F1Score(),\n]);\n\n$results = $report->generate($predictions, $labels);\n\n\/**\n * 3. INTERPRETANDO PARA O NEG\u00d3CIO\n *\/\n\necho \"--- RELAT\u00d3RIO DE QUALIDADE DO RECRUTAMENTO ---\" . PHP_EOL;\n\n\/\/ Matriz de Confus\u00e3o\nprint_r($results&#91;'confusion_matrix']);\n\n\/\/ M\u00e9tricas detalhadas\necho \"Precis\u00e3o (Qualidade da indica\u00e7\u00e3o): \" . ($results&#91;'precision'] * 100) . \"%\" . PHP_EOL;\necho \"Recall (Capacidade de n\u00e3o perder talentos): \" . ($results&#91;'recall'] * 100) . \"%\" . PHP_EOL;\necho \"F1-Score (Equil\u00edbrio Geral): \" . ($results&#91;'f1_score'] * 100) . \"%\" . PHP_EOL;\n\n\/**\n * AN\u00c1LISE ESTRAT\u00c9GICA:\n * * Se o Falso Positivo (FP) for alto: \n * O sistema est\u00e1 enviando muitos candidatos ruins para a entrevista. \n * SOLU\u00c7\u00c3O: Ser mais rigoroso na limpeza dos dados (Artigo 04).\n * * Se o Falso Negativo (FN) for alto: \n * O sistema est\u00e1 descartando curr\u00edculos de bons profissionais.\n * SOLU\u00c7\u00c3O: Revisar a Engenharia de Atributos (Artigo 05) para valorizar mais as skills.\n *\/\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">6. Boas Pr\u00e1ticas para Valida\u00e7\u00e3o de Elite<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para atuar como um profissional, siga este checklist em todos os projetos:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Nunca use dados de treino para testar:<\/strong> Isso \u00e9 o pecado capital do Machine Learning.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Use o <code>StratifiedSplit<\/code>:<\/strong> Se o seu dataset tem 80% de homens e 20% de mulheres, garanta que tanto o conjunto de treino quanto o de teste mantenham essa propor\u00e7\u00e3o para evitar vieses.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Analise a Matriz de Confus\u00e3o:<\/strong> Se o modelo est\u00e1 confundindo &#8220;D\u00favida&#8221; com &#8220;Spam&#8221;, talvez voc\u00ea precise de mais palavras-chave no seu <code>WordCountVectorizer<\/code> (Artigo 03).<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Desconfie de Acur\u00e1cia de 100%:<\/strong> No mundo real, isso quase sempre significa que houve um vazamento de dados (<em>Data Leakage<\/em>) ou que o seu modelo simplesmente decorou o dataset.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Conclus\u00e3o: A Ci\u00eancia por Tr\u00e1s da Intui\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: Entender <strong>Valida\u00e7\u00e3o Cruzada e M\u00e9tricas<\/strong> transforma o seu trabalho de &#8220;programador que usa IA&#8221; em um &#8220;Cientista de Dados&#8221;. No <strong>Rubix ML<\/strong>, essas ferramentas s\u00e3o nativas e poderosas, permitindo que voc\u00ea entregue n\u00e3o apenas um modelo que funciona, mas um modelo que voc\u00ea sabe exatamente onde falha e onde brilha.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ao dominar a <strong>Precis\u00e3o, o Recall e a Matriz de Confus\u00e3o<\/strong>, voc\u00ea ganha o controle total sobre a experi\u00eancia do usu\u00e1rio. Seja decidindo quem entra no<strong> <\/strong>recrutamento e sele\u00e7\u00e3o ou filtrando o conte\u00fado do seu blog, suas decis\u00f5es agora s\u00e3o baseadas em evid\u00eancias estat\u00edsticas s\u00f3lidas.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No pr\u00f3ximo artigo, aprenderemos a fechar o ciclo de vida do modelo: <strong>&#8220;Persist\u00eancia de Modelos: Como salvar seu c\u00e9rebro digital e carreg\u00e1-lo em produ\u00e7\u00e3o.&#8221;<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Mas antes de dominar o Rubix ML, se este for o seu caso, entendemos que toda jornada tem um in\u00edcio. Vamos entender quais s\u00e3o os conhecimentos b\u00e1sicos necess\u00e1rios para aproveitar ao m\u00e1ximo esta poderosa biblioteca. Para iniciar seus estudos do Rubix ML, voc\u00ea precisar\u00e1 dominar as seguintes tecnologias e\/ou framework:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/php\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png\" alt=\"Capa Curso PHP\" class=\"wp-image-2835\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP-300x169.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">PHP<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/sql\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp\" alt=\"SQL\" class=\"wp-image-942\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">SQL<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/laravel\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp\" alt=\"Laravel\" class=\"wp-image-1642\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Laravel-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">Laravel<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/cakephp\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png\" alt=\"CakePHP\" class=\"wp-image-5819\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp-300x169.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">CakePHP<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">E se voc\u00ea gosta do nosso conte\u00fado, n\u00e3o deixe de contribuir adquirindo os servi\u00e7os e produtos dos nossos apoiadores e empresas que somos associados.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/hostinger.com.br\/?REFERRALCODE=1THIAGO62\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/03\/hostinger.png\" alt=\"Hospedagem Hostinger\" class=\"wp-image-92\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNDYlc\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/ofertas-amazon.webp\" alt=\"Ofertas Amazon\" class=\"wp-image-1308\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNKmt0\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/amazonprime.webp\" alt=\"Amazon Prime\" class=\"wp-image-1307\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Dica de Especialista:<\/strong> Se o seu modelo est\u00e1 com m\u00e9tricas ruins, antes de trocar o algoritmo, volte ao Artigo 05 (Engenharia de Atributos). 80% dos ganhos de performance v\u00eam de dados melhores, n\u00e3o de algoritmos mais complexos!<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 7<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: Voc\u00ea treinou o seu modelo, ele n\u00e3o disparou&#8230;<\/p>\n","protected":false},"author":1,"featured_media":5935,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[98],"tags":[],"class_list":["post-5992","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rubix-ml","wpcat-98-id"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: No desenvolvimento web tradicional, fazemos testes unit\u00e1rios para verificar se 2 + 2 = 4. No ...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: No desenvolvimento web tradicional, fazemos testes unit\u00e1rios para verificar se 2 + 2 = 4. No ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-22T16:56:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-22T17:10:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png\" \/>\n\t<meta property=\"og:image:width\" content=\"758\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Thiago Rossi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thiago Rossi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML\",\"datePublished\":\"2026-04-22T16:56:37+00:00\",\"dateModified\":\"2026-04-22T17:10:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/\"},\"wordCount\":1469,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/RubixML.png\",\"articleSection\":[\"Rubix ML\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/\",\"name\":\"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/RubixML.png\",\"datePublished\":\"2026-04-22T16:56:37+00:00\",\"dateModified\":\"2026-04-22T17:10:12+00:00\",\"description\":\"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: No desenvolvimento web tradicional, fazemos testes unit\u00e1rios para verificar se 2 + 2 = 4. No ...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/RubixML.png\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/RubixML.png\",\"width\":758,\"height\":426,\"caption\":\"Rubix ML\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/validacao-cruzada-e-metricas-com-rubix-ml\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"name\":\"THIAGO ROSSI\",\"description\":\"Mais de 20 anos de experi\u00eancia no mercado de TI!\",\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"alternateName\":\"TR | CURSO WEB DEV\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\",\"name\":\"THIAGO ROSSI\",\"alternateName\":\"TR | CURSO WEB DEV\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"width\":300,\"height\":300,\"caption\":\"THIAGO ROSSI\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\",\"name\":\"Thiago Rossi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"caption\":\"Thiago Rossi\"},\"description\":\"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \\\"GDD \u2013 O Guia Definitivo\\\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.\",\"sameAs\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\",\"https:\\\/\\\/instagram.com\\\/thiagorossix86\",\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"],\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/author\\\/thiagorossi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML - BLOG THIAGO ROSSI","description":"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: No desenvolvimento web tradicional, fazemos testes unit\u00e1rios para verificar se 2 + 2 = 4. No ...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/","og_locale":"pt_BR","og_type":"article","og_title":"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML - BLOG THIAGO ROSSI","og_description":"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: No desenvolvimento web tradicional, fazemos testes unit\u00e1rios para verificar se 2 + 2 = 4. No ...","og_url":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2026-04-22T16:56:37+00:00","article_modified_time":"2026-04-22T17:10:12+00:00","og_image":[{"width":758,"height":426,"url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","type":"image\/png"}],"author":"Thiago Rossi","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Thiago Rossi","Est. tempo de leitura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML","datePublished":"2026-04-22T16:56:37+00:00","dateModified":"2026-04-22T17:10:12+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/"},"wordCount":1469,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","articleSection":["Rubix ML"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/","url":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/","name":"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","datePublished":"2026-04-22T16:56:37+00:00","dateModified":"2026-04-22T17:10:12+00:00","description":"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML: No desenvolvimento web tradicional, fazemos testes unit\u00e1rios para verificar se 2 + 2 = 4. No ...","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/#primaryimage","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","width":758,"height":426,"caption":"Rubix ML"},{"@type":"BreadcrumbList","@id":"https:\/\/thiagorossi.com.br\/blog\/validacao-cruzada-e-metricas-com-rubix-ml\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Valida\u00e7\u00e3o Cruzada e M\u00e9tricas com Rubix ML"}]},{"@type":"WebSite","@id":"https:\/\/thiagorossi.com.br\/blog\/#website","url":"https:\/\/thiagorossi.com.br\/blog\/","name":"THIAGO ROSSI","description":"Mais de 20 anos de experi\u00eancia no mercado de TI!","publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"alternateName":"TR | CURSO WEB DEV","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thiagorossi.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/thiagorossi.com.br\/blog\/#organization","name":"THIAGO ROSSI","alternateName":"TR | CURSO WEB DEV","url":"https:\/\/thiagorossi.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","width":300,"height":300,"caption":"THIAGO ROSSI"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/linkedin.com\/in\/thiagox86"]},{"@type":"Person","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87","name":"Thiago Rossi","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","caption":"Thiago Rossi"},"description":"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \"GDD \u2013 O Guia Definitivo\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.","sameAs":["https:\/\/thiagorossi.com.br\/blog","https:\/\/instagram.com\/thiagorossix86","https:\/\/linkedin.com\/in\/thiagox86"],"url":"https:\/\/thiagorossi.com.br\/blog\/author\/thiagorossi\/"}]}},"_links":{"self":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=5992"}],"version-history":[{"count":5,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5992\/revisions"}],"predecessor-version":[{"id":6000,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5992\/revisions\/6000"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media\/5935"}],"wp:attachment":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=5992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=5992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=5992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}