{"id":5985,"date":"2026-04-22T13:36:45","date_gmt":"2026-04-22T16:36:45","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=5985"},"modified":"2026-04-22T13:46:43","modified_gmt":"2026-04-22T16:46:43","slug":"series-temporais-com-rubix-ml","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/","title":{"rendered":"S\u00e9ries Temporais 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\"> 5<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>\n<p class=\"has-medium-font-size wp-block-paragraph\">S\u00e9ries Temporais com Rubix ML: Depois de explorarmos a classifica\u00e7\u00e3o, a regress\u00e3o e o agrupamento, chegamos a um dos territ\u00f3rios mais desafiadores e recompensadores da Ci\u00eancia de Dados: o tempo. No desenvolvimento web, quase tudo \u00e9 um evento temporal. O n\u00famero de acessos ao seu blog, o volume de curr\u00edculos enviados para alguma plataforma de recrutamento e sele\u00e7\u00e3o por dia ou as oscila\u00e7\u00f5es de pre\u00e7os em licita\u00e7\u00f5es p\u00fablicas em uma cidade, estado ou pr\u00f3prio Brasil n\u00e3o s\u00e3o dados isolados \u2014 eles s\u00e3o elos de uma corrente.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Como especialista em <strong>Rubix ML<\/strong>, preparei este nono artigo para ensinar voc\u00ea a dominar a <strong>An\u00e1lise de S\u00e9ries Temporais<\/strong>. Vamos descobrir como o PHP pode olhar para o passado cronol\u00f3gico e projetar o futuro, permitindo que voc\u00ea antecipe tend\u00eancias antes mesmo que elas aconte\u00e7am.<\/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\">An\u00e1lise de S\u00e9ries Temporais: O PHP Prevendo o Futuro com Rubix ML<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">S\u00e9ries Temporais com Rubix ML: Uma <strong>S\u00e9rie Temporal<\/strong> (Time Series) \u00e9 uma sequ\u00eancia de pontos de dados coletados em intervalos de tempo sucessivos e, geralmente, iguais. Diferente dos datasets tradicionais onde cada linha \u00e9 independente, aqui a ordem dos dados \u00e9 a informa\u00e7\u00e3o mais valiosa. Se invertermos a ordem das linhas, perdemos o sentido do modelo.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No <strong>Rubix ML<\/strong>, lidar com o tempo exige uma mudan\u00e7a de mentalidade: sa\u00edmos da an\u00e1lise est\u00e1tica e entramos na an\u00e1lise din\u00e2mica de tend\u00eancias, sazonalidades e ciclos.<\/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 que torna as S\u00e9ries Temporais Especiais?<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ao prever acessos ao blog ou n\u00edveis de estoque, precisamos considerar tr\u00eas componentes fundamentais:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Tend\u00eancia:<\/strong> O movimento de longo prazo (o blog est\u00e1 crescendo ou perdendo audi\u00eancia?).<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Sazonalidade:<\/strong> Padr\u00f5es que se repetem em per\u00edodos fixos (mais acessos em dias \u00fateis, menos nos finais de semana).<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Ru\u00eddo:<\/strong> Flutua\u00e7\u00f5es aleat\u00f3rias que n\u00e3o seguem um padr\u00e3o (um post que viralizou por acaso).<\/li>\n<\/ol>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O Rubix ML lida com isso atrav\u00e9s de algoritmos de regress\u00e3o e transformadores espec\u00edficos que preparam os dados para entender essa sequ\u00eancia l\u00f3gica.<\/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. Exemplos de Aplicabilidade em Problemas Reais<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Por que voc\u00ea, desenvolvedor, deveria se importar com isso?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Previs\u00e3o de Acessos:<\/strong> Antecipar picos de tr\u00e1fego no seu blog de tecnologia para ajustar a infraestrutura do seu servidor Linux antes que ele trave.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Gest\u00e3o de Estoque:<\/strong> Prever a demanda de produtos em um e-commerce para evitar falta de itens ou excesso de capital imobilizado.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Planejamento de RH:<\/strong> Identificar em quais meses do ano as empresas de uma determinada cidade mais contratam, otimizando suas campanhas de marketing.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Finan\u00e7as:<\/strong> Prever o fluxo de caixa ou o valor de ativos com base no hist\u00f3rico de fechamentos.<\/li>\n<\/ul>\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. Estrat\u00e9gia de Janelamento (Sliding Window)<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O Rubix ML n\u00e3o possui um &#8220;bot\u00e3o m\u00e1gico&#8221; para o tempo, mas ele oferece a t\u00e9cnica de <strong>Sliding Window<\/strong>. Como a maioria dos algoritmos espera uma entrada est\u00e1tica, n\u00f3s transformamos a s\u00e9rie temporal em um problema de aprendizado supervisionado, onde os &#8220;X&#8221; dias anteriores s\u00e3o as caracter\u00edsticas para prever o dia &#8220;Y&#8221;.<\/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 de Janelamento:<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Se temos os acessos: <code>[100, 120, 110, 130, 140]<\/code><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Uma janela de tamanho 3 criaria:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Amostra: <code>[100, 120, 110]<\/code> -> Alvo: <code>130<\/code><\/li>\n\n\n\n<li class=\"has-medium-font-size\">Amostra: <code>[120, 110, 130]<\/code> -> Alvo: <code>140<\/code><\/li>\n<\/ul>\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. M\u00e3o na Massa: Prevendo Acessos ao Blog<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Vamos criar um modelo para prever quantos acessos o seu blog ter\u00e1 amanh\u00e3, baseando-se nos \u00faltimos 7 dias.<\/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\">Passo 1: Prepara\u00e7\u00e3o dos Dados Cronol\u00f3gicos<\/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\\Datasets\\Labeled;\n\n\/\/ Acessos di\u00e1rios reais coletados\n$historico = &#91;150, 162, 158, 170, 185, 190, 210, 205, 220, 235];\n\n\/\/ Criamos as janelas (Features: 3 dias anteriores | Label: Dia atual)\n$samples = &#91;\n    &#91;150, 162, 158], \/\/ -&gt; Prever 170\n    &#91;162, 158, 170], \/\/ -&gt; Prever 185\n    &#91;158, 170, 185], \/\/ -&gt; Prever 190\n    &#91;170, 185, 190], \/\/ -&gt; Prever 210\n    &#91;185, 190, 210], \/\/ -&gt; Prever 205\n    &#91;190, 210, 205], \/\/ -&gt; Prever 220\n    &#91;210, 205, 220], \/\/ -&gt; Prever 235\n];\n\n$labels = &#91;170, 185, 190, 210, 205, 220, 235];\n\n$dataset = new Labeled($samples, $labels);\n<\/code><\/pre>\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\">Passo 2: Treinando com Gradient Boost<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para s\u00e9ries temporais, algoritmos que lidam bem com sequ\u00eancias e erros residuais, como o <strong>Gradient Boost<\/strong>, s\u00e3o excelentes.<\/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\\Regressors\\GradientBoost;\nuse Rubix\\ML\\Regressors\\RegressionTree;\nuse Rubix\\ML\\Pipeline;\nuse Rubix\\ML\\Transformers\\ZScaleStandardizer;\n\n$estimator = new Pipeline(&#91;\n    new ZScaleStandardizer(),\n], new GradientBoost(new RegressionTree(4), 0.1, 0.8, 100));\n\necho \"Treinando o modelo de previs\u00e3o temporal...\" . PHP_EOL;\n$estimator-&gt;train($dataset);\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. Fazendo a Previs\u00e3o para Amanh\u00e3<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para saber o que acontecer\u00e1 amanh\u00e3, pegamos os dados dos 3 dias mais recentes do nosso hist\u00f3rico real:<\/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>\/\/ \u00daltimos 3 dias conhecidos: &#91;205, 220, 235]\n$ultimosDias = &#91;205, 220, 235];\n\n$previsaoAmanha = $estimator-&gt;predictSample($ultimosDias);\n\necho \"Previs\u00e3o de acessos para amanh\u00e3: \" . round($previsaoAmanha) . \" usu\u00e1rios.\";\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. Valida\u00e7\u00e3o Especial: Hold-out Temporal<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Em s\u00e9ries temporais, voc\u00ea <strong>NUNCA<\/strong> deve usar o <code>randomize()<\/code> ou <code>split()<\/code> comum. Se voc\u00ea treinar o modelo com dados do futuro para prever o passado, voc\u00ea estar\u00e1 cometendo &#8220;Data Leakage&#8221; (vazamento de dados).<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>A regra de ouro:<\/strong> Sempre use os dados mais antigos para treinar e os mais recentes para testar. No Rubix ML, fazemos isso manualmente selecionando o final do array de amostras para 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\">7. Boas Pr\u00e1ticas para S\u00e9ries Temporais de Elite<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para atuar como um profissional, siga estas diretrizes:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Diferencia\u00e7\u00e3o:<\/strong> Se o seu dado tem uma tend\u00eancia de crescimento muito forte, \u00e0s vezes \u00e9 melhor prever a <em>varia\u00e7\u00e3o<\/em> (quanto aumentou) em vez do valor absoluto.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Vari\u00e1veis Ex\u00f3genas:<\/strong> O tempo n\u00e3o \u00e9 a \u00fanica causa. Adicione colunas como &#8220;\u00c9 feriado?&#8221; (0 ou 1) ou &#8220;Dia da Semana&#8221;. Isso ajuda o modelo a entender a sazonalidade.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Tamanho da Janela:<\/strong> Teste janelas de diferentes tamanhos. Para previs\u00f5es semanais, janelas de 7 ou 14 dias costumam ser ideais.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Limpeza de Outliers:<\/strong> Um dia em que o servidor caiu e os acessos foram a zero n\u00e3o deve ser usado para prever o futuro normal; substitua-o pela m\u00e9dia (Artigo 04).<\/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: O PHP como uma M\u00e1quina do Tempo<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A <strong>An\u00e1lise de S\u00e9ries Temporais<\/strong> com <strong>Rubix ML<\/strong> eleva o patamar do seu software. Voc\u00ea deixa de ser um desenvolvedor que apenas &#8220;registra o que aconteceu&#8221; para se tornar o arquiteto que &#8220;planeja o que vir\u00e1&#8221;. Prever o estoque do seu e-commerce ou a audi\u00eancia do seu blog n\u00e3o \u00e9 mais um exerc\u00edcio de adivinha\u00e7\u00e3o, mas uma conclus\u00e3o matem\u00e1tica baseada em evid\u00eancias.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Com o PHP 8 e as extens\u00f5es de performance que configuramos, processar essas janelas temporais \u00e9 r\u00e1pido e eficiente, permitindo que a intelig\u00eancia preditiva rode silenciosamente no seu servidor Linux, antecipando os movimentos do mercado.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No pr\u00f3ximo artigo, entraremos na fase final da nossa trilha b\u00e1sica: <strong>&#8220;Valida\u00e7\u00e3o Cruzada e M\u00e9tricas: Como saber se seu modelo \u00e9 realmente bom?&#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> Para casos de s\u00e9ries temporais ultra-complexas, o Rubix ML possui o regressor <code>Factor Machine<\/code>, que \u00e9 excelente para captar intera\u00e7\u00f5es de alta ordem em datasets esparsos. Vale a pena explorar!<\/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\"> 5<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>S\u00e9ries Temporais com Rubix ML: Depois de explorarmos a classifica\u00e7\u00e3o, a regress\u00e3o e o agrupamento,&#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-5985","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>S\u00e9ries Temporais com Rubix ML - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"S\u00e9ries Temporais com Rubix ML: Uma S\u00e9rie Temporal (Time Series) \u00e9 uma sequ\u00eancia de pontos de dados coletados em intervalos de tempo ...\" \/>\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\/series-temporais-com-rubix-ml\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"S\u00e9ries Temporais com Rubix ML - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"S\u00e9ries Temporais com Rubix ML: Uma S\u00e9rie Temporal (Time Series) \u00e9 uma sequ\u00eancia de pontos de dados coletados em intervalos de tempo ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-22T16:36:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-22T16:46:43+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=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-com-rubix-ml\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-com-rubix-ml\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"S\u00e9ries Temporais com Rubix ML\",\"datePublished\":\"2026-04-22T16:36:45+00:00\",\"dateModified\":\"2026-04-22T16:46:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-com-rubix-ml\\\/\"},\"wordCount\":1094,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-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\\\/series-temporais-com-rubix-ml\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-com-rubix-ml\\\/\",\"name\":\"S\u00e9ries Temporais com Rubix ML - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-com-rubix-ml\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-com-rubix-ml\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/RubixML.png\",\"datePublished\":\"2026-04-22T16:36:45+00:00\",\"dateModified\":\"2026-04-22T16:46:43+00:00\",\"description\":\"S\u00e9ries Temporais com Rubix ML: Uma S\u00e9rie Temporal (Time Series) \u00e9 uma sequ\u00eancia de pontos de dados coletados em intervalos de tempo ...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-com-rubix-ml\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-com-rubix-ml\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/series-temporais-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\\\/series-temporais-com-rubix-ml\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"S\u00e9ries Temporais 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":"S\u00e9ries Temporais com Rubix ML - BLOG THIAGO ROSSI","description":"S\u00e9ries Temporais com Rubix ML: Uma S\u00e9rie Temporal (Time Series) \u00e9 uma sequ\u00eancia de pontos de dados coletados em intervalos de tempo ...","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\/series-temporais-com-rubix-ml\/","og_locale":"pt_BR","og_type":"article","og_title":"S\u00e9ries Temporais com Rubix ML - BLOG THIAGO ROSSI","og_description":"S\u00e9ries Temporais com Rubix ML: Uma S\u00e9rie Temporal (Time Series) \u00e9 uma sequ\u00eancia de pontos de dados coletados em intervalos de tempo ...","og_url":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2026-04-22T16:36:45+00:00","article_modified_time":"2026-04-22T16:46:43+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":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"S\u00e9ries Temporais com Rubix ML","datePublished":"2026-04-22T16:36:45+00:00","dateModified":"2026-04-22T16:46:43+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/"},"wordCount":1094,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-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\/series-temporais-com-rubix-ml\/","url":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/","name":"S\u00e9ries Temporais com Rubix ML - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/RubixML.png","datePublished":"2026-04-22T16:36:45+00:00","dateModified":"2026-04-22T16:46:43+00:00","description":"S\u00e9ries Temporais com Rubix ML: Uma S\u00e9rie Temporal (Time Series) \u00e9 uma sequ\u00eancia de pontos de dados coletados em intervalos de tempo ...","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/series-temporais-com-rubix-ml\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/series-temporais-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\/series-temporais-com-rubix-ml\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"S\u00e9ries Temporais 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\/5985","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=5985"}],"version-history":[{"count":5,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5985\/revisions"}],"predecessor-version":[{"id":5991,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5985\/revisions\/5991"}],"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=5985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=5985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=5985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}