Skip to content

Repo for all the notes that I will write (Jupyter Notebooks) with respect to the book Introduction to Machine Learning by Andreas C. Müller and Sarah Guido (O'Reilly) (PT-BR)

Notifications You must be signed in to change notification settings

nicolasbuen/introduction_to_ml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction to Machine Learning - Andreas C. Müller & Sarah Guido

Essa repo foi criada pra manter todos os estudos que vou fazer para acompanhar o livro Introduction to Machine Learning - Andreas C. Müller & Sarah Guido. Caso você decida estudar utilizando meus notebooks, recomendo o Jupyter Notebook Viewer, uma vez que o GitHub não funciona bem com arquivos grandes como eles.

  • O primeiro capítulo é uma introdução aos conceitos iniciais de Machine Learning e utiliza o Iris dataset para demonstrar um exemplo de algoritmo de Machine Learning de Classificação (nesse caso, foi o k-NN numa situação multiclass).

  • O segundo capítulo é um pouco mais denso por tratar de diversos algoritmos de supervised learning. Por isso, decidi separá-lo em duas partes.

    • A primeira parte revisa o k-NN e apresenta algoritmos lineares de regressão e classificação, como Linear Regression, Lasso Regression, Ridge Regression, Logistic Regression e Linear Support Vector Machines. Além disso, são introduzidos algoritmos mais simples como os classificadores Naive Bayers (GaussianNB, BernoulliNB e MultiomialNB) e mas também outros complexos como Decision Trees e seus Ensembles, como modelos de Random Forest e XGBoost. Discussões sobre implementação, parametrização, forças e fraquezas de cada um dos algoritmos são feitas nessa parte do livro também.
    • A segunda parte apresenta alguns algoritmos mais complexos como o Kernelized SVMs (polinomial e gaussiano), além de dar algumas pinceladas na intuição por trás de Redes Neurais e Deep Learning. Nessa parte, também foram mostrados alguns conceitos relacionados às estimativas de incerteza de previsão de modelos classificadores utilizando funções como a .predict_proba, e como interpretá-las.
  • O terceiro capítulo explica alguns dos principais algoritmos de aprendizado não supervisionado, focando, em primeiro momento, naqueles para pré-processamento (como rescalonanadores) e para redução de dimensionalidade (como o PCA, o NMF e o t-SNE) e, na segunda parte do capítulo, nos algoritmos de clusterização. Para o estudo, foram utilizados datasets sintéticos bidimensionais (permitindo visualização) e um dataset do scikit-learn com rostos de famosos dos anos 2000. Além da aplicabilidade dos algoritmos, também foram discutidas as dificuldades de avaliação em modelos não supervisionados de clusterização.

  • O quarto capítulo apresenta e explica algumas das técnicas mais comuns de engenharia de features: binning, transformações logarítimicas e exponenciais, interações polinomiais e também os clássicos encodings possíveis para variáveis categóricas, como one-hot-encoding e label-encoding.

  • No capítulo cinco, foi discutido métodos de validação cruzada, hiperparametrização através do GridSearch e métricas de avaliação - tudo isso para melhorar os modelos discutidos nos capítulos 2 e 3. Entre os pontos tratados, foi dada muita importância para a forma correta de avaliação de modelos para aplicações reais (utilizando um set de testes completamente separado) e o uso de métricas válidas para o problema do negócio. Na minha opinião, faltou um pouco de atenção às principais métricas de regressão, que não foram tratadas no capítulo.

  • O capítulo seis introduziu a classe do scikit-learn chamada pipeline, uma ferramenta que ajuda a encadear algoritmos de pré-processamento e modelos. Essa classe é muito útil para a realização da validação-cruzada sem que haja vazamento de dados, da mesma forma que aumenta muito o potencial de hiperparametrizadores como o GridSearchCV. No entanto, as autoras não foram tão fundo no assunto e faltou mostrar como é realizada a criação de funções para pipeline utilizando o próprio scikit-learn, além do poderoso encapsulamento de pipelines.

  • O capítulo sete apresentou brevemente o conceito de NLP e alguns passos de pré-processamento simples para tratar dados advindos de textos. Nesse capítulo, utilizamos um dataset contendo 50 mil reviews feitas no site do IMDb sobre filmes, séries e documentários e realizamos análise sentimental simples e modelagem de tópico.

Bibliografia

An Introduction to Machine Learning with Python by Andreas C. Müller and Sarah Guido (O’Reilly). Copyright 2017 Sarah Guido and Andreas Müller, 978-1-449-36941-5.

About

Repo for all the notes that I will write (Jupyter Notebooks) with respect to the book Introduction to Machine Learning by Andreas C. Müller and Sarah Guido (O'Reilly) (PT-BR)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published