O desenvolvimento de sistemas, que usam algoritmos de aprendizagem de máquina, segue um fluxo diferente das abordagens tradicionais. A fonte dessa diferença reside na premissa básica de qualquer algoritmo de aprendizagem: extração de conhecimento a partir de dados históricos. Assim, são descritas a seguir, cinco etapas para a construção de soluções que baseiam-se em aprendizagem de máquina.
Dado que os algoritmos de aprendizagem de máquina “aprendem” a partir de dados, a primeira etapa é a aquisição dos dados. O conjunto de informações coletadas pode ser armazenado de várias maneiras: sistema gerenciador de banco de dados, planilhas, ou mesmo em arquivo texto. Importante ressaltar que esses dados serão usados para treinar/calibrar o modelo (a máquina de aprendizagem), logo, devem representar toda a diversidade da tarefa sob investigação. Em outras palavras, não conjecture que o sistema irá classificar um pássaro como sendo beija-flor-tesoura, nome científico eupetomena macroura, se nenhum beija-flor dessa espécie está presente nos dados.
Os dados coletados na etapa anterior devem ser tratados com o intuito de prepará-los para o processo de treinamento do algoritmo de aprendizagem. Alguns procedimentos comuns são: seleção de variáveis, redução de instâncias, extração de características, imputação de dados faltantes e análise de outliers. Vale salientar que esse processamento, muitas vezes, está atrelado ao algoritmo de aprendizagem que será usado na etapa seguinte. Isso se dá, pois, algoritmos diferentes, possuem requisitos diferentes. Por exemplo: alguns algoritmos lidam apenas com dados que estejam representados com valores numéricos, outros apenas com valores categóricos. Logo, é necessário converter variáveis categóricas em numéricas, ou vice-versa, dependendo do algoritmo.
Nessa etapa, o algoritmo de aprendizagem de máquina, que melhor adere aos dados, é escolhido para treinar o modelo. Essa escolha deve levar em consideração vários pontos, entre eles: quantidade de instâncias e de variáveis no banco de dados e existência de desbalanceamento entre as classes. Além disso, deve-se atentar ao tipo de aprendizagem: supervisionado, não-supervisionada, semi-supervisionada ou por reforço. E, no caso de ser supervisionado, se o problema é de classificação ou de regressão. Dentre os modelos mais comumente usados, é possível citar: árvore de decisão, redes neurais multi-layer perceptron, random forest, support vector machines, k-nearest neighbours, XGBoost, logistic regression, k-means, naive bayes, apriori e expectation-maximization. Por fim, vale destacar os sistemas de múltiplos classificadores (ensemble learning) que, ao invés de usar apenas uma máquina, combinam várias máquina de aprendizagem, a fim de melhorar a precisão final do sistema.
O modelo treinado deve ser avaliado para que seja possível predizer sua precisão em uso. Várias medidas podem ser usadas para aferir a performance do modelo e, a escolha da medida depende da tarefa que se deseja resolver. Exemplos de medidas: acurácia, f-score e curva ROC. Vale ainda frisar que o modelo deve ser avaliado com dados diferentes dos que foram usados para treiná-lo. Assim, os dados devem ser divididos em dois conjuntos disjuntos: treinamento (usada para treinar o modelo) e teste (usado para avaliar o modelo). Quando a estimative de desempenho de um modelo, em dados nunca vistos (dados de teste), é otimista, diz-se que ocorreu overfitting. Esse é, provavelmente, o maior problema de aprendizagem de máquina.
Após a avaliação do modelo, caso o desempenho esperado não tenha sido alcançado, faz-se necessário aperfeiçoar o modelo. As possíveis causas dessa inadequação devem ser investigadas e, caso necessário, retorna-se para a aquisição de novos dados (etapa 1), para o processamento dos dados de um forma diferente (etapa 2) e/ou para o treinamento de um novo modelo, possivelmente, usando um algoritmo de aprendizagem diferente (etapa 3).