Uma das bases do machine learning está nos dados históricos. Conforme abordamos no artigo O que é Machine Learning (Aprendizado de Máquina), os algoritmos de machine learning precisam aprender, e para isso quanto mais dados forem usados, melhor ficará o modelo.
Big Data
É neste momento que o famoso Big Data dá uma de suas importantes contribuições para o aprendizado de máquina. Uma de suas definições traz a ideia de “informação em alto volume”, ou seja, dados históricos em grande quantidade.
Pré-processamento e aplicação dos dados
Estes dados serão devidamente preparados, passando por alguns processos de limpeza e ajustes, que são o pré-processamento e a seleção de variáveis, para então estarem aptos a serem apresentados a um algoritmo de machine learning, que realizará as previsões, verificando o quão distante o resultado está do valor correto, reajustando os parâmetros utilizados na previsão a fim de obter um valor mais adequado.
Esse processo se repetirá até que o erro entre os valores reais e os valores previstos pare de diminuir a cada novo ajuste.
Separação dos dados históricos
Poderíamos utilizar a totalidade dos dados históricos no processo acima, criando assim um modelo de machine learning pronto para receber novos dados e realizar suas previsões, porém desta forma não saberíamos o real desempenho deste modelo.
O algoritmo poderia aprender perfeitamente a relação existentes nos dados apresentados e com isso criar um modelo que sofre de Overfitting e só descobriríamos esse problema após as previsões desastrosas geradas por este modelo.
Desta forma, para medir o desempenho real do modelo criado, é necessário que realizemos testes com ele, utilizando dados diferentes dos que foram apresentados em sua criação.
Com esta finalidade, após a realização do pré-processamento, iremos separar a totalidade dos dados históricos existentes em dois grupos, sendo o primeiro responsável pelo aprendizado do modelo, e o segundo por realizar os testes.
O que são Dados de Treino
Conforme podemos imaginar, dados de treino são os dados que serão apresentados ao algoritmo de machine learning para criação do modelo. Estes dados costumam representar cerca de 70% da totalidade dos dados.
O que são Dados de Teste
São os dados que serão apresentados ao modelo após a sua criação, simulando previsões reais que o modelo realizará, permitindo assim que o desempenho real seja verificado. Estes dados costumam representar cerca de 30% da totalidade dos dados.
Aleatoriedade na separação dos dados
É importante observar que a separação dos dados em treino e teste é uma etapa essencial, e que caso ela seja realizada de maneira errada, poderá resultar em problemas no modelo.
Imagine que você tenha dados sobre vinte mil carros, com algumas características e o valor deles. Você decide que irá utilizar quinze mil amostras para treinar seu modelo, e para isso seleciona as quinze mil primeiras linhas, deixando a últimas cinco mil para teste.
Porém estas linhas estavam organizadas em ordem alfabética com base nos nomes dos carros. Percebem o problema? Alguns modelos de carros específicos estarão presentes apenas nos dados de treino, e outros apenas nos dados de teste.
Esta situação levará a um modelo deficiente, que não aprendeu com todos os tipos de dados que poderia e que também não será testado de maneira correta. Afinal, nos dados de teste haverão apenas modelos de carros que começam, digamos, com as letras S, T, U, V, X, Y, Z (final do alfabeto).
A solução para este problema está na aleatoriedade. Selecionando os dados de maneira aleatória não haverá padrão algum no momento da divisão dos dados, e cada observação terá a mesma probabilidade de ser selecionada.
Tanto a linguagem de programação R quanto o Python já possuem funções prontas para esta finalidade, tornando esse processo extremamente simples e confiável. Na aula 12 de nosso curso de R para Machine learning gratuito realizamos uma separação de dados em treino e teste na prática. Basta clicar no link do curso e acompanhar. Em Python, fizemos isso nesta aula.
No vídeo abaixo você pode conferir o mesmo conteúdo deste artigo:
Como continuar aprendendo
O assunto de dados de treino e de teste é apenas o começo de uma jornada incrível no mundo do machine learning.
Se você quer dominar rapidamente esse universo, começando do zero até assuntos avançados, aprendendo com exercícios, ótimas explicações e muita didática, conheça nosso curso de machine learning com Python – módulo I, ou a versão com linguagem R – módulo I, para quem prefere linguagem R em vez de Python.
O módulo I tem como objetivo apresentar os principais conceitos do machine learning, juntamente com algoritmos famosos, resolvendo problemas reais.
Depois, no módulo II, utilizamos algumas técnicas mais avançadas de machine learning, juntamente com algoritmos avançados que não exigem grandes recursos computacionais.
Nos módulos III e IV, cobrimos redes neurais, deep learning, visão computacional, processamento de linguagem natural, aprendizado por reforço, GANs e tudo que há de mais avançado nesse ramo.
Confira todos os nossos cursos aqui.
Outros artigos relacionados: