GithubHelp home page GithubHelp logo

dswp's Introduction

Python Fonte


Instalar e preparar o ambiente para o treinamento Data Science com Python

Instalar Anaconda

Anaconda é uma ferramenta/plataforma para Data Science que permite gerir as distribuições de Python para os sistemas operacionais Windows, Linux e MAC. Então, por favor, instale o Anaconda. Neste tutorial, você vai encontrar os passos necessários para instalar o Anaconda no seu sistema operacional. Ao instalar o Anaconda, você estará instalando um ambiente para Data Science com todas as ferramentas necessárias como Python e suas principais bibliotecas, Jupyter Notebook e Spyder.

Sugestões de leitura:

Download dos dataframes do treinamento

Os dataframes que serão utilizados no treinamento estão aqui. Faça o download dos dataframes para o seu computador (ou Github ou Google Drive).

Jupyter Notebook

JupyterNotebook

Jupyter Notebook é um ambiente computacional web, interativo para criação de documentos “Jupyter Notebooks”. O documento é um JSON com um esquema e contém uma lista ordenada de células que podem conter código, texto, fórmulas matemáticas, plotagens e imagens. A extensão dos notebooks é “.ipynb”. Vamos criar nossos programas Python utilizando principalmente o Jupyter Notebook.

Sugestões de leitura:


Outras ferramentas de Data Science

Google Colab

Se você tem uma conta do Google, você pode executar o Python usando o Google Colab. Esta é uma interessante alternativa para usar o Python on-lines sem qualquer instalação. Adicionalmente, você pode integrar o Google Colab com o GitHub ou Google Drive para guardar seus projetos de Data Science. Você pode usar o Jupyter Notebook no Google Colab , permitindo que você use a GPU Tesla K80, ou seja, 12 GB de memória RAM.

Sugestões de leitura:

GitHub Fonte

GitHub é uma plataforma de hospedagem de código para colaboração e controle de versão, permitindo que as equipes de desenvolvimento trabalhem juntos.

Sugestões de leitura:

Docker

Fonte

Docker é uma alternatia mais eficiente à virtualização que garante maior facilidade na criação e administração de ambientes isolados chamados de containers, tendo por objetivo disponibilizar software/soluções para o usuário final de forma mais rápida.

Sugestões de leitura:


Objetivos do Treinamento

Objetivo Geral:

Machine Learning é a principal ferramenta para a Inteligência Artificial e é um dos campos científicos mais amplamente estudados atualmente. Uma quantidade considerável de literatura foi publicada sobre Machine Learning. Nosso objetivo neste treinamento é fornecer os aspectos mais importantes do Machine Learning usando o Python.

Neste treinamento vamos estudar e aprender:

  • os princípios e técnicas fundamentais de Data Science através de exemplos e casos reais e práticos;

  • Formular uma solução plausível e estratégica para resolver probemas da Ciência de Dados usando o "Data Science Process" incluindo: formulação, EDA (Análise Exploratória de Dados incluindo Feature Engineering), Modelagem (incluindo hyperparameters de tunning e modelos de Machine Learning), Avaliação (incluindo Validação Cruzada), Implantação, Monitoramento e Feedback;

  • Usar EDA para avaliar e entender o impacto das anormalidades de dados (Missing Values e Outliers), bem como aplicar o tratamento apropriado;

  • Usar EDA para identificar variáveis/features redundantes. Nosso objetivo será selecionar as variáveis mais importantes para o modelo e tomada de decisão.

  • Entender o impacto das amostra desequilibradas (Imbalanced samples);

  • Preparar dataframes (conjunto de dados) para aplicação dos algoritmos mais apropriados, quer sejam algoritmos de aprendizado supervisionado e não supervisionado, incluindo a divisão apropriada do conjunto de dados para treinamento, validação e teste;

  • Entender e aplicar as principais transformações de dados;

  • Entender, identificar e aplicar o algoritmo apropriado para um determinado problema, bem como apresentar os prós e contras de cada algoritmo que poderia ser aplicado ao problema;

  • Entender, identificar e aplicar adequadamente a métrica de avaliação dos modelos de Machine Learning;

  • Entender, identificar, evitar e/ou tratar problemas relacionados à overfitting;

Sugestões de leitura:


O que eu espero

  • Todo o material será entregue digitalmente. Não se preocupe em copiar! Gostaria da sua total atenção, pois temos muito conteúdo. Além disso, seu foco é primordial para aprender os conceitos;
  • Faça perguntas! Se alguma coisa (material, explicação e etc) não estiver claro, pergunte-me. Se o material não estiver claro, notifique-me para que eu possa melhorá-lo.
  • Esse material é e sempre será um trabalho em andamento com melhoria contínua. Por favor, ajude-me a melhorá-lo porque ele estará disponível aos demais colegas que não tiveram a oportunidade de estar aqui conosco hoje;
  • Dependendo do rumo que as coisas tomarem, pode ser que eu não consiga cobrir todo o conteúdo do curso, mas prometo me esforçar para cobrir pelo menos os pontos principais da Ciência de Dados;
  • Se você identificar qualquer aplicação deste conhecimento/conteúdo em sua área/departamento, por favor, compartilhe comigo. Mapear as necessidades dos clientes faz parte do processo de melhoria contínua da formação, além de me ajudar a pensar e construir exemplos/estudos de caso/projetos cada vez mais associados à realidade dos clientes;
  • Participe e compartilhe conhecimento, não importa quão tímido (a) ou reservada você seja!
  • Sua contribuição é muito importante;
  • Estou aqui para ajudá-lo, mesmo quando o curso acabar;
  • Seu feedback honesto e sincero é um presente pra mim, não importa o quanto você o julgue difícil;
  • Estou aqui para aprender também!

Fatos importantes

  • Dados nunca estão limpos e é no tratamento e preparação dos dados que o Cientista de Dados gasta aproximadamente 80% do seu tempo. Considere que se "entra lixo --> sai lixo". Mais uma: o melhor algoritmo de ML do mundo não vai resolver o problema caso os dados não tenham qualidade.
  • 95% dos problemas não requerem Deep Learning. Veremos alguns exemplos em que os modelos simples e tradicionais entregam ótimos resultados em comparação com modelos mais sofisticados;
  • Em 90% dos casos, Generalized Linear Models (GLM) vai resolver o problema;
  • Big Data é somente mais uma ferramenta;
  • Sugiro fortemente você abrir a mente para o paradigma Bayesiano. Pelo menos para mim, faz mais sentido; Quer um exemplo?
  • Na maioria das vezes, ninguém se importa com o que você fez. Só querem o resultado.
  • Academia e Business são mundos totalmente diferentes;
  • Apresentação é a chave - Aprenda a vender suas ideias e domine o Powerpoint;
  • Todos os modelos são falsos, mas alguns são úteis. Quotations of George Box
  • Não existe (pelo menos até agora) processo automático para ML, embora existam ferramentas que nos ajudarão a selecionar as melhores variáveis, na maioria das vezes você terá que sujar a mão.

Bibliografia usada neste curso


CRISP-DM PROCESS

CRISP-DM Fonte

CRISP-DM (Cross-Industry Process for Data Mining) é uma metodologia amplamente utilizada e estruturada para o planejamento e desenvolvimento de um projeto de Data Mining.

1BU - BUSINESS UNDERSTANDING

Esta fase é dedicada a entender o que se deseja alcançar a partir de uma perspectiva de negócios. O objetivo deste estágio do processo é descobrir fatores importantes que possam influenciar o resultado do projeto. Há várias metodologias que podem ajudá-lo nesta fase. Sugiro a utilização da metodologia SMART para ajudá-lo nesta fase.

BusinessUnderstanding

SMART

Quais os principais outputs desta fase?

  • Estebelecer claramente os objetivos do Projeto;
  • Produzir o Project Plan (Recursos, limitações, suposições, riscos e etc);
  • Definir critérios de sucesso do Projeto;

2DU - DATA UNDERSTANDING

O foco desta fase está na coleta e exploração dos dados. Lembre-se de que a precisão dos modelos de ML depende da quantidade e qualidade dos dados.

DataUnderstanding

  • Exploratory Data Analysis

Também conhecido por EDA, nesta fase nosso foco está na exploração do dataframe, descobrir relações e descrever os dados em geral. Utilize-se das técnicas de Data Visualization para detectar relações relevantes entre as variáveis, desequilíbrios de classes e identificar variáveis mais importantes.


3DP - DATA PREPARATION

Nesta fase o Cientista de Dados vai investir 80% do seu tempo, pois esta fase é dedicada a coletar, preparar, transformar e limpar dados: remover duplicatas, corrigir erros, lidar com Missing Values, normalização, conversões de tipo de dados e etc.

DataPreparation

  • 3DP_Feature Engineering

Nesta fase temos 2 objetivos: corrigir problemas nas variáveis e derivar novas variáveis.

  • É uma atividade que requer muita criatividade, intuição, conhecimento dos dados e do problema a ser resolvido;

  • Não há um guia ou livros para nos ajudar a projetar e selecionar bons atributos;

  • Muitas vezes o Data Scientist deve consultar o Business Analyst para fazer sentido com os dados;

  • O principal objetivo da Feature Engineering é reduzir a complexidade do modelo;

  • Geralmente aplicar transformaçes como "raiz quadrada", "elevar à 3 potência" ou "log" em certas colunas melhora a qualidade das predições uma vez que estas transformações corrigem a distribuição das variáveis.

  • Transfor e alterar tipos das variáveis;

  • Portanto, Feature Engineering tem 2 objetivos/fases:

    • Fase 1: O foco desta fase é corrigr possveis problemas de preenchimento das variáveis. Por exemplo, considere a variável 'Sexo' com os seguintes preenchimentos: m, M, Male, Men, Man, mALE, MALE, tudo isso para designar o sexo masculino. Isto é um problema de preenchimento e nesta fase vamos corrigir esses problemas.
    • Fase 2: Criar mais atributos a partir dos atributos disponíveis.
  • 3DP_Missing Values Handling

Nosso foco nesta fase é identificar e tratar os Missing Values que neste curso são chamados de NaN (Not a Number). A tarefa de tratar os NaN são também chamados de Imputing Missing Values. Quando estamos diante de uma variável com grande número de NaN's (tanto numricas quanto categóricas) uma prática interessante é construir uma variável indicadora para indicar se aquele registro é ou não um NaN. Veremos isso mais tarde na prática.

  • 3DP_Outliers Handling

Nosso foco aqui é identificar e tratar os Outlier. Tratar outliers significa, por exemplo, descartá-lo/deletá-lo ou imputá-lo usando Média/Mediana/Moda. Outra alternativa é aplicar o Máximo para os Outliers superiores e Mínimo para os outliers inferiores. O Gráfico de Boxplot pode ajudar nesta fase. Uma outra alternativa interessante é usar K-Means para agrupar as observaçes da variável. Neste caso, ter-se-à um cluster com os outliers, tanto superiores quanto inferiores.

  • 3DP_Data Transformation

Significa colocar as variáveis numa mesma escala. Há várias transformações que podem ser aplicadas nesta fase. Principais transformações que podem ser aplicadas nas variáveis:

  • StandardScaler

  • MinMaxScaler

  • MaxAbsScaler

  • RobustScaler

  • Normalizer

    • Aplica as normas L1 ou L2. A norma L2 é default no scikit-learn.

Obs.: As funções matemáticas desta sessão foram escritas com a ajuda do site: https://www.codecogs.com/eqnedit.php?latex=\mathcal{W}(A,f)&space;=&space;(T,\bar{f}).

  • 3DP_Feature Selection ou Dimensionality Reduction

Selecionar os melhores atributos/variáveis para o(s) modelo(s) de ML. Pode-se utilizar Random Forest para avaliar a importância de cada atributo/variável para o modelo.

Sugestão de leitura:


4M - MODELING

Algoritmos diferentes podem ser aplicados ao mesmo problema. Sugiro aplicar o maior número de algoritmos possveis e escolher o que entregar melhor resultados.

Modeling

Supervised vs Unsupervised Learning

Supervised_X_Unsupervised

Machine Learning Map

Machine Learning Map Source: Choosing the right estimator

Modeling With Python

  • Amostras de treinamento e teste

Nesta fase o Cientista de Dados deve selecionar aleatoriamente as amostras de treinamento e teste (ou validação) dos modelos de ML. Geralmente usamos 70% da amostra para treinamento e o restante, 30%, para teste/validação. Outras opções são usar os percentuais 80/20 ou 75/25.

Cross-Validation Fonte

  • Train the Model

Treinar o modelo com os dados significa encontrar o melhor (ou a melhor combinação de algoritmos de ML) que explica o fenômeno sob estudo. Vamos discutir esse tópico com mais detalhes mais tarde.

As informaçes do dataframe devem estar convenientemente organizadas da seguinte forma:

X Fonte

  • Parameter Tuning

Esta fase tem por objetivo otimizar o melhor modelo de ML da fase anterior. Os hiperparâmetros de modelos podem incluir: número de etapas de treinamento, taxa de aprendizado, valores de inicialização e distribuição, etc.

  • Ensemble Methods

Ensemble Methods envolve a utilização de mais de um algoritmo de ML são treinados para resolver o mesmo problema e combinados para obter melhores resultados.

Ensemble Source: Building an Ensemble Learning Model Using Scikit-learn

Sugestão de leitura:


5MSE - MODEL SELECTION AND EVALUATE

Nesta fase identificamos e aplicamos as melhores métricas (Accuracy, Sensitivity, Specificity, F-Score, AUC, R-Sq, Adj R-SQ, RMSE (Root Mean Square Error)) para avaliar o desempenho/acurácia/performance dos modelos de ML. Treinamos os modelos de ML usando a amostra de treinamento e avaliamos o desempenho/acurácia/performance na amostra de teste/validação.

Evaluation

Eu comprei o curso: https://www.udemy.com/course/machine-learning-in-python-random-forest-adaboost/. Dá pra aproveitar alguma coisa?


6D - Deployment

Implementa o modelo (ou conjunto de modelos nos casos de Emsembles Methods).

Deployment

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.