Um modelo completo de machine learning (de ponta a ponta)

Se você está começando a estudar machine learning, é comum que tenha várias dúvidas sobre como treinar e usar seus modelos. As pessoas falam sobre uma série de termos, como análise exploratória de dados, data transformation, feature selection, model selection, cross-validation…porém, você sabe como e quando deve usar todos estes componentes no seu modelo? E se você precisasse implementar o modelo em um ambiente de produção? Sabe como deveria organizar seu script de treino e inferência? Este artigo foi feito para esclarecer todos estes pontos, com muita prática!

No notebook abaixo, utilizei o desafio do Titanic (https://www.kaggle.com/c/titanic)  para criar um modelo completo de classificação binária. Você vai encontrar as principais etapas necessárias, assim como precauções, para treinar e implementar um modelo deste tipo.

Tentei ser o mais específico possível e também criei uma série de funções que pode te ajudar a automatizar os seus próximos modelos. Portanto, mesmo que já tenha experiência na área, creio que vale a pena guardar este notebook para consulta futura.

Se você realmente quer entrar de cabeça nisso, sugiro também que leia o relatório que também estou compartilhando abaixo. Nele você encontrará um exemplo completo de como reporta/documentar seu projeto de machine learning.

Espero que os materiais sejam úteis, abraços!

Link para o notebook: https://anaconda.org/weslleymoura/titanic_final/notebook

Link para o relatório: relatório completo

Criando sua própria cost function para penalizar overfitting com Python scikit-learn

Cost functions (ou funções de custo) são usadas pelos algoritmos de aprendizado de máquina para tomada de decisões, por exemplo, definir a melhor configuração dos hiper parâmetros de um modelo ou até mesmo escolher as melhores variáveis preditoras/independentes (em modelos de classificação ou regressão).

Métricas para avaliação de modelos

É comum validarmos os modelos de aprendizado de máquina sob duas perspectivas: Processual e matemática. O ponto de vista processual trata a questão da melhoria que o modelo trouxe para o processo de negócio em que o mesmo foi inserido. O levantamento destas informações geralmente está ligado a avaliação de dados básicos como tempo, custo ou lucro do processo antes e depois da implantação do modelo. Eventualmente testes de hipóteses podem auxiliar nestas atividades de comparação.