Uma pipeline de machine learning nada mais é que uma sequência de etapas que devem ser executadas para treinar um modelo de machine learning e poder utilizá-lo para fazer previsões. Neste artigo mostrarei as etapas principais para desenvolver sua pipeline.
Análise exploratória
A análise exploratória consiste em investigar os dados para entender melhor o problema que estamos tentando resolver. É importante entender como os dados estão estruturados, quais são as variáveis, quais são as relações entre elas, quais são as variáveis mais importantes, etc. Esta etapa não faz parte da pipeline de machine learning, mas é importante para que possamos entender melhor o problema e seus dados para conseguir encontrar as melhores abordagens para desenvolvimento do modelo.
Pré-processamento
A etapa de pré-processamento tem como função preparar os dados para as etapas de treinamento e/ou inferência. É nesta etapa que são corrigidos e ajustados os dados com base no que foi encontrado na análise exploratória. Os algoritmos utilizados nesta etapa vão depender do tipo de problema que estamos tentando resolver. Por exemplo, se o problema for de classificação, podemos utilizar algoritmos de redução de dimensionalidade, como o PCA, para reduzir a dimensionalidade dos dados e facilitar o treinamento do modelo. Se o problema for de regressão, podemos utilizar algoritmos de normalização, como o MinMaxScaler, para normalizar os dados e facilitar o treinamento do modelo. Além disso, nesta etapa é importante definir estratégias para lidar com dados faltantes, pois eles podem ocorrer no ambiente de produção e podem causar problemas no modelo.
Validação de dados
A validação de dados é uma etapa importante para garantir que os dados estejam corretos e que não haja nenhum problema que possa causar problemas no modelo. Esta etapa é importante para garantir que o modelo não seja treinado com dados incorretos e que o modelo não seja utilizado para fazer previsões com dados incorretos. Nesta etapa testes são aplicados nos dados para garantir que eles estão da forma esperada pelo modelo. Por exemplo, se o modelo espera receber dados numéricos, podemos testar se os dados recebidos são numéricos. Se o modelo espera receber dados categóricos, podemos testar se os dados recebidos são categóricos. Se o modelo espera receber dados com uma determinada quantidade de colunas, podemos testar se os dados recebidos possuem a quantidade de colunas esperada. Testes unitários podem ser utilizados para certificar que os dados estão como esperado e outros tipos de testes podem ser aplicados até para detecção de data drift.
Separação de dados
A separação dos dados é uma etapa crucial no desenvolvimento de modelos de machine learning, essa etapa envolve a divisão dos dados disponíveis em dois ou três conjuntos distintos. Os dados podem ser divididos em um conjunto de treinamento e um conjunto de testes, porém muitas vezes o conjunto de treinamento é dividido em um conjunto de treinamento e um conjunto de validação.
O conjunto de treinamento é usado para ajustar os parâmetros do modelo, ou seja, é com esse conjunto que o modelo aprende a relação entre as variáveis de entrada e saída. Já o conjunto de teste é usado para avaliar o desempenho do modelo em dados não vistos durante o treinamento. Quando o conjunto de treinamento é dividido em um conjunto de treinamento e um conjunto de validação, o conjunto de validação é usado para avaliar o desempenho do modelo durante o treinamento, permitindo que o modelo seja ajustado para melhorar o seu desempenho.
A separação dos dados deve ser feita de forma aleatória e estratificada, de modo a evitar vieses na seleção dos dados. Isso significa que a proporção de cada classe presente nos dados deve ser mantida nos conjuntos de treinamento e teste. Além disso, é importante que a quantidade de dados em cada conjunto seja suficiente para representar adequadamente o problema em questão.
Uma prática comum é usar uma proporção de 70%-30% ou 80%-20% para a divisão dos dados entre treinamento e teste, respectivamente. No entanto, dependendo do tamanho do conjunto de dados disponível e da complexidade do modelo, outras proporções podem ser mais adequadas.
Em resumo, a etapa de separação dos dados é fundamental para garantir a qualidade e a generalização do modelo de machine learning, permitindo avaliar a capacidade de generalização do modelo em novos dados.
Treinamento e validação
A etapa de treino e validação do modelo é onde o modelo é treinado com o conjunto de treinamento e validado com o conjunto de validação para avaliar o seu desempenho.
O processo de treinamento envolve a apresentação do conjunto de dados de treinamento ao modelo, que vai ajustando seus parâmetros para minimizar a diferença entre as previsões e os valores reais dos dados. Esse ajuste é feito por meio da minimização de uma função de perda, que é uma medida da diferença entre as previsões do modelo e os valores reais dos dados.
Após o treinamento, o modelo é avaliado com o conjunto de validação para verificar se ele é capaz de generalizar adequadamente para novos dados que não foram vistos durante o treinamento. É importante ressaltar que a avaliação deve ser realizada de forma objetiva e sem viés, utilizando métricas de desempenho apropriadas para o problema em questão.
Se o desempenho do modelo no conjunto de dados de validação não for satisfatório, pode ser necessário ajustar os hiperparâmetros do modelo, que são os parâmetros que controlam o processo de treinamento.
A etapa de treino e validação é um processo iterativo que pode ser repetido várias vezes até que se alcance um modelo satisfatório. É importante lembrar que o objetivo final do modelo de machine learning é ser capaz de generalizar para novos dados e, portanto, a avaliação do seu desempenho em um conjunto de dados de validação é fundamental para verificar se o modelo atende a esse objetivo.
Teste
A etapa de teste é uma das etapas finais do processo de treinamento de um modelo. Nessa etapa, o modelo treinado é avaliado em um conjunto de dados de teste que não foi usado durante o treinamento.
O objetivo principal dessa etapa é avaliar a capacidade do modelo de generalizar para novos dados que não foram vistos durante o treinamento. Isso é importante porque o objetivo final do modelo é ser capaz de fazer previsões precisas em dados que nunca viu antes.
Durante a etapa de teste, o conjunto de dados de teste é passado pelo modelo treinado e as previsões do modelo são comparadas com as respostas verdadeiras do conjunto de dados de teste. As métricas de desempenho, como a precisão, o recall, a F1-score, a acurácia e a curva ROC, são calculadas com base nessas comparações.
Se o desempenho do modelo na etapa de teste for satisfatório, ele pode ser considerado para uso em produção. Caso contrário, pode ser necessário ajustar os hiperparâmetros do modelo ou revisar o conjunto de dados de treinamento.
É importante destacar que a etapa de teste deve ser realizada em um conjunto de dados completamente separado do conjunto de dados de treinamento e validação, para evitar o overfitting e avaliar de forma justa o desempenho do modelo.
Inferência
A etapa de inferência é basicamente a etapa de teste, porém em produção.
Nesta etapa, o modelo treinado é utilizado para fazer previsões em novos dados e como os dados são novos, os dados devem passar pela etapa de pré-processamento e, se necessário, pela etapa de validação de dados. Essas etapas são necessárias para garantir que os dados estejam na forma esperada pelo modelo.
Com os dados formatados de acordo com o modelo, o modelo é utilizado para fazer previsões e as previsões são enviadas para o usuário final, para um banco de dados ou algum outro local para ser armazenado.