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).

Model tuning: Otimizando os hiper parâmetros do modelo

Muitas tarefas devem ser realizadas até chegarmos em um modelo ideal para resolver um determinado problema. No entanto, quando encontramos este modelo ideal ainda podemos tentar refiná-lo, testando diferentes configurações de seus hiper parâmetros. A este processo de refinamento/melhoria damos o nome de model tuning.