Passo a passo Machine Learning (teoria)

Para facilitar a leitura, recomendo que você leia o artigo anterior: Por que usar machine learning nos seus projetos ? Estou utilizando alguns termos já discutidos nesse artigo anterior.

Agora que você já sabe sobre machine learning (ML) e suas vertentes, está na hora de saber o que fazer para começar e o que deve ser levado em consideração quando começar.

Only if you give up

Os algoritmos que geram modelos treináveis em ML não são tão inteligentes quanto a maioria das pessoas pensam. Eles precisam aprender e para aprender precisam de dados. Um modelo treinável precisa também ser testado e avaliado para que possa ser viável.

O processos de preparação de dados, criação de modelos preditivos, avaliação, otimização e predição é chamado de ML Workflow e é essa sequencia de processos que iremos falar nesse artigo.

Photo by: Shawn Ennis
Nesse artigo serão abordado apenas os conceitos teóricos e exemplos com analogias.

Dados, processamento e descobertas.

Os dados são fundamentais para o machine learning, tanto que sem ele seria impossível a evolução e criação de novos algoritmos dessa natureza.

Conseguir dados não é uma tarefa fácil de ser executar, tampouco conseguir MUITOS dados que sejam relevantes aos seus problemas. Dados podem estar das formas mais variadas: completos, com erros ou faltantes.

A aprendizagem supervisionada também requer que os dados estejam classificados e catalogados de maneira correta, o que requer um tempo maior no seu pré-processamento. 
Os algoritmos de ML precisam de uma grande quantidade de dados de preferência sem ruídos, porém, um conjunto de grande dados aumenta o custo computacional.

A globalização e digitalização são responsáveis pela quantidade massiva de dados que trafegam e ficam armazenados na internet, dados esses que são capazes de ajudar em diversas pesquisas e novas descobertas. Os dados podem ser classificados de diversas maneiras, as mais comuns são estruturados e os não estruturados.

Estruturados

São dados bonitos, dados que dão gosto, aqueles com cheirinho de café de manhã de domingo.

É uma qualidade que representa organização, marcação e/ou descrição, ou seja, são dados que ocasionalmente vem rotulados e podem ser compreensdidos por um humano ou computador. Facilitam o processamento e permitem achar correlação entre eles, de modo a ser formar novos padrões ou conhecimentos.

Portanto, dados estruturados podem ser observados em formas de tabelas com linhas e colunas que identificam as informações, isso torna o trabalho bem mais simplificado.

Não Estruturados

Lembra aquele tempo em que você mandava scrap no orkut para seu amigo com o português errado, que quase você não entendia o que estava falando ?

A internet está repleta de dados desse tipo, inclusive a maior parte deles não possui estruturação alguma. São aqueles dados que podem ser compreensíveis para nós humanos, mas, que para uma máquina pode não fazer nenhum sentido, como textos, áudios, vídeos e fotos. As redes sociais são responsáveis por uma grande parte da geração de conteúdo não estruturado, dados que não podem ser classificados em sua totalidade e nem contextualizados totalmente.

Imagine você chegar uma biblioteca onde só há livros em uma língua morta, se você for uma pessoa comum é quase impossível você saber sobre cada história que os livros estão contando. Entretanto, não é o fim do mundo, tampouco uma causa perdida, há diversas maneiras de estruturar esses dados e se você fixou bem os conteúdos anteriores sabe que com aprendizagem não supervisionada é possível agrupar os dados de modo que possa haver um padrão.

Seleção de Atributos

Uma parte importante nesse processo é identificar e selecionar os atributos mais importantes para a solução do problema, esses atributos são responsáveis para gerar um modelo de conhecimento consistente e generalista. É muito comum nesse momento, excluir certos dados para não causar confusão nem overfitting. Reduzir o tamanho dos problemas muitas vezes nos trazem melhorias de tempo, performance e aprendizagem.

Recomendo fortemente a leitura desse artigo que mostra o poder da seleção de atributos, a tabela abaixo representa o ganho de acurácia e processamento de acordo com a diminuição do número de atributos.

Vale lembrar que não significa que irá funcionar para todos os tipos de modelos.
Tabela tirada do artigo: Analysis of Feature Selection Techniques: A Data Mining Approach

O exemplo abaixo mostra os dados com alguns ruídos.

Tabela com ruído

Como você pode ver, temos muitos atributos e será necessário excluir e abstrair alguns para que fique mais fácil e menos custoso computacionalmente.

Tabela Limpa

Na tabela acima, foram tirados os dados: ID number, nome e email. Como são dados diferentes entre cada registro, não é possível o modelo achar semelhanças entre os valores, nesse caso os dados iram atrapalhar o modelo.

Escolha do Modelo

Cada conjunto de dado é individual, ou seja, precisa de modelos de tipos específicos para que se tenha uma boa acurácia ou uma boa generalização.

Cada algoritmo funciona de maneira diferente, com custos computacionais e lógicos diferentes, então há certos tipos de problemas que são melhor resolvidos com cálculos espaciais do que probabilidade por exemplo.

Haverá outro artigo falando somente sobre esses modelos e quando são recomendados.

Treino

It’s more like a brain training

Esse passo está contido na prática de funcionamento do modelo. Para isso é necessário o conjunto de dados limpos ou com mínimo de ruídos e o modelo de aprendizagem. O treinamento é o recurso computacional capaz de criar um modelo baseado em dados, que se torna capaz de classificar ou predizer novos dados.

Avaliação

É um método aplicado ao modelo para checar sua capacidade no mundo real, ou seja, testar esse modelo em dados que ele nunca viu e verificar a porcentagem ou a aproximação da predição do modelo.

Existem diversas técnicas para avaliar seu modelo, cada uma adequada para o seu tipo de dados.

Haverá um artigo explicando na prática cada um deles

Conclusão

Os dados são muito importantes para construir os modelos, mais que isso, são eles que moldam o quão acurado nosso modelo preditivo pode ser.
Existem tipos de dados que dão mais trabalho de processamento e que precisam ser classificados para poder gerar algum valor.

Há certos atributos que são mais importante que outros, certifique-se de que aqueles que representam o modelo estejam com o mínimo possível de ruído e sem dados faltantes.

Do not disappoint the boss

Por fim, teste seu modelo, teste com diferentes técnicas e teste de maneira adequada ao seu problema.



Se você achou esse artigo útil, bata palmas (ou muitas palmas, se você REALMENTE gostou!), para que outras pessoas também possam encontrar o artigo :-)