Incorporar novos dados no modelo de Machine learning
- Posted by Rochelle Silva
- On March 13, 2017
- 0 Comments
- big data, machine learning, R
Este post vem no seguimento da primeira talk do evento #ClubeOracle3 no passado dia 7 de Março, ”Concept of machine learning towards business”.
Nesta talk foram esclarecidas questões como: O que é o machine learning?; O papel do machine learning em diversas áreas, nomeadamente no sector de negócios; O processo para criação de um modelo de machine learning para fazer previsões para novos dados. Mas existem, na realidade, questões muito pretinentes que se seguem: Tendo um modelo optimizado e implementado podemos continuar sempre a usar este modelo? Como saberemos que obtendo novos dados o modelo continua a ser bom para fazer as previsões?
Na realidade, a resposta a estas questões dependerá dos dados que a empresa tem. Se os novos dados não diferem muito dos que foram usados para implementar o modelo de predição então não há razão para não continuar a confiar no modelo criado e optimizado. Por exemplo, no caso de dados meteorológicos, estes não se alteram muito de ano para ano. Neste sentido, tendo um modelo de previsão optimizado será possível usar o mesmo modelo durante vários anos e possivelmente fazer-se algum retraining esporádico. No entanto, haverá concerteza diversas situações em que os novos dados são diferentes e poderão ser importantes para incorparar no modelo, nesse caso faz todo o sentido fazer-se uma adaptação ao modelo tomando em conta os novos dados.
Existem essencialmente duas formas para tal:
- Uso de algoritmos de aprendizagem incremental ou online
Adapta o modelo a cada dado, mas não com re-training. Algoritmos como as árvores de decisão e o SVM apresentam uma versão incremental que permite fazer um upgrade do modelo de predição tomando em consideração os novos dados de forma automática. As bibliotecas SVMheavy e LaSVM são exemplos de bibliotecas do SVM que suportam a aprendizadem incremental. Esta opção poderá ser bastante útil no caso de big data porque não se está a treinar com todos os dados, contudo está ainda em fase de desenvolvimento.
- Treino periódico com aprendizagem offline ou mini-batch training
Nesta opção faz-se o re-training através de um algoritmo que por usa vez pode ser:
- Offline: o algoritmo aprende de novo com todos os dados antigos mas neste caso adiciona os novos dados e gera um novo modelo. Obviamente que se os dados forem muito extensos esta opção não será apropriada.
- Mini-batch: aqui espera-se até ter um determinado número de novas observações e depois treina-se o modelo já existente com este novo set de dados.
Em suma, é essencial analisar se os dados que temos em mão alteram-se drasticamente ou não (algumas tools podem ser usadas para testar este aspecto). Se se verificar que de facto os dados se alteram bastante, então nesse caso será relevante tomar em conta um re-training do modelo de predição.


0 Comments