Ao identificar uma situação em que uma aplicação de aprendizado de máquina é apropriada, tendo como finalidades otimizar algum processo técnico, operacional ou de negócio, e não ter sua organização ultrapassada pela competição, devemos dar os primeiros passos para construir o projeto de maneira adequada.
Veja também
- Inteligência artificial é fundamento para a relevância em tempos de “crescimento exponencial”
- Quando adotar técnicas de aprendizagem computacional?
- Transformação digital fica bem mais difícil quando remuneramos o amadorismo
Isso se dá, primeiramente, com foco no conjunto de dados disponível. [tweet]Nossos dados, na maior parte, nos guiarão no decorrer do desenvolvimento de uma aplicação de aprendizado automático[/tweet]. Por meio de um processo empírico, munidos de métricas como precisão, recall, entre outras, avaliaremos a performance da aplicação de Machine Learning.
Métricas de Avaliação
Precisão, Recall (sensibilidade), F1 Score e Acurácia são métricas utilizadas para avaliar a performance de um modelo de Machine Learning. Sem o uso dessas métricas para otimização do modelo, a aplicação pode ser apresentar vieses, ou erros, que são reconhecidos apenas após a aplicação estar em ambiente de produção.
Após avaliar os resultados obtidos, começamos uma nova iteração no ciclo de desenvolvimento, trabalhando em ajustes de nossa arquitetura, conjunto de dados e outros componentes relevantes da aplicação.
A avaliação da performance da aplicação é um processo que possui como etapa fundamental a divisão do conjunto de dados. Essa divisão pode ser realizada de algumas formas diferentes. Para ilustração, utilizaremos como exemplo a divisão mais comum da literatura, a “80/10/10”. Nela separamos 80% dos nossos dados para realizar o treinamento do modelo, 10% para avaliação durante o desenvolvimento do projeto – também chamado de dev set – e os 10% restantes para o conjunto de testes, que utilizamos para colocar nosso modelo “à prova”.
Você já se perguntou quanto à aplicabilidade dessa divisão “tradicional”? Por muito tempo, a divisão de dados “80/10/10” – ou de proporção semelhante – foi levada como um padrão para o desenvolvimento de modelos de aprendizado de máquina. Essa divisão ainda é aplicável atualmente, quando trabalhamos com imensos conjuntos de dados?
[tweet]Realizar uma divisão equivocada do seu conjunto de dados pode multiplicar o tempo de desenvolvimento do seu projeto de maneira desnecessária[/tweet]. Dependendo do número de amostras disponíveis, você pode estar realizando avaliações de seu modelo diariamente, ou até em frequências maiores, em conjuntos desnecessariamente grandes.
Por mais que possa existir a impressão de que a definição de um modelo para chegar em um determinado resultado é bastante direta, isso não poderia estar mais longe de ser verdade. Sem a adoção de um processo iterativo, não é possível alcançar qualquer tipo de avanço em um problema de aprendizado de máquina. [tweet]Lembre-se: um projeto de aprendizado de máquina é composto por um processo altamente iterativo[/tweet].
Desenvolver um modelo que nos trará resultados satisfatórios é um processo altamente iterativo e, se não estruturarmos nosso conjunto de dados de maneira adequada em relação à quantidade de amostras disponíveis, certamente cada iteração de desenvolvimento acabará custando cada vez mais caro para o seu time.