Ciência de dados e aprendizagem de máquina com Python — codificação prática intermediária | Jesper Dramsch, PhD | Skillshare
Menu
Pesquisar

Velocidade de reprodução


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Ciência de dados e aprendizagem de máquina com Python — codificação prática intermediária

teacher avatar Jesper Dramsch, PhD, Scientist for Machine Learning

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Introdução à ciência de dados com Python

      3:22

    • 2.

      PROJETO DO CURSO 

      1:35

    • 3.

      O que é a ciência de dados?

      4:44

    • 4.

      Visão geral da ferramenta

      4:15

    • 5.

      Como encontrar ajuda

      14:17

    • 6.

      Dados de | a carregar |

      0:21

    • 7.

      Como carregar arquivos de Excel e CSV

      6:20

    • 8.

      Carregando dados do SQL

      5:11

    • 9.

      Carregando qualquer arquivo de dados

      5:58

    • 10.

      Lidando com dados enormes

      10:15

    • 11.

      Combinando várias fontes de dados

      4:14

    • 12.

      Limpeza de dados | |

      0:54

    • 13.

      Lidando com dados ausentes

      8:05

    • 14.

      Escalonamento e binning de dados numéricos

      12:26

    • 15.

      Validando dados com esquemas

      10:09

    • 16.

      Codificando dados categóricos

      6:39

    • 17.

      | Análise de dados exploratórios |

      7:16

    • 18.

      Exploração de dados visuais

      10:19

    • 19.

      Estatística descritiva

      5:32

    • 20.

      Dividindo dados em subconjuntos

      12:30

    • 21.

      Como encontrar e entender as relações nos dados

      5:51

    • 22.

      Aprendizado de máquina | |

      1:08

    • 23.

      Regressão linear para previsão de preço

      14:30

    • 24.

      Árvores de decisão e florestas aleatórias

      6:59

    • 25.

      Classificação de aprendizagem de máquina

      9:45

    • 26.

      Clustering de dados para obter insights mais profundos

      8:16

    • 27.

      Validação de modelos de aprendizagem de máquina

      10:02

    • 28.

      Interpretabilidade de aprendizagem de máquina

      16:23

    • 29.

      Introdução à justiça de aprendizagem de máquina

      7:47

    • 30.

      Visuais e relatórios da | |

      0:15

    • 31.

      Noções básicas de visualização

      7:23

    • 32.

      52 novo geoespacial

      5:30

    • 33.

      Como exportar dados e visualizações

      6:42

    • 34.

      Como criar apresentações diretamente no Jupyter

      2:38

    • 35.

      Como gerar relatórios em PDF do Jupyter

      3:47

    • 36.

      Conclusão e Parabéns!

      2:04

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

4.703

Estudantes

4

Projetos

Sobre este curso

Você está pronto para aprender as habilidades que estão em alta demanda em todos os setores?

O aprendizado de máquina e a ciência de dados são essenciais para tomar decisões informadas no mundo dos negócios de hoje. E a melhor maneira de aprender essas habilidades é por meio do poder do Python.

Siga o livro de recurso de código gratuito em: Data-Science-Gui.de (sem e-mail)

Python é a linguagem preferida para a ciência de dados e, neste curso, vamos mergulhar profundamente em suas capacidades. Este curso foi projetado para iniciantes e estudantes intermediários, então não se importe se você é novo na programação. Este curso assume algum conhecimento em Python, mas se você preferir uma introdução de alto nível sem aplicação de programação à ciência de dados, eu tenho outro curso: O Master Classes de ciência de dados sem código.

Vamos começar por cobrir o básico da sintaxe do Python e depois passar para o fluxo de trabalho completo de ciência de dados, incluindo:

  • Carregando dados de arquivos e bancos de dados
  • Limpeza e preparação de dados para a análise
  • Como explorar e entender os dados
  • Como criar e avaliar modelos de aprendizagem de máquina
  • Como analisar a rotatividade de clientes e validar modelos
  • Visualizando dados e criando relatórios

Vamos usar bibliotecas de Python populares e disponíveis gratuitamente, como Jupyter, NumPy, SciPy, Pandas, MatPlotLib, Seaborn e Scikit-Learn.

No final deste curso, você não só terá uma sólida compreensão da ciência de dados e analítica, mas também será capaz de aprender rapidamente novas bibliotecas e ferramentas. Então, não espere mais e se inscreva neste curso de mestrado em ciência de dados em Python hoje!

-----------------------------------------

Quem sou eu?

Jesper Dramsch é um pesquisador de aprendizagem de máquina que trabalha entre dados físicos e aprendizagem profunda.

Sou treinada como geofísica e me mudei para a programação em Python, ciência de dados e pesquisa de aprendizagem de máquina durante o trabalho para obter um doutorado. Durante esse tempo, criei cadernos educacionais no site de competição de aprendizagem de máquina Kaggle (parte do Alphabet/Google) e cheguei à posição 81 no mundo todo. Meu caderno superior foi visto mais de 64.000 vezes neste momento. Além disso, ensinei Python, aprendizagem de máquina e ciência de dados em todo o mundo em empresas como a Shell, o governo do Reino Unido, universidades e várias empresas de médio porte. Como uma pequena alavanca em 2020, terminei a certificação de Data Science da IBM em menos de 48h.

-----------------------------------------

Outros links úteis:

Meu site e blog -
https://dramsch.netA newsletter semanal - https://dramsch.net/newsletter

Twitter - https://twitter.com/jesperdramsch
Linkedin - https://linkedin.com/in/mlds

Youtube -
https://www.dramsch.net/youtubeCamera engrenagem - https://www.dramsch.net/r/gear

Conheça seu professor

Teacher Profile Image

Jesper Dramsch, PhD

Scientist for Machine Learning

Professor

 

a top scientist in machine learning, educator, and content creator.

In my classes, you'll learn state-of-the-art methods to work with AI and gain insights from data, along with over 7,000 other students. This takes the form of exploring data and gaining insights with modelling and visualizations. Whether you're a beginner, intermediate, or expert, these classes will deepen your understanding of data science and AI.

I am trained as a geophysicist and shifted into data science and machine learning research, and Python programming during work towards a PhD. During that time, I created educational notebooks on the machine learning contest website Kaggle (part of Alphabet/Google) and reached rank 81 worldwide. My top notebook has been viewed... Visualizar o perfil completo

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução: Ciência de dados em certo sentido, é como uma história de detetive para mim. Você desvenda relacionamentos ocultos nos dados, e constrói uma narrativa em torno desses relacionamentos. Meu nome é Oscar Thomas e sou pesquisador de aprendizado de máquina e cientistas de dados. Passei os últimos três anos trabalhando para meu doutorado em aprendizado de máquina e geofísica. Tenho experiência trabalhando como consultor, ensinando Python e aprendizado de máquina em lugares como a Shell e o governo do Reino Unido, mas também empresas de médio porte e universidades. Toda essa experiência me deu a capacidade de terminar meu certificado IBM Data Science Professional em 48 horas para um curso que deveria levar cerca de um ano. Eu também crio exatamente esses cadernos que você aprende a criar neste curso para ciência de dados e competição de aprendizado de máquina, um tipo chamado Kaggle, que é de propriedade do Google. Lá eu ganhei o ranking 81 em todo o mundo de mais de 100 mil participantes. Após este curso, você terá passado por todas as etapas do fluxo de trabalho de ciência de dados. Isso significa que você poderá recriar toda a visualização e ter todos os trechos de código disponíveis para uso posterior com seus próprios dados em seus próprios relatórios. Faremos um passo a passo muito aplicado. Começaremos do início, começando com a obtenção de seus dados no Python. Isso significa olhar para arquivos do Excel e olhar para tabelas SQL, mas também olhar para esses pequenos formatos de dados estranhos que às vezes podem ser um pouco difíceis de trabalhar. Em seguida, vamos pré-processar nossos dados, limpar nossos dados e fazer análise exploratória de dados ou EDA curto. EDA é aquela parte onde você realmente refinar sua pergunta, e onde nós temos um olhar para as relações em nossos dados e responder essas perguntas. Depois, por diversão, vamos dar uma olhada na modelagem de aprendizado de máquina e como validar esses modelos de aprendizado de máquina, porque neste tempo moderno, isso é mais importante do que nunca. Vamos dar uma olhada em diferentes visualizações de dados, como melhor contar sua história, como gerar apresentações e relatórios para realmente convencer, para realmente pontuar sua história que você pode contar esses dados. Finalmente, vamos dar uma olhada na geração automática de apresentações e relatórios PDF diretamente do Python. Tenho a infeliz falta de me formar em recessão duas vezes agora. Mas Python me deu a capacidade de terminar um PhD enquanto trabalhava como consultor e fazendo esses incríveis portfólios de ciência de dados de classe mundial para mim que agora geraram tanta atenção. É incrível. Um dos meus cadernos foi visto mais de 50.000 vezes. Espero compartilhar isso com você. Sinais de dados para mim é o novo campo super emocionante e Python é muito acessível. Então espero vê-lo na aula. 2. Projeto do curso 01 novo: Bem-vindo à aula e obrigado por conferir. Estou muito feliz de ter você. Esta aula será composta por vídeos pequenos que fazem parte de capítulos maiores, porque assim você poderá voltar e dar uma olhada nos pequenos detalhes e não precisar pesquisar quanto maiores forem as notícias. E cada capítulo será uma das etapas do fluxo de trabalho da ciência de dados. No final. Porque eles apenas senos não são aplicados seno um sobre proteína. E então, neste projeto, você recriará o que fazemos nessas aulas em vídeo. Percorra todo o fluxo de trabalho da ciência de dados e, no final, gere um PDF para uma apresentação com sua melhor opção É bom com seus próprios dados, em um conjunto de dados que eu forneço além disso, e disponibilize todos esses cadernos para uso para que você possa programar durante os vídeos , porque é melhor experimentar. Às vezes você vê algo, quer criar, algo diferente, quer entender melhor. E então, experimentar o código que tenho na tela é realmente a melhor maneira de fazer isso. Nas primeiras duas palestras, quero garantir que todos tenham uma seca inicial igual. Dê uma olhada nas ferramentas. Teremos algumas palestras introdutórias nas quais realmente obteremos objetos africanos. E então começaremos com todo o conjunto de dados. O que foi muito brutal : carregamento, limpeza, análise exploratória de dados e até o aprendizado de máquina. E chamamos de geração. 3. 02 O que é a ciência de dados novo: Nesta aula, analisaremos ciência de dados a partir de duas perspectivas diferentes. Então, há uma em que veremos o que realmente constitui que eles projetaram para agir. Quais são os fundamentos importantes? E há a outra, a abordagem do processo. Como você realmente trabalha com cientistas de dados? Definir a ciência de dados como algo incrível porque é uma disciplina tão nova que todo mundo tem uma chance de contrair leucemia diferente. E gostei da forma como Jim Gray, o Prêmio Turing, basicamente o define como uma placa Ford Pinto. E essa ciência de dados ou tecnologia da informação. E três, Need Changes Everything about science. E acho que o impacto das decisões baseadas em dados sobre sinais e negócios mostrou minhas formas favoritas de ver a ciência de dados, a hierarquia das necessidades da ciência de dados por meio de cuidados indesejados arruinam nossos dentes. E ela realmente a define como essa pirâmide. Todas as necessidades de nível básico e Ben Wolf, mais necessidades de nicho à medida que você avança. E na base dessa hierarquia de necessidades está a coleta de dados. E temos que estar cientes de que, já em processo coletivo por esse desatualizado, muitas pessoas gostam de pensar que os dados são imparciais, ou seja, verdadeiros. Mas essas realmente não são as meninas. Muitas vezes, mesmo assim, os sistemas físicos distorcem nossos dados, são lidos coletando e depois nivelando o dente, movendo-o e armazenando-o em grandes dimensões. Portanto, garantir que tenhamos armazenamento confiável, lentidão confiável de dados, um processo de extração, transformação e carregamento de ETL processo de extração, transformação e carregamento para realmente ajudar a infraestrutura da ciência de dados. O próximo nível da categoria é explorar e transformar dados. Então, fazendo a detecção de anomalias na limpeza, preparando nossos dados para o MLS real. quarta etapa é agregar e rotular os dados, decidir as métricas que usaremos e analisar os recursos e os dados de treinamento A etapa final do painel é fazer a modelagem real. Então, fazendo testes de AB, testando entre uma versão do site e outra e experimentando algoritmos simples de aprendizado de máquina para obter informações privilegiadas para modelar os dados e criar previsões baseadas na ponta da pirâmide: cabeças, IA e pessoas balançando a cabeça. Então, as coisas realmente interessantes, mas também aquelas que maioria das empresas realmente não pensa. Isso também resume aproximadamente quanto tempo você deve gastar em cada etapa dentro do perímetro. Portanto, se você não gastar tempo adquirindo dados ou pensando em dados, provavelmente terá um problema no futuro. Outra forma de analisar as ciências de dados fazendo perguntas. O processo de ciência de dados consiste basicamente fazer perguntas sobre seus dados. E é uma abordagem muito iterativa. Então, no começo, você faz a pergunta, adquirindo esses dados, mas como os dados são realmente amostrados? Isso entra nos dados dos compradores. Quais dados são relevantes e, em seguida, você explora os dados para a análise exploratória de dados. Andrey inspeciona. Às vezes você tem que voltar. É um processo iterativo. Durante a exploração, você verá que alguma fonte de dados realmente ajudaria as informações que você tem em seus dados. Então você vai e volta entre as etapas. Em seguida, você modela os dados, constrói um modelo simples de aprendizado de máquina ou apenas a hierarquia de necessidades e realmente obtém insights modelando seus dados com algoritmos simples. Finalmente, e isso não faz parte da hierarquia de necessidades, mas definitivamente faz parte do processo de ciência de dados para comunicar seus resultados. O que aprendemos? Como podemos entender os dados? Quais são nossos insights? E como podemos convencer as pessoas dos insights sobre como todos sabemos que, às vezes, saber a verdade não é suficiente. Você precisa contar uma história convincente para convencer as pessoas da ciência de Jane e realmente causar um impacto nos dois lados do dia. Portanto, esta aula mostrará todo o processo e também como gerar essas histórias desatualizadas. 4. 03 Visão geral da ferramenta novo: Vamos ter uma visão geral das ferramentas que estamos usando nesta aula. Obviamente, tudo relacionado à ciência de dados será universal. Mas também aprender Python é extremamente valioso para seu conjunto de habilidades. Python ganhou muita popularidade porque é gratuito, é de código aberto, é muito fácil de usar e pode ser instalado em praticamente qualquer dispositivo. Portanto, Mac, Windows, unix, seu telefone, mesmo que não seja um problema. E seu código de magreza para humanos. Então, muitos lugares, Google Ads, YouTube, Instagram, Spotify, todos eles usam pelo menos o Pub Python porque é muito fácil atrair novas pessoas para o Python. Porque se você escrever um bom código em Python, ele quase pode ser lido como texto. Instalará o Python 3.8 usando a instalação do Anaconda. Anaconda é bom porque distribui muitos pacotes de ciência de dados que já precisamos e é gratuito. Se você estiver em uma versão posterior do Python, tudo bem, desde que seja Python, talvez esteja se perguntando se precisa instalar algum tipo de IDE ou algum tipo de compilador para Python. E esse não é o caso. Usaremos o Jupiter, que é uma interface baseada na web para Python e torna o ensino Python e o caminho de aprendizado extremamente fáceis. E a partir disso, você sempre pode ir para outro editor. Um dos meus favoritos é o código VS. Ficou muito bom para o desenvolvimento em Python. E o código VS realmente conta com um intérprete. E o código de visualizações , na verdade, também vem com uma extensão para Júpiter. Mas isso fica para mais um dia na base de tudo o que fazemos neste NumPy, é biblioteca de computação científica e Python. E não vamos interagir diretamente com isso, mas eu quero que você saiba que está lá. Então, sempre que você precisa fazer algum tipo de cálculo, você pode fazer isso em Python. Ele tem sido usado para encontrar buracos negros. Ele é usado para análises esportivas e para cálculos financeiros. E é usado por todos os pacotes que usaremos neste curso. Você notará rapidamente neste curso que tudo o que fazemos depende dos pandas. Pandas é uma ferramenta poderosa que é uma espécie de mistura entre Excel e SQL para mim. E é realmente uma ferramenta de análise e manipulação de dados. Então, armazenamos nossas informações com colunas mistas em um DataFrame. E esse DataFrame então pode ser manipulado, alterado adicionado apenas a essa ferramenta para a parte de aprendizado de máquina e a validação do modelo ao usar o scikit-learn e bibliotecas construídas com base no scikit- saiba, Scikit-learn mudou muito a forma como fazemos aprendizado de máquina e possibilitou parte do grande boom que vemos nos interesses do aprendizado de máquina no mundo no momento. Matplotlib é uma ferramenta de visualização de dados e usaremos principalmente bibliotecas baseadas no matplotlib. Mas é muito importante saber que ele está lá e tem uma extensa biblioteca com exemplos nos quais você pode dar uma olhada no que deseja criar. Seaborn como uma única dessas bibliotecas que se baseiam no matplotlib. E é extremamente poderoso pois geralmente é necessária uma única linha ou duas linhas para criar visualizações de dados muito bonitas de seus dados estatísticos. Essas são as ferramentas fundamentais que usaremos a ciência de dados. Existem de código aberto, são gratuitos e são os grandes. Mas também usaremos algumas outras ferramentas menores das quais eu aprendi a gostar muito, mas vou apresentá-las ao longo do curso. A documentação dessas ferramentas de código aberto é incrível porque também foi criada por voluntários como eu. Eu escrevi parte dos pandas e da documentação do scikit-learn, e você descobrirá que é muito útil com alguns pequenos exemplos interessantes que realmente farão você entender melhor o código. Se você os estiver usando em um ambiente corporativo, eles ainda são gratuitos. Mas considere se tornar um defensor patrocínio, porque esses pacotes realmente dependem de desenvolvedores pagos e mantenedores principais. 5. 04 Como encontrar ajuda nova: Pode ser muito assustador fazer este curso. Eu entendo totalmente. Estou constantemente aprendendo. Estou fazendo esses cursos e ficar sozinho nesses cursos é terrível. Mas o Skillshare tem a página do projeto onde você pode pedir ajuda. E nesta aula também veremos todas as maneiras diferentes, como você pode encontrar ajuda e como aprender a se ajudar. Porque todo programador dirá que ficou cada vez melhor em programação. Primeiro, eles aprenderam a pesquisar no Google os pagamentos do RIF. Para começar, daremos uma olhada no caderno de Júpiter porque o caderno de Júpiter quer nos ajudar diretamente. Portanto, se tivermos algum tipo de função, até mesmo a função de impressão, podemos usar Shift Tab. E quando o pressionamos, uma vez, ele abre, basicamente a descrição básica, então obtemos a assinatura da nossa função. Isso significa imprimir esse nome. Esse é o primeiro argumento e, em seguida, o ponto-ponto é pequeno. E esses são os argumentos das palavras-chave. E ele devolve a primeira frase, eu sou a primeira frase da documentação na docstring. Portanto, embora possamos pressionar Shift Tab várias vezes, duas vezes, basta abrir toda a docstring. Três vezes faz com que That's the docstring fique aberta por mais tempo e você também pode clicar aqui. E tudo isso. E quatro vezes vou jogá-lo no fundo aqui. Assim, você o tem disponível enquanto trabalha e pode simplesmente colocá-lo aqui em seu próprio lado, mas também fechá-lo. E uma adição. Bem, então vamos trabalhar com os Pandas. Então, quando começamos a digitar, muitas vezes podemos clicar em Tab para preenchimento automático. E essa é realmente minha maneira pessoal de ser um pouco preguiçoso ao digitar. Então, quando eu quero importar pandas, posso clicar em Tab e ver que tipo de coisas estão instaladas. Pandas, enquanto o PD está sendo executado aqui, vou lidar com o Control Enter para ficar no mesmo lugar. E Shift Enter. Vai ser executado e me levará para a próxima cela. E aqui eu também posso, então P D agora é nosso pandas. Quando eu clico em ponto e em Tab, ele abre todos os métodos disponíveis no PD. Então, aqui eu posso realmente conferir qualquer coisa, como se eu quiser mesclar algo, eu posso clicar no parêntese, mudar a guia para dentro dela e ler como mesclá-la. Agora, isso pode ser um pouco difícil de ler, mesmo que possamos colocá-lo até o final aqui. E é por isso que existe a documentação do pandas, que é essencialmente construída a partir da docstring com alguns truques de formatação. Então você pode ver aqui que você vê o que é isso, a assinatura disso. E você pode ler e até mesmo dar uma olhada nos exemplos e copiá-los. Uma coisa a saber em software é que esses tipos de códigos que estão aqui, quero dizer, não são nada de bom. Você não precisa muito bem, você realmente não precisa digitá-los. Você pode simplesmente copiá-los e dizer, tudo bem, eu precisava disso. Agora, eu tenho um bom DataFrame com idade, etc. Então, copiar algo assim é muito comum. É exatamente o que fazemos em software. A próxima maneira de obter ajuda é a boa vontade. E às vezes faço a piada de que, em entrevistas, você deveria apenas ter pessoas no Google Python e ver se ele mostra cobras ou se mostra o logotipo do Python. Porque em algum momento o Google começa a conhecer você e mostra cada vez mais Python. E é uma boa maneira de ver que você tem muita experiência em cinco. Então, quando você quer fazer qualquer tipo de pergunta, quando você está preso a qualquer coisa. Como se você tivesse um formato de dados muito obscuro que deseja carregar. Ou você simplesmente tem um erro de que realmente não sabe o que fazer com a cópia. E digamos que você tenha um erro de tipo, por exemplo, basta dar uma olhada aqui e, em seguida, geralmente há um destacado. Mas é claro que o Google sempre muda e você geralmente é direcionado aos documentos. Então, neste caso, são os documentos do Python. E então um dos links também será o StackOverflow. E o StackOverflow é esse site , muito bem, é extremamente útil, mas também não é o melhor lugar para iniciantes porque alguns dos melhores especialistas do mundo estão neste site respondendo às suas pergunta. Mas se sua pergunta não estiver bem formulada, algumas pessoas neste site às vezes podem ser um pouco hostis. No entanto, para navegar e encontrar soluções, como sua pergunta provavelmente já foi feita antes. Se você não conseguir encontrá-la no StackOverflow, tente alterar um pouco sua consulta do Google. Então, você encontra diferentes tipos de resultados, como o tipo de erro de tipo ou se você tem uma cópia sobre o nome completo do erro de tipo e tudo mais. Então, na verdade, você quer rolar para baixo até as respostas. E este não é realmente muito votado. Mas muitas vezes você tem um voto positivo. Então isso é muito, muito popular. E às vezes você pode até mesmo obter respostas aceitas. Tipo, dar uma olhada neste. Aqui você tem uma marca de seleção verde, o que significa que o autor da pergunta marcou isso como a resposta com exceção. E você pode ver aqui que as pessoas se esforçam muito para responder a essas perguntas. Você tem maneiras diferentes de ver isso com exemplos de código e pode realmente verificar o que fazer a seguir com seu tipo de erro. Vamos voltar para Júpiter e fechar este. Porque isso também é algo que eu quero te mostrar. Em Python. As flechas são baratas porque podemos fazê-las facilmente. Se tivermos algo assim, isso nos dirá imediatamente o que está acontecendo. Então, há algo estranho no começo. Mas o que eu realmente faço primeiro em qualquer erro, longo que seja, é uma seta muito curta. Vá até a última linha e dê uma olhada. Oh, ok, isso é um erro de sintaxe e diz EOF inesperado enquanto a política EOF, EOF significa e um arquivo. Então, se você realmente não sabe o que é isso, copie isso, confira o Google e dê uma olhada. Se o Google lhe disser o que é isso. Muitas vezes, a pesquisa do Google é melhor do que a pesquisa em seus próprios sites. E aqui, isso significa que o fim do seu código-fonte foi alcançado antes de todos os códigos serem concluídos. Então, vamos dar uma olhada no nosso código novamente. Aqui. Se fecharmos os parênteses, nosso código estará concluído e funcionará muito bem. Vamos gerar outro erro. Sim, algo que definitivamente não podemos fazer é dividir essa sequência por algum número. Então, se executarmos isso, isso nos dará um erro de tipo. Então, vamos rolar até o final e dizer: Bem, veja o que está acontecendo aqui. E isso indica que a divisão não é possível para cadeias de caracteres e números inteiros. E realmente usar as setas é a sua maneira de discernir por que o Python não gosta do que você escreveu aqui. Já que estamos falando de ajuda e eu não poderei olhar por cima do ombro dele. E a classe que eu dei um erro muito comum que você mesmo pode detectar é que esses notebooks Python não precisam ser executados em ordem. Então você vê o pequeno número aqui ao lado do que foi executado e do que não foi. Vamos dar um pequeno exemplo, adicionar algumas coisas novas aqui. Digamos que aqui eu defina a, N, aqui. Quero definir b. E b será a vezes cinco. E eu passo por aqui, experimento com isso. Eu dei uma olhada na fusão de PD, tenho um erro aqui, o que é bom. Podemos deixar isso por enquanto. Execute esse código, talvez imprima algo. E você pode ver que esses números estão fora de ordem. Isso é importante mais tarde. Então eu executo essa célula e ela me dá um nome de erro, o nome do erro a não está definido. E isso porque essa célula não tem um número. Nunca foi executado. Então, basta notar que você precisa executar todas as células que você faz e o que deseja. Porque. Quando executamos este e depois executamos este, tudo bem. Então, realmente dê uma olhada nos números e na próxima seta. E isso está muito relacionado a isso, é que às vezes mudamos algo em algum lugar como aqui. E mudamos de a para B para seis. E então executamos esse código novamente. E, de repente, damos uma olhada e b é 30, embora a seja cinco aqui. E esse é um dos grandes problemas que as pessoas têm com a execução fora da ordem. E você tem que ter cuidado com isso. Então, ou você só precisa rastrear quais células você fez. E especialmente com isso, como se fosse 107849, fica muito difícil ter isso em mente. Especialmente, você pode excluir essas células. E a ainda estará na memória. Portanto, ainda podemos executar isso apesar das células não existirem mais. Então, às vezes você só precisa ir até o caramelo e dizer reiniciar e limpar a saída, que limpa todas as variáveis e limpa todas as saídas que temos aqui. Então, podemos ir aqui, apertar esse grande botão vermelho e agora temos um caderno novo com todo o código aqui. Agora podemos executar isso para obter todos os nossos erros que temos e ver aqui que a não está definido. Então, basicamente, temos que adicionar uma nova linha aqui e definir uma novamente. Dessa forma, você pode detectar muitos erros em Júpiter dando uma olhada nos números aqui Você esqueceu de executar algo ou o fez fora de ordem? Sim. No total. O que você quer fazer para encontrar ajuda em Python é lembrar do shift tap. Lembre-se dessa guia, preencha automaticamente suas consultas e pode fornecer informações sobre o que é quais métodos estão disponíveis em basicamente qualquer coisa. Então você quer se tornar realmente bom em pesquisar coisas no Google. Em algumas das minhas aulas, algumas das pessoas que eu me tornei um pouco melhor e com quem me tornei amiga riram de mim em algum momento e disseram: “ Sua aula poderia ter sido basicamente apenas no Google isso porque em algum momento todo mundo precisa pesquisar coisas no Google e também há algumas postagens engraçadas no Twitter de mantenedores de bibliotecas que precisam pesquisar no Google coisas muito básicas sobre suas próprias bibliotecas porque nossos cérebros são tão confiáveis e as coisas mudam. E se você quiser ter as informações mais recentes, não há vergonha em olhar para cima quando terminar de pesquisar no Google, de pesquisar no StackOverflow, de copiar algum tipo de código. Você ficará melhor com isso. Agora, todas essas ferramentas para encontrar ajuda e Python e ajudar a si mesmo. E isso fornece as ferramentas necessárias. Mergulhe na ciência de dados com o ciclismo. 6. 10 Carregando novo: As primeiras duas classes serão colocar dados em Python. Portanto, se você tem dados nas tabelas em seu banco de dados SQL, eles não coincidem. Vamos colocá-lo em Python em uma ferramenta chamada pandas, que é essencialmente um excelente esteróide em Python. E vamos pegar seus dados. 7. 11 Carregando arquivos do Excel e CSV novos: Essa é a primeira classe em que tocamos no código. Então, abra seu notebook Jupyter se quiser programar junto. Começaremos com o carregamento de dados. Então, forneci alguns arquivos extras e fontes de valores separados por vírgula CSV e começaremos a carregá-los. Poderíamos escrever isso à mão e eu também mostrarei um exemplo muito mais simples como escrever algo assim à mão. Mas, felizmente, com o Python agora com mais de 20 anos, muitas pessoas já pensaram muito em estender a funcionalidade do Python. Então, podemos usar esses pandas aqui e estender o Python para carregar dados no Python. Então, o que fazemos aqui é dizer que importamos pandas. E isso seria suficiente para, porque usaremos muito os Pandas. Normalmente, damos a ele uma abreviação de algum tipo de pseudônimo. O Pd é muito comum que muitas pessoas usam. E então executamos a célula e agora temos pandas e Python. E para importar ou ler dados, podemos fazer o PD, não ler, clicar em tab e ver todas as maneiras diferentes de carregar dados no Pandas. Neste curso, veremos os mais comuns que encontrei em meu trabalho como cientista de dados. Mas eu vou te mostrar como encontrar os outros também. Porque se não sabemos realmente o que estamos fazendo, sempre podemos dar uma olhada na documentação dos pandas. Embora possamos dar uma olhada em tudo o que podemos fazer com os pandas, já que já lemos X0 aqui, também podemos clicar Shift Tab e dar uma olhada nessa assinatura. E você verá que isso parece assustadoramente semelhante à documentação porque os pandas e todo o Python, na verdade vêm com sua documentação construída. Por isso, é muito independente e muito fácil de usar. Então, no começo, só precisamos fornecer o nome do arquivo onde realmente temos o arquivo. E isso será uma barra de dados que abriga o ponto XLSX, o novo tipo de arquivo extra. E carregar isso será executado. E vemos que temos todos esses dados agora em Pandas. Não a salvamos em uma variável no momento. Mas o que normalmente fazemos quando temos apenas um conjunto de dados temporário, chamamos isso de df. Porque em Python, isso é chamado de DataFrame. Portanto, é basicamente uma representação XO de uma única folha em seu Python. Porque queremos dar uma olhada nisso. Depois. Vamos apenas ligar para o nosso DataFrame e dar uma olhada nas primeiras cinco linhas. Podemos ver aqui os cabeçalhos e nossos dados. Os arquivos CSV são um pouco diferentes porque os arquivos CSV são dados brutos. Vamos dar uma olhada aqui. Eu tenho os dados. Na verdade, podemos dar uma olhada valores separados por vírgula do CSV no bloco de notas porque é apenas texto e é fantástico para compartilhar dados entre sistemas, especialmente se você tiver programadores que talvez não tenha o Microsoft Office disponível. Essa é a melhor maneira de compartilhar dados. Lemos o CSV e podemos simplesmente dar a ele o nome do arquivo novamente. Então, abrigando pontos CSV. E isso deveria, vamos chamar isso de cabeça para baixo. Isso deve nos fornecer os mesmos dados e podemos ver que eles são os mesmos. Mas quero te mostrar um truque muito legal. Se você sabe que alguns dados estão on-line, como este conjunto de dados de artigos médios sobre o free code camp. Na verdade, ele pode colorir o pdf, ler CSV e simplesmente fornecer a URL. Mas isso vai falhar. Vou te mostrar que temos que aprender que setas e Python, tudo bem. É totalmente normal cometer erros. Leia a última linha, passe os dados de tokenização do erro. Então, algo como esperar algo diferente. E você já deve ver aqui que isso não é um CSV, é um arquivo TSV. Então, alguém estava realmente separando isso com abas. E para colocar abas, faça essa barra invertida t como separador. E podemos importar esses dados diretamente da Internet apenas fornecendo a palavra-chave correta. E isso é algo muito importante de ver, muito importante de aprender. Se dermos uma olhada nisso, há muitas palavras-chave que podemos usar. Essas palavras-chave são extremamente úteis e já limpam seus dados. Você pode ver aqui que existe algo chamado NaN. Esse não é um número que precisemos limpar posteriormente durante o carregamento, já podemos dar uma olhada em coisas como queremos pular linhas em branco? Então, na verdade, os pandas têm uma ferramenta muito fácil de usar se você quiser experimentar com esta. Vou deixar isso na seção de exercícios. E você pode verificar se já consegue limpá-lo. Alguns nans também terão uma seção dedicada à limpeza de dados posteriormente. Carregar dados em Python com pandas é extremamente fácil. Experimente com seus próprios dados. Se você tiver um arquivo XL no seu computador, lembre-se de que tudo isso está no seu computador. Nada sai. Assim, você pode simplesmente imprimir pontos em pdf , obter seus dados e brincar com eles. Nesta aula, trabalhamos com o carregamento de tabelas do Excel e valores de arquivos separados por vírgula e até demos uma olhada em como carregar dados da Internet. Na próxima aula, vamos dar uma olhada nas tabelas SQL. Alguns nano trabalham com eles. Sinta-se à vontade para ignorá-lo. A próxima aula será aquela viagem para você. 8. 12 Carregando dados do SQL novo: Os bancos de dados SQL são uma maneira fantástica de armazenar dados e disponibilizá-los para cientistas de dados que trabalham com SQL, o que é demais. Há cursos inteiros aqui no Skillshare que eu vou vincular. Você também pode encontrá-los aqui no caderno. No entanto, é bom ter uma visão geral, pois é muito fácil carregar os dados quando você sabe como fazer isso. E se você trabalhar com SQL, isso será muito valioso para você. A maioria das empresas não armazena esses dados em arquivos do Excel porque o México é copiado, ele é copiado. E de repente você acaba com a versão final, final e final. E provavelmente está no PC de alguém em algum lugar, talvez em um laptop. Em vez disso. Muitos lugares têm bancos de dados. Em um servidor, esse banco de dados que contém todas essas informações de que você precisa. Normalmente, essa forma de acessar informações é chamada de SQL, abreviação de Structured Query Language. Isso é uma linguagem em si. Seria demais explicar isso neste curso. Se você quiser saber mais, há cursos no Skillshare e também há recursos como este, que estão vinculados onde você pode experimentá-los, fazer os exercícios passo a passo, aprender a montar um consulta, obtenha dados em Python de forma avançada. É absolutamente suficiente importar novamente os Pandas. Então, podemos dar uma olhada e há SQL aqui embaixo. O que você pode fazer aqui são , na verdade, três diferentes. Há uma consulta geral, SQL, há uma consulta SQL. Há uma tabela que lê SQL na documentação. Geralmente é um ótimo lugar para começar. Veja se há dois tipos de resíduos. Se rolarmos para baixo, podemos ver que a tabela SQL e a consulta SQL são diferentes . Vamos dar uma olhada na consulta e isso precisa que você escreva uma consulta SQL. Alguns deles podem ser muito simples e podem economizar muito espaço. Portanto, se você tiver um grande banco de dados, a tabela SQL basta carregar a tabela inteira do seu servidor. Além do Pandas, nós realmente queremos importar a alquimia do SQL. E então, abaixo disso, criará a conexão. Então é chamado de motor. E vamos dar uma olhada no que precisamos aqui. Então, se você tiver um banco de dados SQL postgres, podemos simplesmente copiar isso. Esse deve ser o local do seu banco de dados. Aqui. Vamos ler a tabela de sequências só para facilitar as coisas. E agora, se você tivesse seu banco de dados SQL, você pode colocar seu nome aqui, como, por exemplo vendas como a conexão aqui. Se quiséssemos realmente usar a linguagem SQL, teríamos que usar a consulta SQL de leitura. E isso significa que, nesse caso, precisamos definir uma consulta que entre em nossa conexão. Portanto, essa consulta pode ser muito, muito simples. Obviamente, essa consulta pode ser tão complicada quanto você quiser. Então, na verdade, pegamos a string de várias linhas aqui do Python. Portanto, podemos dizer Selecione clientes e gastos totais com vendas. E por ser uma mesa tão grande, queremos limitá-la a 1.000 entradas porque só queremos dar uma olhada inicial e não queremos sobrecarregar nosso computador. Além disso. Queremos dizer que o ano é 2019. Agora podemos copiar tudo isso aqui e selecionar nossos dados do nosso banco de dados imaginário aqui. O uso da consulta SQL é, espero que, nesta aula, tudo se trate. O SQL pode ser bem fácil. Você pode simplesmente obter a tabela do banco de dados e trabalhar com ela no Pandas. Agora, a próxima aula será como carregar qualquer tipo de dado. E mostraremos que os pandas tornam tudo um pouco mais fácil. 9. 13 Carregando qualquer arquivo novo: Às vezes você tem dados estranhos e eu sou geofísico, trabalho com dados sísmicos. E há pacotes que podem carregar dados sísmicos em Python, assim como nossos arquivos CSV. E nesta aula, veremos como carregar qualquer dado e como disponibilizá-lo. Em Python, o pandas é ótimo para tabelas e dados estruturados como esses. Mas às vezes temos formatos de dados diferentes, como apenas um arquivo de texto, imagens ou formatos proprietários. Então, quando eu estava orientando aula na conferência de Python dos EUA, alguém me perguntou sobre esse formato superespecífico com o qual eles trabalham. A primeira coisa que fiz foi pesquisar no Google. Havia uma biblioteca Python para ele, e eu vou te mostrar como usar. bibliotecas Python mais comuns usarão o arquivo de texto. Ao contrário do arquivo de texto que temos aqui, é um CSV, mas ainda é um arquivo de texto. Como você pode ver, o que dizemos está aberto e depois temos que dar a ele o lugar onde está e o nome. Agora vamos mudar a aba para isso. Existem diferentes modos de se levantar. O modo é R. Vamos dar uma olhada no que esses modos realmente significam porque você pode abrir arquivos em qualquer computador, apenas a maioria dos programas faz isso por você. E no modo de leitura, no modo certo e no modo acréscimo. Portanto, certifique-se de que, se estiver lendo dados que não deseja alterar, isso seja definido como r. Vamos deixar isso explícito. Em seguida, damos a esse arquivo que abrimos um nome para que possamos simplesmente chamar esse alojamento. E Python, o espaço em branco é muito importante. Então, agora temos um bloco que vou arquivar foi aberto. E dentro desse bloco, por exemplo, podemos dizer que dados são iguais à habitação de pontos lidos, e isso lê nossos dados. Agora, se sairmos desse bloco, podemos realmente trabalhar com nossa variável sem ter o arquivo aberto. E isso é incrivelmente importante. Muitas pessoas que são novatas programação não sabem disso, mas a maioria dos arquivos só pode ser aberta por uma pessoa e um programa ao mesmo tempo. Se tentar acessar os mesmos dados, isso quebrará os dados. Portanto, é muito importante que você abra seus dados, salve-os em variáveis carregadas no Python e feche tudo. Então, se aderirmos ao estado da variável e sairmos desse bloco, Paul simplesmente executará isso e passará para a próxima célula. Podemos fazer coisas com a bicicleta de dados, dar uma olhada no que está nos dados. E podemos ver aqui que esse é um arquivo de texto sem abrir o arquivo, que é uma maneira muito fácil e acessível de fazer isso. Também podemos dar uma olhada no Housing como nosso manipulador de arquivos aqui. E podemos ver que isso nos diz se a habitação está fechada ou não. Então, aqui, podemos ver que depois que esse bloco for executado, ele será fechado. Vamos dar uma olhada em como isso fica aqui dentro. Então, aqui dentro , não está fechado. Isso significa que podemos ler linhas diferentes e tudo mais. No entanto, em vez de usar apenas o Python open padrão, podemos usar várias bibliotecas diferentes que também nos fornecem manipuladores finais. Então eu posso usar algo como “Estou doente”. Por que IO, do qual você provavelmente nunca ouviu falar antes. E é por isso que eu quero quero mostrar para você bem rápido, que é apenas uma maneira de importar isso. Depois de importar isso, podemos dizer com segue I 0 dot open, dar a ele o arquivo, chamá-lo de S e, em seguida, carregar todos os dados físicos no Python. E depois do sistema deles, o arquivo, mais uma vez, foi fechado e estava seguro. Então, essa é realmente uma maneira muito geral de carregar seus dados no Python. E, como você pode ver aqui, nosso CSV não parece tão bom quanto o do Pandas. Mas com um pouco de processamento, podemos realmente fazer com que pareçam tão bonitos quanto os pandas para que possamos dividi-los, por exemplo , nesses novos caracteres de linha, que são barra invertida n. E podemos ver que isso já dá nós temos todas essas linhas aqui. E podemos continuar dividindo cada uma dessas linhas na vírgula por causa dessa vírgula separada e assim por diante. Mas foi por isso que eu te mostrei primeiro os Pandas. Porque é muito mais fácil. E acho muito bom abordar essas abstrações de alto nível primeiro, mas também ver como fazer o trabalho e vice-versa. E nesta aula tivemos uma visão geral do que o comando width L Can faz e como carregar qualquer tipo de pesquisa de dados por carregadores de dados para os formatos estranhos que às vezes temos. E acho que definitivamente vimos como o Pandas torna isso fácil para nós porque dividir um arquivo CSV como o Vout é muito complicado. E então, limpar os dados como se fossem valores ausentes é ainda pior. E na próxima aula, dê uma olhada em grandes conjuntos de dados. Então, o que acontece quando nossos arquivos ficam tão grandes que não cabem mais na memória Como podemos carregar esses dados e como podemos lidar com eles? 10. 14 dados enormes: É bastante comum que, especialmente em empresas maiores, você tenha conjuntos de dados que não cabem mais na memória do seu computador. Ou que se você fizer cálculos com eles e o cálculo demorar tanto que, essencialmente você empresta e, em alguns casos, demoraria mais do que o Universo já existe. Isso significa que precisamos encontrar maneiras de trabalhar com os dados para torná-los pequenos e com memória. Falaremos sobre isso. Mas também como fazer uma amostra dos dados. Então você tem um subconjunto porque muitas vezes é válido simplesmente pegar uma amostra, uma amostra representativa de big data, e depois fazer cálculos, fazer a ciência de dados com base nisso. E esse é o que estamos abordando. Importaremos pandas como pd e, em seguida, carregaremos nossos dados no df DataFrame com CSV lido. Faremos isso explicitamente agora porque podemos alterá-lo posteriormente para ver as diferenças entre os diferentes procedimentos de carregamento e como podemos otimizar nosso carregamento. Isso nos dá a seguinte pegada de memória de nosso DataFrame carregado, que terá que dizer que profundidade é igual a verdadeira, porque temos alguns objetos lá que precisam ser medidos. Você vê aqui que proximidade com o oceano é muito maior do que qualquer outra coisa. E isso porque a proximidade do oceano contém dados de cadeia de caracteres. Então, sabemos que é categórico. Vamos dar uma olhada na cabeça bem rápido. Aqui mesmo. É categórico e todo o resto são números. Os números são muito eficientes, mas têm cadeias de caracteres e podem consumir muita memória. Se dermos uma olhada nos tipos profundos. Então, nos tipos de dados, vemos que, no momento , a proximidade do oceano é apenas um objeto. Todo o resto é flutuante, então um número. Mas o objeto aqui é o que o torna tão grande na memória, porque um objeto, podemos alterar os tipos de dados do nosso DataFrame quando o carregamos, fará isso dizendo df de proximidade com o oceano porque queremos mudar a proximidade do oceano. Copie tudo isso e substituiremos nossa proximidade com o oceano por esse ponto como tipo. E podemos usar um tipo de dados especial que os pandas têm disponível, chamado de categórico ou de categoria. O que? Isso melhora nosso uso de memória. Profundo é igual a verdadeiro. Portanto, vemos apenas a pegada de memória das colunas. E podemos ver que isso melhora nosso uso da memória da proximidade do oceano significativamente, mesmo abaixo do uso dos números. E é assim que você pode tornar seu dataframe mais otimizado de uma forma simples. Agora, um problema óbvio com isso é que já temos esses dados na memória e depois os estamos alterando. Portanto, a pegada de memória disso ainda é grande. Vamos apenas reduzi-lo depois. O que podemos fazer é alterar os tipos de dados durante o período de pouco tempo. Então, vamos dar uma olhada rápida na docstring. E aí vamos nós. É do tipo D. E atribuiremos um dicionário em que a chave é nossa coluna. Usaremos a proximidade com o oceano novamente. E o valor será o tipo de dados. Isso significa que você pode usar quantos quiser. Eu cometi um erro de digitação lá e um erro de digitação e o alojamento desaparecerão. E usando isso, você também pode atribuir dois números ao tipo inteiro e realmente alterar seu carregamento no momento do carregamento. Então, vamos dar uma olhada na pegada de memória disso. Portanto, USD de pequeno uso de memória, profundo é igual a verdadeiro. E podemos ver aqui que isso automaticamente, no momento do carregamento, alterou nossa pegada de memória do DataFrame. E se, em vez de carregar todo o DataFrame com todas as colunas, todos os recursos disponíveis, optarmos por usar apenas um subconjunto das colunas. Talvez não precisemos de tudo. Talvez não precisemos do preço médio da casa nesta. Então, definiremos um novo DataFrame e carregaremos os dados como sempre. Mas, nesse caso, definiremos as colunas. Então, isso são colunas. E, nesse caso, precisaremos de uma lista. Vamos dar uma olhada, usar longitude e latitude. E também poderíamos usar um total de quartos ou algo parecido, mas usaremos apenas a proximidade do oceano como antes. Basta colar isso na versão editada. Então, na verdade, são os nomes das colunas por entrada da lista e adicionam a proximidade do oceano. Agora, isso vai dar errado e eu quero que você aprenda que é absolutamente normal cometer erros aqui. Porque em Python, os erros são baratos. Podemos ver esse tipo de erro. Diz que não reconhece uma das palavras-chave. E isso porque eu uso colunas em vez de usar Coles. Sinceramente, não consigo me lembrar de todas as palavras-chave porque existem muitas, mas é por isso que temos a docstring e a corrigimos. Analisando o DataFrame, carregamos apenas longitude, latitude e proximidade de osha. Outra maneira muito boa de economizar espaço durante o carregamento. Dessa forma, podemos carregar muitas linhas com apenas algumas colunas. No entanto, às vezes, o problema não é realmente carregar os dados. Todos os dados se encaixam em nosso DataFrame. Mas o problema é fazer o cálculo. Talvez tenhamos uma função muito cara, terreno muito caro que queiramos fazer. Então, teremos que amostrar nossos dados. E o Pandas torna isso extremamente fácil para nós. Cada DataFrame tem a amostra do método disponível. Você acabou de fornecer um número e ele fornece quantas linhas do seu DataFrame você disser. Nisso, vamos dar uma olhada rápida na docstring. Podemos definir um número ou uma fração do DataFrame. E como é um processo de amostragem estocástica, você pode fornecer esse estado aleatório, o que é muito importante se você quiser recriar sua análise e fornecê-la a outro colega ou a outros dados cientista. E então você terá que inserir o estado aleatório ali mesmo. Então, podemos ver aqui que ele muda toda vez que eu executo a célula. Mas se definirmos o estado aleatório para um número especificado, ele pode ser qualquer número inteiro que você desejar. Eu gosto de 42. E veja aqui que esse número é 2048. E se eu executar isso novamente, esse número não muda. Então, é uma coisa muito boa para se acostumar. Se você tiver algum processo aleatório. Esse processo aleatório é ótimo quando você o usa na produção. Mas se você quiser recriar algo, você quer corrigir esse processo aleatório, para que seja reutilizável. O que costumo fazer é entrar na primeira célula em que importo todas as minhas bibliotecas e fixo o estado aleatório e lá como uma variável. E eu apenas forneço essa variável em processos estocásticos. Isso torna a leitura um pouco mais fácil e muito fácil para os próximos cientistas de dados que receberem isso. No entanto, às vezes você precisa usar as ferramentas grandes. Então, usaremos a tarefa de x e não a usaremos aqui, mas você pode experimentá-la no site se tentar agora. E funciona basicamente como DataFrames preguiçosos, então ele não carrega todo o DataFrame na memória quando você aponta para o dataframe ou para os dados. Mas ele sabe onde está e quando você quer fazer a execução, ele fará a execução de uma forma muito inteligente, distribuída até mesmo em grandes clusters. Nesta aula, analisamos como minimizar o consumo de memória dos dados. Então, como podemos carregar menos dados ou como podemos carregar dados com mais eficiência. Também mostrei uma rápida olhada em algumas ferramentas que você pode usar se quiser usar DataFrames preguiçosos, por exemplo , DataFrames que estão em repouso quando você os carrega e, em seguida, quando você faz a computação e faz essa parte em termos de peso. Portanto, é uma forma inteligente de lidar com grandes volumes de dados em repouso. Na próxima parte, veremos como combinar diferentes fontes de dados. Então, como podemos realmente prosperar e fazer com que diferentes fontes de informação realmente façam ciência de dados. 11. 15 Combinando fontes de dados novas: O maior impacto realmente vem da combinação de fontes de dados. Então, talvez você tenha dados de vendas e publicidade e combine esses dados para gerar novos insights. E nesta aula, veremos como podemos mesclar dados, unir dados e acrescentar novos dados ao nosso DataFrame. Como sempre, importaremos pandas como pd e salvaremos nosso DataFrame em df. Agora dividiremos os dados geográficos com latitude, longitude e proximidade do oceano no sublinhado df. Vá, vamos dar uma olhada na cabeça. E podemos ver que são três colunas, exatamente como definimos. E agora podemos nos juntar a ela. Unir fontes de dados significa que queremos adicionar uma coluna ao nosso DataFrame. Então, pegaremos nosso sublinhado df GO e juntaremos uma coluna do conjunto de dados original a ele. Agora, tecnicamente, isso é um pouco enganador, mas está apenas facilitando a demonstração de como fazemos isso. Bem, escolha o preço médio da casa para esta. Vamos dar uma olhada em todo o dataframe. E podemos colocar isso em nosso G. Podemos ver como isso agora contém o DataFrame geográfico original unido ao valor médio da casa da coluna. Isso é um pouco mais fácil do que o normal. Normalmente, você não tem todas as colunas disponíveis, mas você verá como mesclar DataFrames. Agora, embora você possa ser um pouco mais específico, vamos criar primeiro um DataFrame de preço com longitude, latitude e o preço médio da casa. E o que faremos agora, primeiro, mesclar os dois em um único dataframe. Então, pegamos o Geo DataFrame chamado geo dot merge. Vamos dar uma olhada rápida na docstring, como realmente fazer isso. Então, queremos um DataFrame esquerdo e o DataFrame direito. E criamos tudo o que definimos como método. Como se juntar a eles? O método interno significa que mantemos apenas os dados disponíveis à esquerda e à direita. Vamos dar uma olhada rápida no DataFrame esquerdo e no direito. A união natural é a junção interna. Portanto, somente as linhas e as colunas de ambos os DataFrames estão lá, ou seja, estão lá. O da esquerda é tudo da esquerda e somente o da direita coincide. E a junção direita é tudo o que coincide com a direita e a esquerda. A junção externa é tudo. Então, nós o preenchemos com muitos substantivos. E temos que definir a coluna na o DataFrame esquerdo e o direito estão mesclados. Então, tomaremos a latitude neste caso. Portanto, temos algo em que podemos realmente combinar nossos conjuntos de dados. Se você tiver suas fontes de dados, esquerda e a direita devem ser os mesmos dados, mas elas podem ter nomes completamente diferentes ou que funcionem muito bem. Você pode ver que agora tudo está mesclado. Também podemos concatenar nossos dados. Isso significa que usaremos pd dot concat para concatenar e fornecer os DataFrames que queremos combinar em um DataFrame maior. Agora, neste caso, temos dois. Podemos combinar quantos quisermos. E agora, você vê uma boa maneira de adicionar novos dados ou novos pontos de dados às linhas do DataFrame. Onde quer que você não tenha dados, as NANs são fornecidas. No entanto, como queremos unir os dados, fornecemos uma junção e o eixo. E você pode ver que agora tudo está unido em um grande dataframe. Nesta aula, tivemos uma visão geral de como combinar diferentes fontes de dados e gerar um grande quadro de dados para que possamos fazer uma análise combinada. E isso conclui nosso tutorial de carregamento de dados. E no próximo capítulo, vamos dar uma olhada na limpeza de dados. Provavelmente a parte mais importante da ciência de dados. 12. 20 Data Cleaning Introdução novo: Depois de carregar os dados, temos que lidar com os dados em si. E qualquer cientista de data e dados dirá que 90% de seu trabalho é feito na etapa de limpeza. Se você não limpar seus dados completamente, obterá resultados ruins. E é por isso que passamos muito tempo analisando diferentes valores ausentes, valores discrepantes e como nos livrar deles. E como realmente melhorar nosso conjunto de dados após o carregamento. Porque às vezes as medições estão com defeito, às vezes os dados desaparecem ou são corrompidos e, às vezes, temos apenas alguém na entrada de dados que não está realmente prestando atenção. Não importa. Temos os dados que temos e precisamos melhorá-los até o ponto em que possamos tomar boas decisões com base nos dados. 13. 21 Dados ausentes: A primeira etapa do processo de limpeza de dados para mim geralmente é analisar os dados ausentes. Os dados ausentes podem ter fontes diferentes. Talvez esses dados estejam disponíveis, talvez tenham sido perdidos, talvez tenham sido corrompidos. E geralmente isso não é um problema. Podemos preencher esses dados. Mas me escute. Acho que, muitas vezes, a falta de dados é muito informativa por si só. Então, embora possamos preencher os dados com média ou algo parecido, mostrarei como fazer isso. Muitas vezes, preservar essas informações que faltam dados é muito mais informativo do que preencher esses dados. Por exemplo, se você tem uma loja online de roupas, se alguém nunca clicou na categoria de bebês, provavelmente não tem filhos. E isso é muita informação que você pode simplesmente extrair dessas informações que não estão lá. Como de costume, importaremos pandas como pdf. E desta vez importaremos o número que falta, a biblioteca como MS, NO. E leremos os dados em nosso TF DataFrame. O número ausente é essa biblioteca fantástica que ajuda a visualizar os valores faltantes de uma forma muito agradável. Então, quando damos uma olhada no F, podemos ver que o total de quartos tem alguns valores faltantes. Todo o resto parece estar bem. E quando examinamos o gráfico de barras, podemos ver que, para realmente quão bem essa biblioteca funciona, precisamos examinar outro conjunto de dados e há um exemplo conjunto de dados em números faltantes que agora serão carregados. Para ver. Vamos carregar esses dados da colcha. Você também tem isso instalado. Mas, no exercício, você pode ver como obter esses dados. Vamos carregar esses dados de colisão na cidade de Nova York. São colisões de veículos que entraremos em nossa variável. E esses dados têm significativamente mais valores ausentes. Vamos dar uma olhada rápida. Há muitas colunas muito diferentes e já podemos ver que há muitos substantivos para explorarmos com números ausentes. Substituiremos todas as strings nan pelo valor NumPy np dot nan. Numpy é essa biblioteca numérica de Python que fornece muita utilidade. E np dot nan é apenas um tipo de dados nativo em que não podemos ter um número representado em nossos dados. Isso é a mesma coisa que o NumPy faz quando você, é a mesma coisa que os pandas fazem quando você diz para, hum, fornecer valores nan. Nos meus dados. Muitas vezes, isso pode ser de -9,9 a cinco. Mas pode ser qualquer coisa, na verdade. E você pode especificá-lo para o que quiser, que é então substituído como NAM. Então você sabe que é um valor ausente. Então, vamos dar uma olhada em sim, vou deixar isso para mais tarde. Vamos dar uma olhada na matriz. Vemos que há mais colunas aqui e as colunas são muito mais heterogêneas. Portanto, temos algumas colunas com quase todos os valores ausentes. E ao lado também podemos ver qual linha tem mais valores preenchidos e qual linha tem o menor valor preenchida. Desculpe por ser tão baixo. Vamos dar uma olhada no gráfico de barras. E podemos ver quais colunas têm mais dados preenchidos e quais têm mais dados ausentes. Agora, o dendrograma é uma ferramenta fantástica para ver relações em dados ausentes. Quanto mais próxima a ramificação estiver de zero, maior será a correlação dos números faltantes. Isso significa que, no canto superior direito, você pode ver muitos valores que estão faltando juntos. Essa é uma maneira fácil de contar todos os valores que estão faltando nesse DataFrame. Vamos voltar ao nosso DataFrame original, os preços das casas, onde também podemos contar os números nulos. E podemos ver que o total de quartos é o único que tem valores faltantes com 207. Então, além de analisar o conhecimento perdido, podemos extrair valores numéricos disso. Vamos dar uma olhada no total de quartos aqui e adicionar uma nova coluna ao nosso DataFrame, que é o total de quartos corrigidos. Porque eu não gosto de sobrescrever os dados originais. Prefiro adicionar uma nova coluna ao meu conjunto de dados. E aqui dizemos, preencha nossos valores faltantes com o valor médio do nosso quarto total. Como o total do quarto é contabilizado , o valor médio, não faz sentido, é preenchido com o valor mais comum nos quartos. Aí vamos nós. Essa seria a média e essa é a mediana. Felizmente, os pandas disponibilizam todos eles como um método, então é muito fácil substituí-los. Desta vez, vamos substituí-los no lugar certo, mas é preciso ter cuidado com isso. Às vezes, não é a melhor prática fazer isso. E agora podemos ver que o total de quartos corrigidos não tem nenhum valor ausente. Quando analisamos o total de quartos e total de quartos corrigidos aqui. Podemos ver que esses são os mesmos valores. Os valores que existiam não tinham zeros, não tinham nans, não foram alterados. Somente os valores por nan foram substituídos. Nesta aula, demos uma olhada nos números faltantes. Então, o que acontece quando temos dados perdidos? Podemos encontrar relações entre valores ausentes? Então, apenas alguns dados e desaparecem quando outros dados também desaparecem, existe uma relação nos números ausentes em si? Na próxima aula, veremos como formatar nossos dados. Também removemos duplicatas, porque às vezes é muito importante não ter entradas duplicadas em nossos dados. Assim, podemos realmente ver cada ponto de dados por si mesmo. 14. 22 Escalando e Binning novo: Primeiro nesta aula, veremos como escalar os dados. Isso é muito importante porque às vezes algumas de nossas características estão na casa das centenas e outras estão na casa das dezenas ou você pode adicionar pontos decimais. E comparar esses recursos pode ser muito difícil, especialmente quando estamos criando modelos de aprendizado de máquina. Certos modelos de aprendizado de máquina são muito suscetíveis aos fatores de escala. Portanto, colocá-los no mesmo tipo de escala numérica pode ser benéfico para criar um modelo melhor de aprendizado de máquina. Vou apresentar cada fator de escala ou cada método de escala no próprio método para que possamos aprendê-lo de forma aplicada. A segunda parte e essa classe serão os dados em compartimento. Então, isso significa atribuir classes aos dados com base no valor numérico. Neste exemplo, usaremos valor da casa e atribuiremos a ele luxo de médio, alto e baixo custo. Só para poder dar um exemplo de como podemos atribuir classes com base em números. E você verá que isso pode ser feito com métodos diferentes que fornecem resultados diferentes. Como de costume, estamos importando pandas como pd e colocamos nossos dados de habitação no df DataFrame. Crie um pouco de espaço para que possamos realmente escalar nossos dados. Dê uma olhada. Começaremos com um método muito simples. Bem, escalamos nossos dados entre o mínimo e o máximo de todo o intervalo de dados. Então, vou modificar que x será x menos o mínimo de x dividido pelo intervalo. Então, máximo de x menos um mínimo de x. E isso nos dará um valor 0-1. Para a coluna inteira. Escolheremos o valor médio da casa para esta. Então, o valor médio da casa df é nosso x. E teremos que copiar isso algumas vezes. Então, vou ser preguiçoso com isso. X menos o mínimo de x dividido pelo máximo de x menos o mínimo de x. E temos que usar parênteses aqui para fazer isso funcionar. Porque, caso contrário, dividiria apenas a parte do meio. Você pode ver isso aqui. Nossa versão em escala na nova coluna que nomeará o valor médio da casa minmax. Aqui mesmo. Podemos identificar claramente que cometi um erro, não adicionar parênteses à parte superior. Então, quando adiciono parênteses aqui, podemos ver que os dados na verdade escalam de 0 a 1. Agora podemos fazer alguns ajustes reais nos dados. Também existem várias opções disponíveis para fazer o compartimento. Usaremos o primeiro, que é o método pd dot cut, qual você mesmo fornece os valores do compartimento. Então, esses são intervalos discretos em que temos nossos dados com base em limites que colocamos usando o minmax que acabamos criar, porque isso torna nossa vida um pouco mais fácil. Porque então podemos simplesmente definir os compartimentos. 0-1 terá três quartos, então quartis. E isso significa que temos que fornecer cinco valores, incrementos de 0 a 1 e 0,25. Quando executamos isso, podemos ver que os intervalos são fornecidos. Se não quisermos necessariamente que esses intervalos sejam fornecidos , forneça nomes para eles. Então, no caso desses valores, podemos dizer que o primeiro é bem barato. Então temos um valor médio para as casas, um valor alto para as casas, e então estamos no segmento de luxo. Obviamente, você pode definir essas classes como quiser. Este é apenas um exemplo para você dar. Torne isso um pouco mais legível nos dados comuns. Caso contrário, receberemos um erro. Agora, com os rótulos, podemos ver que cada ponto de dados agora está atribuído a uma categoria que nesse caso, os atribui ao preço ou à faixa de preço, e recuado corretamente. E podemos ver que agora temos uma nova coluna com novas classes que poderíamos prever com um modelo de aprendizado de máquina posteriormente. O segundo método que veremos é o método q cap. Isso é um quanta que foi cortado. Assim, podemos definir quantas caixas queremos. E os dados serão atribuídos em medidas iguais a cada compartimento, usarão os dados anteriores. Portanto, os valores da casa são minmax. Agora, no caso da carta de sinalização, não importa qual delas escolhemos porque a escala é linear nesse caso. Então, tudo bem. Mas, para comparar, podemos ver que o compartimento superior agora está entre 0,5, 15,1 em vez de 0,7, 5,1, podemos atribuir os rótulos para torná-lo absolutamente comparável. E podemos ver aqui que agora isso é muito mais luxuoso e 01234 em vez de alto como antes. Então, isso faz uma grande diferença e você precisa estar ciente de como a criança funciona. Eles são muito, muito úteis. Mas sim, é algo que você deve conhecer. Vamos atribuir isso à faixa de preço quantil e recuada corretamente. E temos uma nova coluna com a qual podemos trabalhar. Em vez de fazer isso manualmente, podemos usar uma biblioteca de aprendizado de máquina, scikit-learn, para usar o pré-processamento. Porque, como você viu, às vezes você comete erros, apenas esquece os parênteses. E se já estiver em uma biblioteca , usá-lo evitará esse tipo de erro tolo que terá consequências muito graves se você não os pegar. Do SkLearn, que é a abreviação de scikit-learn. Importaremos o pré-processamento e usaremos os escalares minmax para que possamos compará-lo com nossa escala mínimo-máxima que fizemos manualmente. Usamos a transformação de ajuste em nossos dados. E a transformação de ajuste primeiro estima os valores e depois transforma os valores que ela tem no escalar minmax. Agora estão aqui. Podemos ver que, quero dizer, estou acostumada a ler esses erros, mas, assim como os erros, ruins, você descobre rapidamente o que aconteceu. Você pode pesquisar os erros no Google. E nesse caso, forneci uma mensagem séria e, em vez disso, o scikit-learn esperava um DataFrame. Vamos dar uma olhada, comparar nossos dados. E alguns valores são iguais, outros não. E isso parece ser um erro de ponto flutuante. Vamos dar uma olhada real nisso. O primeiro valor é falso. Então, podemos simplesmente dividir nossa matriz e dar uma olhada. Os primeiros valores são. E aqui podemos ver que o método scikit-learn fornece menos, menos dígitos após a vírgula. Agora, isso não é ruim porque nossa precisão numérica não é tão precisa para ser honesto. Assim, podemos usar o método NumPy, NumPy dot all close para comparar nossos dados com os outros dados. Isso significa que nossos erros serão avaliados com precisão numérica. Se eles coincidem ou não. Basta copiar isso. E podemos ver, sim, de fato, eles coincidem. Portanto, dentro da precisão numérica, eles são de fato iguais. Em vez do escalar minmax, podemos dar uma olhada e há muitos métodos de pré-processamento disponíveis, como o escalar Max app, normalizando transformadores quânticos. Mas um que é muito bom e eu uso com bastante frequência é o escalador padrão. E escolher isso mostrará que é. Na verdade, use exatamente as mesmas extremidades de transformação ajustadas. Você extrai seus dados em vez do escalador padrão. Se você tiver muitos valores atípicos em seus dados, poderá usar bem o escalar robusto dessa classe e ver maneiras diferentes de escalar nossos dados e como atribuir classes aos nossos dados com base nos dados. Então, realmente nos aprofundamos como preparar dados para o aprendizado de máquina e o final. E você verá como fazemos isso em uma aula posterior. Na próxima aula, abordaremos alguns tópicos avançados. Vamos ver como criar esquemas para nossos dados. Portanto, podemos realmente verificar se nossos dados estão dentro de determinados intervalos ou seguem determinados critérios que dissemos que os dados deveriam ter. Se no final, automatizarmos nosso fluxo de trabalho de ciência de dados, isso é muito importante porque logo no início, podemos dizer que nossos dados bem ou que nossos dados mudaram para o que eram antes e que há um problema de controle de dados e controle de qualidade. 15. 23 Esquemas novos: Nesta aula, não examinaremos esquemas. Isso significa que, quando carregamos nossos dados, podemos ver se cada coluna que definimos se encaixa uma determinada classe predefinida ou alguns critérios predefinidos que achamos que esse tipo de recurso deve ter. E exploraremos maneiras diferentes de fazer isso. E o que pensar ao fazer isso. Assim, podemos automatizar nosso fluxo de trabalho de ciência de dados do início ao fim. Além da importação usual de painéis que temos, importaremos a era dos pandas. Obviamente, isso é uma brincadeira com pandas, e é a biblioteca que usaremos neste exemplo para criar esquemas e validar nosso DataFrame. Existem outras bibliotecas, como as expectativas de taxas, que você pode conferir mas, neste caso, duas excelentes. Primeiro, precisamos criar o esquema. O esquema é basicamente nosso conjunto de regras, como nosso DataFrame deveria ser. Então, nesse caso, usaremos um exemplo fácil com proximidade do oceano e faremos com que ele falhe primeiro, dizemos que a coluna deveria ser inteira. Então, recebemos um erro de esquema. E podemos ver aqui que , no final, ele nos diz que estava esperando um int 64. Não estou incomodado, Deus. Se substituirmos isso por uma string, podemos ver que agora ela é validada e está tudo bem. Agora, além do tipo, também podemos fornecer critérios que queremos verificar. Então, digitamos PA dot check. E como queremos verificar se a proximidade do oceano tem apenas alguns valores, copiamos esses valores e dizemos que deveria estar nessa lista. Se validarmos esse esquema, veremos que está tudo bem. Vamos fazer com que falhe. Exclua o compartimento próximo e veremos que há um erro de esquema porque isso não pôde ser validado. Vamos reverter isso, fazer isso funcionar novamente. texto não é a única coisa que precisa ser validada. Também podemos dar uma olhada em outros valores numéricos. Então, se quiséssemos verificar se a latitude está em uma determinada área ou se a longitude está em uma determinada área. Isso faz todo o sentido, você pode verificar se está dentro de certos limites. Vamos dar uma olhada no total de quartos e verificar se é um número inteiro. Agora, agora não é. Mas é claro que podemos fazer com que os dados sejam carregados como inteiros e depois validar os dados. Portanto, nosso carregamento, como sempre, como um número inteiro. Então, o que faremos é definir a coluna e dizer que ela tem que ser um número inteiro. Agora, nesse caso, obviamente, recebemos um erro de esquema porque é uma flutuação no momento. Então, temos que fazer uma conversão de tipo ou recarregar os dados com um número inteiro. Obteremos o CSV do ponto habitacional. E definiremos o tipo de dados para o total de salas a serem int. O problema aqui é que existem em 32s e em 64. Então, quantos bits existem em um número inteiro? E esses têm que ser os mesmos. Então, quando analisamos o erro do nosso esquema, podemos ver que ele espera uma insegurança. Então, vamos importar numpy e definir nosso carregamento como em 64 aqui. E nosso esquema mais uma vez validado porque agora combinamos o tipo. Portanto, se fizermos o carregamento em 64 e no início, podemos combinar isso com 64 que esperamos e com nosso esquema. São apenas coisas que você deve observar quando você está carregando. Outra forma de validar nossos dados usando uma função lambda. Portanto, uma função anônima que pode fazer verificações arbitrárias e retornar valores verdadeiros ou falsos. Nesse caso, começaremos com a idade média de moradia. Faça como uma coluna e adicione o cheque. Agora estou cometendo um erro aqui, infelizmente, mas você verá em um segundo. Portanto, P dot check adicionará lambda n é nossa variável. E verificamos se n é nenhum, nem tudo é nada. E recebemos um erro de tipo aqui. É importante observar isso. Não é um erro de esquema. E isso porque eu esqueci de adicionar uma verificação de tipo aqui. Então, vamos verificar se há flutuação. E agora tudo se valida novamente porque nenhum dos valores idade média da habitação está entorpecido e pode fazer com que ela falhe removendo nenhum. E isso quebrará nosso esquema. Podemos fazer muitos outros testes, testes de função arbitrária aqui, como se nosso n quadrado estivesse acima de zero, o que aconteceria se a matemática ainda estivesse funcionando. Há vários motivos pelos quais você deseja fazer a validação do esquema em DataFrames em tabelas. E é bastante comum fazer isso já em bancos de dados. E é uma boa prática fazer isso no DataFrames. Pode ser que você tenha apenas dados defeituosos ou que os dados mudem de alguma forma. E um exemplo muito simples aqui são as porcentagens. Em geofísica. Às vezes, você precisa calcular a porosidade, por exemplo , de rochas, que pode ser dada como uma porcentagem 0-1, então como um decimal, ou pode ser dada como uma porcentagem, 0-100. Ambos estão perfeitamente bem, mas você precisa usar um para fazer os cálculos corretos posteriormente. Então, vamos criar um DataFrame aqui com porcentagens mistas, onde você verá que isso gerará um erro. Se você validar esses dados. Salve este DataFrame e D de forma simples. E criaremos um esquema para isso. Fazendo com que todos os dados flutuem de 0 a 1. Então, crie o esquema DataFrame e adicione porcentagens para a coluna. E, na verdade, o motivo pelo qual estamos fazendo esse exemplo é para você ver outros dados além dos dados de habitação. Também podemos fazer isso em dados físicos. E para fazer você pensar sobre seus dados, como você pode validar se eles estão de fato corretos. Então, teremos um cheque aqui. E podemos verificar se isso é menor ou igual a um. Mais uma vez, precisamos validar nosso DataFrame no esquema e ver se ele falhará. E o bom é que nossos casos de falha estão claramente descritos aqui. Assim, poderíamos entrar manualmente e corrigir esses dados. Tudo o que podemos corrigir todos os dados que sabemos que estão errados em nossas porcentagens ou reduzir e validar nosso esquema com os dados de entrada corretos. Então, obteremos todos os dados acima de um e dividiremos tudo por 100. Portanto, temos apenas porcentagens decimais. E agora tudo é validado facilmente. Nesta aula, analisamos diferentes esquemas e como podemos validar nossos dados desde o início. E demos uma olhada com um exemplo simples de porcentagens, por que isso é tão importante fazer. Na próxima aula, teremos outra estratégia avançada, que codifica o tópico, que é muito importante para o aprendizado de máquina, mas também pode ser aplicada de algumas maneiras diferentes. 16. 24 Codificação nova: Nesta aula, veremos como codificar nossos dados. Portanto, se tivermos uma variável categórica, como nossa proximidade com o oceano, o processo de aprendizado de máquina geralmente não consegue realmente lidar com isso porque precisa de números. E veremos como podemos fornecer esses números de maneiras diferentes. Além disso, depois de fazer isso, também podemos usar esses números de maneiras diferentes para segmentar nossos dados. Começaremos com os pandas habituais. E então vamos dar uma olhada na proximidade do oceano porque essas são cordas e nossas cordas são dados categóricos. E os sistemas de aprendizado de máquina às vezes têm problemas com a análise de cadeias de caracteres, então você deseja convertê-las em algum tipo de representação numérica. O próprio Pandas tem algo chamado codificação one-hot. E isso é uma codificação fictícia. Então, basicamente, cada valor nas categorias tem sua própria coluna , onde é verdadeiro ou falso. Portanto, cada valor que estava próximo à baía agora tem um na coluna próxima à baía e zero e tudo mais. Vamos mesclar esses dados com o DataFrame original. Então, podemos comparar isso com outros tipos de codificações e ver como podemos brincar com isso. Vamos nos juntar a isso e ao DataFrame deles. E podemos ver aqui perto da baía. Um para a baía próxima, interior é um para o interior e zero para qualquer outro lugar. Como alternativa, podemos usar o pacote de pré-processamento do scikit-learn. Scikit-learn nos fornece objetos codificadores que podemos usar. Então, atribuiremos esse objeto codificador único à tinta e o ajustaremos aos nossos dados. A parte boa desses objetos é que eles têm alguns métodos que são realmente úteis que agora poderão ser explorados. Vamos ajustar isso aos dados exclusivos que temos em nossa proximidade com o oceano. E então veja como esse codificador realmente lida com nossos dados. Depois de ajustar nosso codificador aos nossos valores exclusivos, podemos transformar nossos dados. Se soletrarmos corretamente. Sim, converter isso em uma matriz nos dá uma codificação única para nossos valores exclusivos. Então, apenas um em cada coluna e cada linha. Agora transformando os dados reais. Portanto, não apenas os valores exclusivos devem nos dar algo muito semelhante ao que salvamos no DataFrame. Mais acima. Converta isso em uma matriz. Portanto, temos valores e a quarta coluna. Aqui você pode ver perto da baía. O mesmo. Agora, você pode se perguntar por que estamos fazendo esse trabalho redundante. Mas com esse objeto codificador, como mencionei, temos algumas coisas muito boas que podemos fazer em algumas linhas e podemos usar a matriz que temos de antes. Vou usar o NumPy porque estou mais acostumado a lidar com objetos NumPy. E podemos converter essa matriz agora, o que não é tão fácil com outros métodos, mas como temos esse belo objeto que tem todos esses métodos disponíveis, podemos usar a transformação inversa, forneça essa matriz para essa transformação inversa e recupere as classes reais porque o objeto se lembra da classe em vez de se encaixar nela. E também podemos obter todos os dados armazenados no objeto sem realmente fornecer valores a ele. Então, na verdade, é uma ótima maneira de lidar com o pré-processamento. Obviamente, às vezes queremos algo diferente da codificação one-hot. Pode ser um pouco complicado trabalhar com a codificação One-hot. Então, daremos uma olhada no pacote de pré-processamento e veremos que ele é rotulado por um codificador de etiquetas a risers. Mas agora vamos dar uma olhada no codificador ordinal. O codificador ordinal atribuirá um número em vez do, em vez da categoria. E isso basicamente significa que é 0-1234, dependendo do número de aulas. E você tem que ter cuidado com isso, como em um modelo linear, por exemplo, os números importam. Portanto, quatro seria maior que 04 seria maior que três. Portanto, codificá-lo como um ordinal seria uma má ideia e um modelo linear. Mas agora, para isso, é bom o suficiente, como se usássemos um tipo diferente de modelo mais tarde do que estaríamos completamente justificados em usar um codificador ordinal. Isso marcou nossa última aula e a seção de limpeza de dados. Então, vimos como podemos codificar informações de maneiras diferentes. Assim, podemos usá-lo em modelos de aprendizado de máquina, mas também salvá-lo em nosso DataFrame como informações adicionais. Na próxima aula, veremos a análise exploratória de dados. Então, mergulhando profundamente em nossos dados. 17. 30 Análise de dados exploratória novo: Nesta aula, veremos os relatórios gerados automaticamente. E, muitas vezes, isso pode ser suficiente. Você quer uma visão geral sobre seus dados e os insights mais comuns sobre seus dados e gerará esses relatórios e eles serão reproduzíveis para você em qualquer tipo de conjunto de dados que você tenha. Essa ferramenta é muito poderosa. Depois, também veremos como gerar esses insights por nós mesmos. Porque às vezes você quer saber mais do que este relatório simplesmente oferece. Além disso, se se tratasse apenas de administrar esse utilitário, ciência de dados não receberia isso. Bem, para ser honesto, esse é um bom primeiro passo. Obter essa visão geral sobre seus dados é muito importante. Mas então precisamos nos aprofundar em nossos dados e realmente descobrir os pequenos recursos que precisamos encontrar. Vamos importar pandas e , em seguida, obter nosso DataFrame e a variável DF S que sempre fazemos. Em seguida, importaremos o relatório do perfil da Biblioteca de perfis de pandas. E tenho certeza de que você ficará surpreso com o quão interativo esse processo realmente é de gerar esse relatório. E se você tirar alguma coisa disso, acho que é isso. Esse utilitário realmente elimina muitas coisas que costumávamos fazer manualmente no Pandas. E eu vou te mostrar como fazer isso de qualquer maneira, porque é muito bom entender o que você está realmente fazendo em segundo plano. Mas essa ferramenta é incrível. Assim, você gera automaticamente todas as estatísticas sobre seus dados. Você vê que ele conta suas variáveis e fornece uma visão geral de quantas são numéricas e quantas são categóricas. Observe que não fornecemos nenhum recurso de categoria ou alteração de tipo de dados. E até temos inflamação. Como nossos dados são distribuídos. No entanto, é um pouco difícil de ver em nosso caderno. É por isso que vamos usar uma versão específica do notebook, que é o profile da2 widgets. E aqui temos um widget de visão geral muito bom com as mesmas informações do relatório de perfil anterior. Podemos ver aqui que ele até nos informa o tamanho e a memória e nos diz quando a análise foi iniciada e concluída. Como você pode recriar essa análise. Ele mostra todos os avisos , como correlações altas e altas. Agora, entre latitude e longitude, tudo bem. Valores faltantes. E então, em variáveis, você pode dar uma olhada na distribuição de seus dados. Assim, você pode conversar com os resultados e dar uma olhada no histograma. O histograma também é pequeno lá em cima, mas é muito bom dar uma olhada nele também. E você pode folhear todas as suas variáveis, ver se há valores faltantes à esquerda, se você tem avisos sobre isso. E obtenha realmente todas as informações que você precisa para ter uma visão dos seus dados. Veja se há algum valor comum que aparece o tempo todo. Agora, eram 55 valores, não é mesmo Coleman? Veja os valores mínimo e máximo que você tem. Então, meio que tenha uma ideia do alcance. E quando analisamos nossa renda, que é mais uma distribuição, também podemos ver a distribuição lá. E em nossa característica categórica, a proximidade do oceano, podemos ver algo muito importante. A ilha tem apenas cinco entradas. Portanto, temos um conjunto de dados meio desequilibrado que não há muitas casas na ilha. Em seguida, clicaremos e veremos as interações. Então veja como uma variável muda com a outra. Se analisarmos a longitude em relação à latitude, que é negativamente correlacionada, longitude, longitude, o mesmo valor está sempre positivamente correlacionado. Agora, se analisarmos o valor médio da habitação em relação a todo o resto, podemos realmente ver como elas interagem, como elas mudaram umas com as outras. O total de quartos em relação às famílias, por exemplo, está positivamente correlacionado. Algo bom de saber. E essa é apenas uma ferramenta poderosa para realmente ver cada variável em relação à outra. Em seguida, clicaremos nas correlações. E a medida de correlação linear padrão entre um e menos um é a Correlação de Pearson. E aqui podemos ver o que vimos antes: uma variável em si mesma, então longitude em relação à longitude sempre será uma e todos os outros valores devem estar em algum lugar entre um e menos um. Dessa forma, você pode realmente ver as relações entre os dados. Spearman é um pouco mais não linear, mas geralmente as pessoas preferem velas, duas amostras, e depois há pi k. Então phi é uma medida entre duas variáveis binárias, geralmente alternadas no canto superior direito para ler mais sobre eles. Veja os valores faltantes. E isso pode lembrá-lo de algo que fizemos anteriormente. E eu não sou o único que acha que a biblioteca de números ausentes é incrível, obviamente, porque isso fornece informações muito semelhantes nessa guia. E então também podemos dar uma olhada em uma amostra de nossos dados. Finalmente, leve a isso. Podemos pegar nosso relatório de perfil e gerar um relatório de perfil explorativo. Esse é mais interessante quando você tem diferentes tipos de dados. Então, se você também tiver texto, arquivos ou imagens em seu dataframe, em sua análise de dados. Então, na verdade, isso não é aplicável aqui. Em geral, no entanto, você pode ver que esse relatório já aborda muitas coisas que você deseja saber em sua análise exploratória de dados. Geralmente, você quer conhecer as estatísticas de seus dados, as correlações de seus dados, os valores faltantes em seus dados e realmente ver como os dados impactam uns nos outros e quais dados podem prever cada um. outro. Tudo bem se essa for a única coisa que você tira deste curso. Mas, na verdade, vamos nos aprofundar em como podemos gerar esses tipos de insights por nós mesmos. Nas próximas aulas. Eu mostro rapidamente como colocar isso em um arquivo. Então você tem um ponto de perfil para arquivar e depois dar um nome a ele. E então você obtém este lindo site onde você pode clicar e compartilhá-lo com colegas, onde eles podem dar uma olhada em sua análise. Ele dirá que é o perfil do aprendiz ou está no relatório, e isso é bom. Não use isso apenas como ponto de partida para fazer uma análise mais profunda e realmente inspecionar seus dados. Mas isso tira muito trabalho do nosso trabalho diário de ciência de dados. 18. 31 Exploração visual: Para a EDA, eu gostaria de primeiro ver os gráficos. Então, veremos visualizações que nos dão uma compreensão intuitiva das relações nos dados. Relações entre características, correlações e também as distribuições de cada recurso. E usaremos o Seaborn, o que torna tudo isso extremamente fácil de usar normalmente com uma ou duas linhas de código. Primeiro, estamos importando pandas normalmente e carregando nossos dados. Além disso, carregaremos a biblioteca de plotagem Seaborn. Seaborn é comumente abreviado como SNS. E o primeiro gráfico para nossa visualização de dados será um gráfico de pares. Agora, um gráfico de pares traçará cada coluna contra cada coluna, mesmo contra si mesma. Então, ao traçar o total de quartos contra si mesmo, você obterá a distribuição do total de quartos. E se você traçou contra qualquer outra coluna, obterá um gráfico de dispersão. Esse gráfico de dispersão, assim como a distribuição, podem ser muito informativos. Um dos meus gráficos favoritos para fazer uma visualização, aqui podemos ver que, por exemplo nossos dados de latitude e longitude aparentemente têm dois picos. Portanto, parece que nossos dados de geolocalização estão focados em dois pontos. Podemos ver que existem algumas correlações muito fortes. E no meio do nosso gráfico, isso é porque temos alguma dispersão linear aqui. E todas as outras características que vemos aqui estão distribuídas de certas maneiras , como esta está espalhada por todo o lugar e podemos ver alguns recortes nas bordas. Então, provavelmente alguém pegou no máximo alguns dados. Além do gráfico de pares, podemos criar um gráfico de pares colorido por uma classe. No momento, a única classe que temos disponível a proximidade do oceano em sua exploração para o projeto, seria muito bom se você experimentasse isso, talvez combinasse isso com o exercício de estanho que fizemos. Demora um pouco para carregar. É por isso que eu só amostrei 1.000 amostras agora, porque queremos obter o gráfico relativamente rápido. No entanto, isso dá uma visão geral muito boa como as diferentes classes são distribuídas umas contra as outras. A legenda à direita nos diz quais cores quais. E eu quero diminuir sua latitude e longitude agora porque essas características estão fortemente correlacionadas entre si e, no momento, elas só ocupam espaço em nossos lotes. Portanto, podemos realmente fazer mais uso do nosso enredo, nos livrando deles. Agora, no menu suspenso, tenho que adicionar os x's porque queremos remover isso da coluna. E então nosso gráfico deve ser capaz de traçar com alguns gráficos a menos na grade. Portanto, cada parcela é um pouco maior. E isso já nos dá muitas informações. Portanto, podemos ver que nossos dados estão relativamente igualmente dispersos, exceto pelos dados da ilha. Os dados dessa ilha parecem ter um pico muito acentuado. No entanto, lembre-se de que nossos dados da ilha têm muito poucas amostras. Isso realmente distorce muito os resultados. No entanto, talvez queiramos apenas traçar a distribuição de nossos dados. Para isso, podemos usar o gráfico do KDE, que é a abreviação da estimativa de densidade do kernel. Então, vamos dar uma olhada em como os valores médios de nossas casas são distribuídos. Além desse gráfico, também podemos mais uma vez dividi-lo por matiz. Infelizmente, não há uma boa maneira embutida de fazer isso, como no gráfico de pares. Então, vamos repetir os valores únicos em nossa proximidade com o oceano. E isso é uma solução alternativa, mas gostei muito desse enredo, então vou mostrar como fazer isso de qualquer maneira. E, no meu ensino, geralmente essa questão surge de qualquer maneira. Então, espero que esse enredo funcione, espero que esse enredo funcione para você também. Então, vamos subdefinir nossos dados. Use a proximidade do oceano que seja igual à classe, que é nosso iterador sobre os valores exclusivos. Isso significa que dividimos nosso enredo por nossa classe. No entanto, no momento, a lenda não parece particularmente bonita. Cada lenda diz apenas o valor médio da casa. E, idealmente, gostaríamos que a lenda, claro, dissesse a classe. Assim, podemos fornecer um rótulo aqui que contém o nome da nossa classe. E dessa forma temos um pequeno enredo agradável, tem todas as nossas distribuições. Bem, podemos ver que o interior tem uma distribuição muito diferente da maioria dos outros. E, claro, a ilha está inclinada para a direita, o que indica um preço mais alto. Mas, mais uma vez, não há muitos dados disponíveis, então é um resultado um pouco distorcido. Agora, talvez queiramos dar uma olhada em mais gráficos de dispersão. Fazer um gráfico de dispersão é muito fácil. Bem, podemos até dar um passo adiante. Há algo chamado de gráfico conjunto, onde temos os gráficos de dispersão e a parte inferior. Podemos traçar a distribuição dos dados. Então, normalmente, um histograma, você também pode fazer outros diferentes. Isso é extremamente bom para mostrar como os dados covariam. No caso, por exemplo, do total de quartos e população, vemos uma distribuição muito clara que indica uma tendência basicamente linear. Então, algum tipo de correlação linear entre os dois. E esse enredo é muito fácil. Basta fornecer o recurso, o nome da coluna e o DataFrame e localização marítima muito bem com os pandas. Aqui, você também pode ver que as distribuições e os rótulos são aplicados automaticamente. Este enredo tem algumas opções diferentes. Você já viu que existe uma opção hexadecimal. Também podemos fazer uma regressão linear, então ajuste uma linha de tendência com incerteza aos nossos dados. Assim, podemos realmente ver se um modelo linear realmente se ajusta aos nossos dados ou se outra coisa deveria ser. Agora, aqui podemos ver que valores discrepantes distorcem os resultados, pelo menos, um pouco. Além disso, podemos dar uma olhada em um recurso diferente apenas para ver como nossa regressão linear, por exemplo, muda. Esse recurso parece estar fortemente correlacionado ao total de quartos. Portanto, substitua a população por famílias. E podemos ver que isso é tão linear quanto os dados verdadeiros realmente são. Acho que se agora copiarmos isso sobre a população substituída por famílias , encaixe uma linha. Podemos ver que a sombra atrás da linha basicamente não é visível, então a incerteza basicamente não existe nesses dados. Uma maneira muito boa de ver como nossa regressão linear se ajusta aos dados. Em vez do gráfico de pares, também podemos fazer um mapa térmico da correlação. Então, isso apenas nos dá a representação numérica do nosso coeficiente de correlação de Pearson. E podemos ver que a diagonal é a mesma que deveria ser. Nossa latitude e longitude estão negativamente correlacionadas porque a longitude é negativa. E no meio temos um quadrado de forte correlação que definitivamente devemos investigar. Isso é muito interessante. E, geralmente, também é uma boa maneira de inspecionar seus dados. Podemos copiar isso e brincar um pouco com isso só para mostrar que nada está cozido aqui, você pode realmente brincar com isso, com isso. É um campo de jogo aberto para realmente explorar suas visualizações. Essa magnitude 0-1 agora nos mostra que renda média está altamente correlacionada em comparação com o valor médio da casa. E eu realmente não vi isso antes. Então, só de conferir isso, trocá-lo um pouco pode lhe dar mais informações. Portanto, testar isso a partir do padrão, das visualizações padrão pode ser extremamente valioso. Podemos adicionar anotações a isso. Agora, isso é um pouco confuso. Então, arredondaremos nossos números para o primeiro decimal e veremos que isso parece muito melhor. Você também pode fazer isso com os dados originais. Essa aula deu uma visão geral dos diferentes gráficos que você pode usar para entender melhor seus dados. Na próxima aula, veremos os números subjacentes a esses gráficos e como extrair números específicos que lhe dirão mais sobre seus dados. 19. 32 Estatísticas descritivas: Nesta aula, acompanharemos a visualização que acabamos de receber. Então, vamos dar uma olhada nos números por trás dos gráficos. Estatísticas podem ser um pouco assustadoras, mas na verdade são apenas números significativos ou indicadores-chave de desempenho de seus dados que informam sobre os dados. Portanto, a média, por exemplo, é apenas a média de todos os seus dados, enquanto a mediana, por exemplo é o valor mais comum. E esse desvio padrão, então STD, apenas descreve o quanto seus dados variam. Então, qual é a probabilidade de você encontrar dados fora da média? E vamos explorar tudo isso nesta aula e realmente aprofundar nas estatísticas descritivas e em como obtê-las de seus dados. No início, importaremos nossos dados e, em seguida, poderemos simplesmente calcular estatísticas nas linhas fornecendo a linha. So df dot house, idade média. E então temos a média, a mediana e desvio padrão disponíveis como métodos para calcular diretamente nos dados. A média é a média nesse caso, e a mediana é o valor mais comum. Basicamente, se quisermos obter estatísticas agregadas sobre todo o DataFrame, simplesmente o chamamos de dot describe no DataFrame ou em um subconjunto do dataframe. Isso nos dá a contagem, a média, o padrão e os quartis de nossos dados. Ao brincar com isso, não deixe de conferir a docstring descrita. Você pode fazer muito mais com isso. Então, podemos agrupar por nossos dados. E grupo por ação tem que ser feito por algo que pode ser agrupado por nós. Então, usaremos a proximidade do oceano neste caso. E podemos calcular a média desses grupos em cada coluna. Portanto, isso realmente não faz muito sentido em uma longitude, mas para todos os outros valores, podemos, portanto, levar os grupos às estatísticas. Além disso, podemos usar o método AC para agregar. E aí podemos basicamente definir um dicionário com todas as estatísticas que queremos calcular em uma determinada coluna. Longitude, por exemplo, daremos uma olhada na média mínimo-máxima. E podemos copiar isso para usá-lo também para outros recursos. E, na verdade, você não está limitado a elas e pode até mesmo fornecer funções para esse agregador. E eles também não precisam se sobrepor. Portanto, para o total de quartos, você pode alterar esse valor para ser o valor médio em vez da média. Porque, bem, faz um pouco mais de sentido obter a mediana. E para nossa renda média. Bem, tente entender a distorção de nossa distribuição. E aqui podemos ver que nosso novo DataFrame que sai disso é preenchido com nan, onde nenhum valor está disponível, onde eles realmente não fazem sentido. Mas podemos realmente mergulhar nas estatísticas aqui. Outra pequena ferramenta interessante apenas para dar uma visão geral das colunas são os métodos de contagem de valores. Portanto, na proximidade do oceano, por exemplo, podemos chamar o método de contagem de valores para obter uma visão geral de quantas amostras estão em cada uma delas. É muito bom ter uma ideia de como nossos dados são distribuídos entre as classes. Para os mapas de calor que geramos antes , precisávamos calcular a correlação entre cada coluna e cada coluna. E podemos ver aqui que temos esses dados prontamente disponíveis. E o método de chamada também nos dá a oportunidade de mudar a correlação que usamos. Assim, você pode alterá-lo para spam e, por exemplo muito semelhante ao que tínhamos no relatório gerado automaticamente. Aqui você pode mergulhar nos dados e realmente ver como nossos dados se correlacionam por número. Nesta aula, examinamos estatísticas descritivas, ou seja, números reais, valores médios e como podemos extrair esses números específicos e tomar decisões com base neles. Na próxima aula, veremos os subconjuntos desses dados. Então, como selecionamos partes dos dados e como podemos calcular esses números nessas partes? Porque às vezes, como vimos aqui, Island tem apenas cinco amostras em todo o nosso conjunto de dados. Então, como podemos ter certeza de extrair esses dados do nosso DataFrame e explorá-los ainda mais. 20. 33 Subconjuntos novos: Nesta aula, aprenderemos como extrair subconjuntos de nosso conjunto de dados porque, por exemplo queremos nos concentrar apenas em um determinado local ou queremos nos concentrar em um subconjunto de clientes. E esses segmentos são muito fáceis de extrair usando o Pandas. E eu vou te mostrar como fazer isso. Então, primeiro carregaremos nossos dados e, em seguida, pegaremos nosso dataframe df e daremos uma olhada na longitude. Porque podemos pegar nosso dataframe df e simplesmente executar a lógica normal nele. Então, nesse caso, queremos que seja menor do que menos um a dois e tiramos isso a sério com valores verdadeiros e falsos. Então, uma série booleana. Podemos usar isso para escolher linhas em nosso DataFrame original. E podemos ver aqui que isso é apenas uma visão. Então, temos que atribuí-lo a uma nova variável. Vamos dar uma outra olhada em outra forma de selecionar subconjuntos. Nesse caso, queremos dar uma olhada na proximidade do oceano porque selecionar subconjuntos de nossas categorias é muito importante para algo que faremos posteriormente , relacionado à justiça da IA e à IA ética. Portanto, podemos escolher aqui que somente perto da baía e do interior deveriam estar lá. Obtemos mais uma vez uma série booleana que podemos usar para dividir nosso DataFrame ou obter um subconjunto de nosso DataFrame. Podemos ver isso aqui, e podemos ver que está menos robusto do que antes. Também podemos combinar diferentes tipos de loteria x2. Bem, para ser arbitrariamente complexo. E o motivo pelo qual precisamos fazer isso aqui é usar o operador AND. Mas, neste caso , tem que ser o e comercial. O e comercial é um operador especial em Python para fazer comparações bit a bit. E você pode ver isso aqui e falhará porque os operadores bit a bit apenas uma mão muito curta para comparar os booleanos. E você precisa ter cuidado ao usar parênteses em conjunto com um operador bit a bit. Aqui, vamos brincar um pouco com verdadeiro e falso. Assim, você pode ver como eles são combinados quando usamos e quais usarão o mesmo com um operador OR. Mas é claro que temos que usar o operador bit a bit, que é esse símbolo de tubo. Não sei se você tem um nome diferente para isso, talvez, mas está na tela, você o tem no seu caderno. E aqui temos a escolha das coisas que estão dentro. A escolha da proximidade do oceano que fica perto do interior da baía, ou D de longitude, é de -120 para um Vamos dar uma olhada nos valores únicos em nosso subconjunto de proximidade com o oceano. Podemos ver que existem valores que não estão próximos à baía e ao interior porque estavam na longitude abaixo de menos cento e 22. Também podemos usar o método dot loc. Essa é uma forma de selecionar subconjuntos do nosso quadro de dados usando os nomes dos índices. Índice nas colunas e índice nas linhas. Podemos copiar isso imediatamente. E eu vou te mostrar aqui onde está a diferença em relação ao método anterior, porque isso falhará, porque espera que forneçamos fatias para todos os índices. Portanto, um DataFrame tem duas dimensões, as colunas e as linhas. No momento, só demos as colunas, os dois pontos aqui. Ele é usado apenas para selecionar tudo e a seção da linha. E, é claro, também podemos usar isso para dividir as linhas usando os números do índice. Aqui, podemos ver que foi selecionado do nome do índice de cinco a 500. E lembre-se de que nosso índice pode ser qualquer coisa. Vamos dar uma olhada nisso em um segundo. Aqui podemos ver que isso não mudou em nada nosso DataFrame. Esse é apenas um método para retornar uma visualização. E, claro, também podemos salvar isso em uma variável, como sempre. Portanto, o método dot loc simplesmente funciona de uma maneira diferente da nossa antes. Agora vamos dar uma olhada na indexação, porque lá em cima podemos ver que nosso índice é apenas um número inteiro contínuo de zero a qualquer que seja o número máximo, 20.640 neste caso. No entanto, podemos usar o método de índice de conjunto de pontos para alterar nosso índice para qualquer outra linha. E isso é muito poderoso e podemos atribuir qualquer tipo de indexação, até mesmo texto, e selecionar nesse texto ou, neste caso, a latitude. Em vez de apenas um número. Você ainda pode usar números e depois mostrarei como fazer isso. Mas essa é uma forma de mudar o pensamento sobre seu DataFrame porque, no momento, nossas linhas estão indexadas pela latitude. Então, podemos, não podemos fazer o que fizemos antes com o número porque nosso índice agora não é mais o número inteiro. Nosso índice agora é a latitude. Então, se escolhermos o número em guerra, qualquer tipo de número da nossa latitude, isso funcionará novamente. Aqui eu dou uma olhada no índice, basta copiar um número daqui, como o EF 37.85. E podemos então usar isso para selecionar um subconjunto usando dot loc. Basta usar todas as colunas. E podemos ver aqui que isso mostra tudo do nosso índice aqui. Você pode ver que os índices em Pandas também não precisam ser exclusivos. Algo muito importante em que pensar quando você trabalha com eles. Dividindo nosso DataFrame dessa forma, ele é extremamente poderoso porque, em nosso índice, apenas retornaremos os dados nesse índice e em qualquer classificação que tenhamos. Portanto, não precisamos realmente estar cientes de como nossos dados são estruturados. No entanto, podemos usar o método iloc, que é basicamente a localização do índice, onde ainda podemos acessar nosso DataFrame e selecionar a linha cinco a 500.499 porque é exclusiva. Também podemos usar isso na coluna. Então, se acharmos que sabemos exatamente onde está tudo, também podemos usar esse tipo de fatiamento e, para usar apenas o corte de números para obter nossos subconjuntos, geralmente recomendo usar dot loc porque qual ponto loc, você sempre pode ter certeza, independentemente da classificação, que receberá de volta as coisas que deseja com o índice exato que elas são. E você não precisa ter certeza de que está classificando seu DataFrame da maneira correta. Aqui podemos ver que a latitude agora não faz mais parte de nossas colunas porque a atribuímos como nosso índice. Agora, se quisermos recuperar a latitude em nossas colunas, também podemos fazer isso redefinindo o índice e, em seguida, nosso índice voltará a ser apenas números inteiros. Isso também funciona quando você o reclassifica. Assim, você pode redefinir o índice para 0 a 500 ou o número máximo de BO ao alterar a ordem das colunas. E é muito importante pensar nisso , ao fazer a divisão de índices que você sempre pode alterar a classificação de seus dados. Mas ao fazer dot loc, você poderá recuperar exatamente o que está no índice. Sobre o tópico da seleção de colunas. Obviamente, podemos fazer a maneira padrão de fornecer apenas as colunas que queremos. Mas, às vezes, seu DataFrame fica muito longo com sua visão de volta aos números que faltam. Exemplo que tivemos, acho que mais de 20 colunas. Portanto, selecionar tudo isso pode ser muito complicado, para ser honesto. Portanto, também podemos ir para o outro lado e selecionar quais colunas não queremos. E isso é com um método de descarte. Então, fornecemos os nomes das colunas que devem ser retiradas do DataFrame. Aqui mesmo. Vamos simplesmente pegar o inverso da longitude e da população, fornecer o eixo do qual queremos eliminá-lo , porque também podemos descartar colunas. Aqui mesmo. Você também pode ver como mudar muitas coisas que você também pode fazer no local , se quiser alterar o DataFrame diretamente na memória. Aqui você pode ver que podemos descartar, bem, fazer exatamente o oposto do que fizemos antes, soltando linhas. No geral, estamos fazendo isso porque, se você selecionar subconjuntos de seus dados, poderá fazer análises nos subconjuntos. Então, se usarmos apenas o método de descrição de nossas estatísticas descritivas, podemos ver aqui, por exemplo, o desvio padrão e a média de todas as colunas. E, é claro, também podemos chamar o método de descrição em um subconjunto de nossos dados. E veja como nossas, bem, como nossas estatísticas descritivas mudam. Em seguida, você pode começar a plotar nesses subconjuntos e fazer toda a análise do conjunto de dados nesses subconjuntos. Essa aula realmente se aprofundou em como podemos selecionar subconjuntos de nossos dados e realmente decidir o que fazer com base em recursos, mas também em índices. E demos uma olhada em como ativar, dizem eles, e como reiniciá-lo novamente, porque isso é muito importante quando você quer fazer sua análise exploratória de dados e examinar mais de perto alguns subconjuntos de seus dados. Na próxima aula, veremos como podemos gerar esses relacionamentos em nossos dados. E realmente se concentre no que extrair. 21. 34 Correlações novas: Nesta aula, veremos as relações em nossos dados. Então, vamos realmente verificar como a correlação funciona em nossos dados. Mas vá além disso também. Portanto, vá além das correlações lineares e mergulhe profundamente na dissecação de nossos dados. Começaremos novamente importando pandas e carregando o DataFrame. Podemos ver que o núcleo do ponto é realmente fundamental para fazer a análise de correlação. Em Pandas. Podemos usar Corr e mudar o coeficiente de correlação que realmente queremos usar. Agora, a correlação padrão de Pearson é uma correlação linear. Spearman e Kendall usam uma correlação de classificação que pode ser não linear. Além de calcular essas correlações agregadas, talvez às vezes você só queira descobrir como uma célula, uma coluna está correlacionada com outra. E aqui podemos simplesmente fornecer a coluna e calcular a correlação em outra coluna. Aqui mesmo. Podemos até levar isso adiante. Portanto, as ferramentas de aprendizado de máquina têm sido muito fáceis de usar nos últimos dez anos. E podemos usar essa ferramenta de aprendizado de máquina para basicamente prever um recurso com base nos outros recursos. E se fizermos isso com cada recurso, podemos realmente ver o quão informativo um recurso é baseado no outro. E isso foi incorporado em uma pequena ferramenta interessante que podemos usar aqui, chamada Descubra relacionamentos futuros ou além das correlações. O nome mudou recentemente, então você também poderá encontrá-lo no GitHub. E isso significa que podemos usar o método de descoberta dessa biblioteca para realmente mergulhar em seus relacionamentos em nossos dados. Então, usamos o método de descoberta em, em nosso DataFrame. E podemos fornecer um método ou um classificador, mas, nesse caso, vamos deixá-lo no padrão. Você pode contornar isso mais tarde, se estiver interessado, leva alguns segundos para executá-lo , mas então usaremos apenas a amostra do nosso DataFrame para fazer isso um pouco mais rápido. Você pode deixá-lo rodar em amostras maiores. E entendemos como um recurso prevê outro recurso aqui. E entendemos que, para cada recurso disponível, podemos usar as tabelas dinâmicas que você talvez conheça do X0 para criar uma biblioteca completa, tabela completa que fornecerá todas as informações de que você precisa. Aqui mesmo. Muito semelhante à correlação. No entanto, o central não está preenchido, então vamos preenchê-lo com alguns porque você pode prever a característica facilmente por si só. Claro que sim. Em seguida, vamos traçar isso porque olhar para isso como um gráfico é sempre muito bom, assim como podemos ver o mapa de calor a partir das correlações. Isso é muito semelhante às correlações, exceto que usamos o aprendizado de máquina para fazer previsões cruzadas desta vez. Então, vamos salvar isso na variável e, em seguida, fazer um bom gráfico. Todos esses. Podemos ver que, ao contrário do gráfico de correlação, isso não está fixo entre -1,1. Então, vamos resolver isso bem rápido. E então você pode realmente ver como cada recurso pode ser extraído do outro recurso. Fazemos isso, essa fixação de menos um para um usando o V min e V max. E aí vemos isso. Então, por exemplo analisar como nossa população pode ser prevista por qualquer outra coisa é realmente uma boa maneira de ver relações nos dados onde você pode se aprofundar por que algo é preditivo ou não. Realmente uma ótima ferramenta para ciência de dados. Essa foi a última aula e agora um capítulo sobre análise exploratória de dados. Quando vejo como podemos extrair informações sobre correlações e relacionamentos em nossos dados. E na próxima aula, veremos como construímos modelos de aprendizado de máquina. Então, algo que já usamos implicitamente aqui agora aprenderá como realmente aplicar. 22. 40 introdução ao aprendizado de máquina novo: Neste capítulo do processo de ciência de dados ou daremos uma olhada no aprendizado de máquina. Especificamente, queremos modelar nossos dados e encontrar relacionamentos e dados automaticamente. Os modelos de aprendizado de máquina são os chamados modelos de caixa preta. Isso significa que eles não têm nenhum conhecimento sobre seus dados. Mas quando você mostra a eles os dados e o que você deseja extrair dos dados, eles aprenderão o relacionamento e como categorizar ou como encontrar o tipo certo de números. Então, faça uma regressão com seus dados. E o aprendizado de máquina é realmente poderoso e muito fácil de aplicar atualmente. É por isso que também passaremos muito tempo validando nossos modelos. Porque esses modelos tendem a aprender exatamente o que você diz para eles aprenderem, o que pode não ser o que você quer que eles aprendam. E a validação é a devida diligência a feita para garantir que eles realmente aprendam o que você quer que eles façam . Então, vamos ligar nossos notebooks e dar uma olhada no aprendizado de máquina. 23. 41 Regressão linear novo: Bem-vindo à primeira aula e ao capítulo sobre aprendizado de máquina. Vamos dar uma olhada em como criar modelos simples. Porque no aprendizado de máquina, geralmente nas réguas, quanto mais simples o modelo, melhor. Porque modelos simples são mais fáceis interpretar e geralmente são muito resistentes ao ruído. Então, vamos mergulhar nisso. Depois de carregar nossos dados, podemos importar o modelo de regressão linear porque queremos prever os valores das casas neste exercício. No entanto, antes de prepararmos nossos dados de uma determinada maneira, precisamos dividir nossos dados em duas partes. Queremos uma parte de treinamento e queremos uma. Bem, um conjunto de dados que o modelo nunca viu durante o treinamento. Assim, podemos validar que nosso modelo aprende algo significativo. Isso é para evitar um efeito chamado de sobreajuste. Então, quando nosso modelo basicamente lembra dos dados de treinamento e não aprende relações significativas entre os dados, ele pode aplicar a novos dados que nunca viu. Dessa forma, pegamos nosso DataFrame e o dividimos em duas partes aleatoriamente. É claro que poderíamos fazer isso com um subconjunto que fizemos na seção anterior. No entanto, coletar uma amostra aleatória que certamente não se sobreponha de forma alguma é uma maneira muito melhor. E a função de divisão de testes de trem que o Scikit-learn fornece é muito boa para isso e algumas realmente precisam de outras funções que possamos usar. Essa também é uma maneira muito boa de selecionar nossos recursos. Para o modelo simples, usaremos apenas os recursos de moradia, idade média e, em seguida, o total de quartos como nossos recursos de treinamento. E o valor da casa será nossa meta. Esses geralmente são salvos como x e depois y. Então, sabemos que temos o trem x e o teste x, e então temos o trem y e o teste y. Isso é bastante comum. E vamos dar uma olhada nas formas. Portanto, temos um pouco mais de 20.000 linhas aqui. Nossos dados de trem serão cerca de 75% desses, com 15.000 valores. E nosso trem y deve ter a mesma quantidade de alvos porque eles são amostrados aleatoriamente, mas na mesma linha. Então, os dados obviamente são colchões. Nossos testes x agora devem ter as linhas restantes que não estão no conjunto de trem. Agora, fazer isso é extremamente importante e não há como contornar a divisão dos dados para validação. Agora é hora de construir nosso modelo. Nosso modelo será o modelo de regressão linear que importamos antes. E o Scikit-learn torna extremamente fácil para nós criar modelos e atribuir modelos. Só precisamos atribuir o objeto a alguma variável. Nesse caso, vamos chamá-lo apenas de modelo. E você pode ver que você pode alterar alguns dos hiperparâmetros no modelo, mas vamos mantê-lo padrão agora mesmo. Agora ajustamos nosso modelo aos dados. Esta é a etapa de treinamento em que automaticamente nosso modelo é ajustado e os parâmetros em nosso modelo são alterados para que nosso modelo possa prever o trem y a partir do trem x. E para pontuar nosso modelo. Então, para testar o desempenho, podemos usar o método de pontuação em nosso modelo ajustado e fornecer bons dados onde também sabemos as respostas. Assim, podemos usar o teste x e o teste y para ver o desempenho do nosso modelo com dados invisíveis. Nesse caso, a regressão será o quadrado r. R-square é, bem, em estatística, é basicamente uma medida de determinismo. Então, até que ponto ele realmente prevê nossos dados? E o melhor valor que existe é um. E depois diminui e pode até ser negativo. 0,03 não é realmente, bem. Não é impressionante. Quando alteramos nossos dados de treinamento para incluir a renda média, aumentamos a pontuação significativamente. Obviamente, essa é a parte mais importante. Precisamos encontrar dados que possam nos fornecer informações sobre outros dados que desejamos. No entanto, uma vez que descobrimos isso, podemos melhorar ainda mais nosso modelo fazendo o pré-processamento de nossos dados. Mas temos que ter cuidado aqui, porque primeiro, farei o pré-processamento e testaremos coisas diferentes se funcionarem ou não. O que pode acontecer é que façamos uma sobremontagem manual. Modelo. Isso significa fazer uma ciência de dados adequada aqui mesmo. Queremos dividir nossos dados de teste em duas partes. Um, conjunto de retenção de validação e conjunto de teste. O conjunto de testes não será abordado todo o processo de treinamento nem em nossa experimentação, mas apenas na última parte de nossa jornada de aprendizado de máquina. Aqui definimos x Val e y Val. E eu cometi um pequeno erro aqui, deixando isso para o trem y que, obviamente, deveria ser o teste x na divisão do teste de trem. Mudar isso significa que isso funciona. E essa também é uma boa parte da função de divisão de testes de trem. Isso realmente garante que tudo seja consistente ou que todas as nossas variáveis correspondam. E podemos ver aqui que nosso conjunto de dados de teste agora é bem pequeno, com 1.000 valores. Assim, podemos voltar ao teste de trem dividido aqui e, na verdade, fornecer uma proporção de dados que podemos usar em seus esforços de ciência de dados e aprendizado de máquina. Você deve sempre se certificar de que pode usar o maior tamanho de teste possível, porque isso significa que você poderá ter mais certeza e seus resultados. Aqui podemos ver que agora ele está dividido 5050 e dividindo nosso conjunto de testes agora mais abaixo no conjunto de validação. E o conjunto de testes mostra que nosso conjunto de testes final tem cerca 2.500 amostras, ou seja, ele. É bom o suficiente para este caso. Definiremos nosso escalador padrão aqui e nosso modelo como a regressão linear. E ajustamos nosso escalar aos dados de treinamento. Isso significa que agora também podemos redimensionar todos os nossos dados, para que nenhuma das colunas significativamente maior do que as outras. Isso é apenas um poço, em um modelo linear, colocamos a inclinação e a interceptação. E quando nós, quando escalamos nossos dados, isso significa que nosso modelo linear agora pode funcionar dentro dos mesmos intervalos de dados e não ser tendencioso porque um recurso é significativamente maior do que os outros, criará uma escala x a partir de nossos dados de trem X. Portanto, não precisamos chamar a transformação escalar no ciclo de treinamento do trem. Podemos compará-los aqui, podemos ver que nossos dados de escala agora estão dentro, bem, centrados em torno de zero e todos na mesma escala. Enquanto que antes estava em todo lugar. Agora podemos ajustar nossos dados em nosso modelo, nos dados da escala. E bem, o estilo normal de rotulagem que temos, obviamente, o rótulo deve ser o meu neste caso. E então podemos fazer a validação usual em nossos dados de retenção. E neste caso, será a vogal x e y val. Portanto, não tocamos nos dados de teste enquanto vemos que tipo de escalonamento e que tipo de pré-processamento funcionam Precisamos transformar nossos dados porque agora nosso modelo espera dados de escala. Então, quando esquecemos isso, obtemos resultados terríveis e podemos ver que melhoramos nosso modelo por uma pequena margem, mas ele ainda é aprimorado apenas aplicando essa escala aos dados. Se tentarmos usar o escalar robusto em vez disso, podemos fazer isso apenas experimentando e usando um escalar diferente. E essa é a parte em que quero dizer, em que precisamos de um conjunto extra de resistência, porque apenas experimentando coisas diferentes, é uma maneira muito boa de ver o que funciona. E é assim que você faz ciência de dados. Apenas ver o que funciona é realmente o mesmo que criar um bom modelo de aprendizado de máquina. Porque às vezes você pode não esperar ter valores discrepantes em seus dados. E você experimenta o escalar robusto e verá que ele realmente tem um desempenho melhor. Ou você percebe que funciona quando o desempenho é pior. Aqui, podemos treinar nossos dados transformados com nosso trem Y novamente e pontuar nossos resultados. Para verificar se isso funciona. Experimente também o escalar minmax que usamos em nossa classe anterior. Depois de fazermos a experimentação e treinarmos para o modelo final, podemos usar esse modelo para predizê-lo em qualquer tipo de dado que tenha as mesmas colunas, espero que a mesma distribuição de nossos dados de treinamento e o conjunto de validação. Então, para fazer isso, usaremos model.predict e forneceremos algum tipo de dado. Nesse caso, usaremos os dados de treinamento. Basta ver como o modelo se compara aos dados verdadeiros básicos , os dados rotulados. Mas é claro que fazer isso nos dados do trem não é o mais interessante porque o modelo já viu esse tipo de versão beta. Eventualmente, faremos isso no conjunto de testes. Mas, finalmente, ele queria fazer isso com dados completamente invisíveis para realmente obter previsões do seu modelo de aprendizado de máquina. Outra maneira muito boa e por que eu realmente gosto do utilitário de divisão de testes de trem é que você pode fornecer a ele uma palavra-chave stratify. estratificação é um meio de garantir que algum tipo de característica seja representado igualmente em cada parte da divisão do trem e do teste. Então, se quisermos ter certeza de que nossa proximidade com o oceano na ilha está em parte no trem e em parte nos testes. Podemos fazer isso fornecendo esse tipo de recurso. E uma razão pela qual, e as pessoas gostam muito de modelos lineares, é porque os modelos lineares basicamente se encaixam em uma linha aos seus dados. Então, se você pensar na quinta série, você pode se lembrar que uma linha é basicamente apenas a interceptação no y e um coeficiente para a inclinação. Então, o que podemos fazer é interpretar nosso modelo linear e analisar esses coeficientes. Então, cada coluna tem um parâmetro de inclinação aqui que podemos, bem, basicamente, esse parâmetro informa o quanto a inclinação desses dados influencia o resultado da previsão. E, claro, podemos dar uma olhada na interceptação com um y, o que nos dá uma visão geral completa do nosso modelo. Então, basicamente, você poderia escrevê-lo no papel. Agora, nesta aula, aprendemos como usar o scikit-learn em um modelo simples de aprendizado de máquina, uma regressão linear. Então, basicamente ajustando uma linha aos nossos dados, analisamos como a escalabilidade pode melhorar nosso modelo e até previmos em alguns dados que o modelo nunca viu. Portanto, é uma validação se estamos realmente aprendendo algo significativo ou se ele apenas se lembra dos dados. Na próxima aula, veremos alguns modelos mais sofisticados, árvores de decisão e florestas aleatórias. 24. 42 árvores novas: Nesta aula, veremos árvores de decisão e florestas aleatórias, que são apenas um conjunto de árvores de decisão que são treinadas de uma forma específica para serem ainda mais poderosas. E as árvores de decisão aprendem muito bem, porque normalmente você não precisa alterar muito os parâmetros básicos. Nesta aula. Você verá como é realmente fácil usar o scikit-learn para criar todos os tipos de modelos diferentes e utilizá-los em sua exploração dos dados. Para este vídeo, eu já preparei todas as entradas e o carregamento de dados. E eu divido os dados em um conjunto de trens, que é 50 por cento, e depois um conjunto de validação e um conjunto de teste, que são 25 por cento do total de dados. E agora vamos construir uma árvore de decisão para começar. Então, vamos importar as árvores do scikit-learn da biblioteca de árvores. Como sempre, definiremos nosso modelo. Nesse caso, será um regressor de árvore de decisão porque, para torná-lo comparável, fará novamente uma regressão no valor da casa. Modelo, trem. O treinamento será o mesmo de sempre, model.fit, x train e y train. E acho que neste momento você realmente vê por que o Scikit-learn é tão popular. Ele padronizou a interface para todos os modelos de aprendizado de máquina. Portanto, pontuar, ajustar e prever sua árvore de decisão é tão fácil quanto um modelo linear. As árvores de decisão são aprendizes relativamente medíocres e, na verdade, só as observamos. Assim, podemos examinar posteriormente a floresta aleatória que constrói várias árvores de decisão e as combina em um conjunto de aprendizado. E o bom das árvores de decisão é que elas geralmente são independentes de escala silenciosa e funcionam com características categóricas. Então, poderíamos realmente alimentar a proximidade do oceano com nosso treinamento aqui. Mas é claro que também não poderíamos comparar o método com o modelo linear. Portanto, não faremos isso agora, mas isso é definitivamente algo que você pode experimentar mais tarde. Portanto, escalar esses dados não nos custa nada. Então, podemos muito bem tentar. Aqui. Você pode realmente ver o que acontece quando você não transforma seus dados de validação. Então, basicamente, agora espera até mesmo a árvore de decisão que eu espero, dados de escala. Portanto, ele tem um desempenho muito ruim. Quando transformamos nossos dados de trem e transformamos nossos dados de validação. Nossa pontuação está um pouco pior do que antes. Em seguida, podemos construir uma floresta aleatória. Uma floresta aleatória é um conjunto de árvores em que usamos um método estatístico chamado ensacamento que basicamente tenta construir árvores de decisão não correlacionadas que, em conjunto, aprendem mais do que cada árvore. individualmente. Então, vamos importar o regressor florestal aleatório da subbiblioteca de conjuntos do scikit-learn. E, assim como antes, atribuiremos nosso modelo a uma, o que seu objeto de modelo a uma variável. E então podemos ajustar nosso modelo aos dados. Como você pode ver, o ajuste é bastante rápido e a pontuação deve nos dar um resultado muito bom. Aqui podemos ver aqui que isso é um pouco melhor até do que a pontuação que obtivemos em nosso modelo linear após a escala. E se agora analisarmos a pontuação dos dados de treinamento, você pode ver por que precisamos de dados de validação. Portanto, essa árvore de florestas aleatórias é extremamente forte nos dados de treinamento em si, mas tudo bem, nos dados de validação do VAP. Em vez disso, também podemos dar uma olhada na escala apenas para ver como ela funciona. Não nos custa nada, é muito barato de fazer. Então você pode muito bem. Se isso melhorar seu modelo de aprendizado de máquina ou reduzir o excesso de ajuste, sempre vale a pena fazer isso porque, sim, é barato. Então, escalaremos nossos dados de treinamento e ajustaremos nossos dados e nosso modelo a eles. Podemos usar a mesma escala de antes porque os escalares e independentes do modelo de aprendizado de máquina são apenas o escalar. E vemos aqui que nossa pontuação de treinamento basicamente não mudou como se estivesse na quarta vírgula. Então, é basicamente um ruído aleatório nesse ponto. No conjunto de validação. não devemos esperar muito. Então, o resultado está um pouco deteriorado. Por isso, vale a pena preservar os dados originais. Nesse caso. Uma coisa fantástica sobre florestas aleatórias é que florestas aleatórias têm algo chamado introspecção. Então, você pode realmente dar uma olhada na importância de uma floresta aleatória, acho que cada recurso é. Isso, esses são números relativos. Eles podem flutuar um pouco, mas podemos ver que essas características são ponderadas de forma diferente na floresta aleatória para prever um preço correto. Essa foi muito rápida. Acho que o Scikit-learn é incrível porque torna tudo muito fácil. Você acabou de pensar bem, prever e não marcar pontos. E esses são muito úteis para todas as nossas necessidades de aprendizado de máquina. Na próxima aula, veremos como não apenas prevemos o preço, mas também como podemos prever categorias. Portanto, em mais envios comerciais, isso pode ser uma previsão de alguém digno de crédito ou não. 25. 43 Classificação nova: Nesta aula, veremos a classificação. Então, isso significa atribuir nossos dados a diferentes compartimentos, dependendo do que está contido nos dados. Em nosso exemplo, veremos a proximidade do oceano. Então, vamos tentar prever se uma de nossas casas está mais perto ou mais longe do oceano. E isso basicamente significa que também teremos a chance de testar diferentes algoritmos e como eles também são afetados pelo pré-processamento de nossos dados. Vamos importar tudo e carregar nossos dados. Agora, nessa divisão, queremos substituir o valor da casa pela proximidade do oceano porque queremos fazer a classificação I'm, então precisamos prever as classes. Nesse caso, vamos prever o quanto uma casa está perto do oceano. Mas geralmente você pode prever praticamente qualquer classe. vez, vamos reverter isso e usar todos os recursos de treinamento. Mas é claro que precisamos eliminar a proximidade do oceano do nosso DataFrame. Se deixássemos isso aí, não haveria uma tarefa de classificação muito fácil, eu diria. Portanto, o modelo mais fácil, ou um dos modelos mais simples, é o modelo vizinho mais próximo, nosso modelo K de vizinho mais próximo. Os vizinhos mais próximos estão basicamente pegando os pontos de dados mais próximos até o ponto em que você deseja classificar e, bem, geralmente você apenas obtém a maioria dos votos. Isso significa que a classe mais proeminente em torno de seu ponto de vista é provavelmente a classe do seu ponto de vista. E para classificação, Scikit-learn não é diferente da regressão. Atribuiremos o modelo ao objeto a uma variável. E então tentaremos ajustar nossos dados. Mas algo saiu de Finanças, Infinito ou qualquer coisa. E o vizinho mais próximo não lida bem com isso. Como eu disse, deixo todas as etapas de pré-processamento no capítulo de pré-processamento para mantê-los curtos e concisos. Mas, nesse caso, eliminaremos os nans sem nenhum pré-processamento diferente, apenas para que essas linhas sejam excluídas. Pode não ser uma boa ideia na maioria dos casos, mas, nesse caso, é só para tirar nossos dados da porta. Aqui podemos ajustar nosso modelo aos dados de treinamento usuais. Desta vez, simplesmente funciona. E então podemos pontuar nosso modelo. Agora, a pontuação na classificação é um pouco diferente da regressão. Não temos o R-quadrado porque o r-quadrado é uma medida de determinismo na regressão. Nesse caso, temos a precisão. E a precisão é de 59 por cento, o que é bom, então 60% das vezes esse modelo vizinho mais próximo está corrigindo a classe correta. Provavelmente podemos fazer melhor, mas isso é um começo. Uma coisa que você pode tentar em seu exercício é alterar o número do vizinho mais próximo e ver qual tipo de poço mais próximo, quantos vizinhos mais próximos dão o melhor valor. Podemos dar uma olhada em muitos algoritmos de classificação diferentes. À esquerda, você vê os dados de entrada, que são três formas diferentes de entradas. E então você vê as superfícies de decisão de uma classificação binária à direita. Assim, você pode ver que a floresta aleatória é muito uniforme, por exemplo, e um processo gaussiano é muito suave. Então, só para você entender como eles entendem os dados, testaremos a floresta aleatória porque ela parece muito diferente da superfície de decisão. E florestas aleatórias são mais uma vez modelos muito poderosos. Esse será o mesmo esquema dos vizinhos mais próximos. Então, teremos uma conversa rápida sobre as funções de pontuação. Porque a pontuação de precisão é, tudo bem , é um bom padrão, mas basicamente conta quantos você obtém, certo? E digamos que você trabalhe em um ambiente em que os erros são especialmente graves, especialmente caros. Você quer ver se outra função de pontuação seria mais apropriada. E você pode dar uma olhada no documento scikit-learn, ment. Existem diferentes funções de pontuação que você pode verificar. Aqui, damos uma olhada e a floresta aleatória acabou de superar os valores padrão. Qualquer coisa que os vizinhos mais próximos cheguem perto com 96 por cento. Isso está em dados invisíveis. Portanto, é uma pontuação muito boa. Podemos mais uma vez dar uma olhada na importância das características para ver o que nosso modelo acha que é o indicador mais importante de que algo está próximo à costa. E, obviamente, parte disso será a longitude e a latitude. Então, vamos retirá-los também do nosso DataFrame, dos nossos dados de treinamento. Porque queremos torná-lo um pouco mais interessante, talvez outra coisa. É um indicador melhor se você for até seu chefe e disser: Ei, descobri que esse local nos diz muito bem que minha casa fica perto do oceano. Eles provavelmente olharão para você com um pouco mais de pena. Então dê uma olhada. E, obviamente, nossa pontuação aleatória na floresta é um pouco pior, mas muito boa. Então, vamos dar uma olhada em outro modelo linear. O modelo de regressão logística é um modelo binário. Você também pode usá-lo para várias classes com alguns truques. Isso basicamente vai de 0 a 1 e encontra essa transição. Você pode ver isso aqui no vermelho. Os modelos de regressão logística são realmente interessantes porque mais uma vez, fornecem um bom modelo de linha de base porque são classificadores lineares. Mas o mais interessante é que você viu que há essa linha de transição 0-1 nesta imagem. E você pode definir um limite em seu padrão. Está em 0,5, mas você pode testar como deseja definir o limite para sua regressão logística. E isso é muito bom pensar em seu modelo de aprendizado de máquina. E veremos como determinar esse limite após esse segmento de programação, a regressão logística. Então, vamos adicionar isso e uma olhada rápida, porque temos um problema multiclasse aqui. E queremos que esse problema de várias classes seja resolvido. Obviamente. Felizmente, várias classes são automaticamente configuradas como automáticas porque a maioria das pessoas não lida com problemas binários e com a vida real. Então, sim, o scikit-learn realmente tenta definir bons valores padrão, ajustará nosso modelo com dados de trem x e y. E, infelizmente , não convergiu. Portanto, não funcionou neste caso. Então, vou entrar na docstring e dar uma olhada. Aí vamos nós. Max iter será a palavra-chave que teremos que aumentar. Portanto, são necessárias mais iterações para encontrar o melhor. Então, para encontrar o clima, a regressão logística deveria ser. Mil também não foram suficientes. Basta adicionar um zero. Isso vai levar um tempo. Então, vamos pensar em nosso limite ideal. Porque, em certo sentido, quando você tem aprendizado de máquina, você quer que todos os seus pontos positivos sejam classificados positivamente e que todos os seus negativos sejam classificados negativamente. E então você tem que pensar no que é pior, acertar algo, fazer algo errado. E, nesse caso, podemos usar a curva ROC para regressão logística, onde podemos traçar as verdadeiras taxas positivas. Então, os positivos que são positivos contra a taxa de falsos positivos. Então, tudo o que foi classificado como positivo falsamente, e então escolha nosso melhor. Nesta aula, vamos dar uma olhada em diferentes algoritmos de classificação. Há muitas outras, como mostrei nesse slide. E você pode realmente mergulhar nos diferentes tipos de classificação com muita facilidade, como você vê, é uma doutrina sempre considerada adequada. E então você pontua e prevê com base em dados invisíveis. E, na verdade, no final das contas, é sempre o mesmo. E depois, trata-se de como você dimensiona seus dados, o que faz parte do exercício. E também como você escolhe hiperparâmetros como k para o algoritmo de k-vizinhos mais próximos. Na próxima aula, veremos como agrupar nossos dados. Então, realmente vendo a estrutura interna de nossos dados e como cada ponto de dados pertence aos outros. 26. 44 Clustering novo: Nesta aula, veremos como podemos agrupar cada dado. Às vezes, os pontos de dados se agrupam. Bem, às vezes tem sido mais difícil discernir. E veremos como diferentes algoritmos tratam os dados de forma diferente e os atribuem a diferentes compartimentos. Depois de importar nossos dados. Desta vez, pularemos a parte que dividimos os dados, pois ele prefere considerar o algoritmo de agrupamento como uma ferramenta de descoberta de dados. Se você quiser criar algoritmos de agrupamento para nossa previsão real ou para atribuir novas classes. Você também tem que fazer a divisão. Você sabe que ele realmente faz o que deveria fazer. No nosso caso, vamos dar uma olhada em k-means. K-means era meio que o irmãozinho sem supervisão de k vizinho mais próximo, onde basicamente fornece o que mede a proximidade de outros pontos e apenas os atribui a um cluster se eles estão próximos o suficiente, caberão nossos dados no DataFrame. E usaremos a previsão de ajuste porque queremos fazer tudo em uma única etapa. Agora, o problema aqui é que temos proximidade com o oceano lá dentro com cordas lá dentro. Então, vamos avisar. Na verdade, vamos dar uma olhada nos dados espaciais. Então, longitude e latitude, porque são muito fáceis de visualizar em 2D. Então, isso só torna nossa vida um pouco mais fácil. Vamos comprar alguns rótulos para eles. E o que podemos fazer então é plotá-los usando matplotlib. Eles também conhecerão o matplotlib em uma aula posterior. Mas apenas para um gráfico fácil, ele tem a dispersão PLT, que assume uma coordenada x e uma y. E então você também pode aplicar atribuir uma cor, que é rotulada, no nosso caso. K significa. Você pode definir quantos clusters deseja eliminar. Agora, o padrão é oito. Vamos brincar um pouco com isso e você poderá ver como ele muda, como os clusters mudam. Quanto mais alto você sobe, mais fragmentado ele fica. E você pode argumentar o quanto realmente faz sentido, em algum momento ainda agrupar dados com luz. Centenas de clusters. Eu vou para três. É fácil mostrar o que acontece quando, na verdade, temos clusters semelhantes. Vamos dividir nossos dados um pouco. Então, basicamente, use a subconfiguração que discutimos antes para excluir parte da parte central na longitude. Para isso, podemos usar o método between que basicamente define um ponto inicial e um ponto final. Quando negamos isso entre, ficamos com um agrupamento à esquerda do nosso gráfico de dispersão geográfica e à direita do nosso gráfico de dispersão geográfica. Para isso, escolheremos apenas -121 e -100 18º como as bordas esquerda e direita. Podemos ver aqui que isso nos dá um conjunto de dados dividido. Atribua isso a uma variável para que possamos usá-la. Vamos dar uma olhada e não isso, na verdade. Então, vemos o que está acontecendo com nossos dados. Por enquanto, basta excluir que as cores estão rotuladas porque elas não se aplicam aqui. E podemos ver a clara divisão entre dois grupos. Então, podemos usar nossos k-means para classificar esses dois ou combinar esses dois. E vou simplesmente copiar isso e usar a previsão de ajuste para obter nossos dados nos dados divididos e também copiar nosso gráfico de dispersão e adicionar novamente nos rótulos. Podemos ver que com dois clusters, é muito fácil para k-means obter um cluster à esquerda e um cluster à direita. Se brincarmos com os números, podemos realmente testar o comportamento de Howard, encontrar subclusters nele e como ele interpreta os dados. Mas como é muito fácil com o scikit-learn, vamos dar uma olhada em outros métodos. Ou seja, este é um gráfico do site scikit-learn onde você tem diferentes tipos de algoritmos de agrupamento e como eles funcionam em diferentes tipos de dados. O agrupamento espectral vem à mente. Mas eu, pessoalmente, também gosto muito DB Scan e adquiri modelos de mistura gaussiana. Eles funcionam muito bem com dados reais e especialmente, o desenvolvimento posterior de um esquema de tuberculose chamado escaneamento HDB é um método muito poderoso. Hdb scan é uma biblioteca separada que você precisa dar uma olhada e depois instalar você mesmo. Mas sim, definitivamente vale a pena dar uma olhada. Então, podemos fazer o mesmo de antes. Vamos importar o DB scan de nossa biblioteca de cluster no scikit-learn atribuí-lo à variável de valor dB. E não tem muitos hiperparâmetros diferentes que possamos definir. Talvez mude a métrica que você viu na docstring. Mas, por enquanto, Euclidian está totalmente bem. Podemos ver aqui, sem definir nenhum cluster, existem os valores discrepantes e os corretos. E, basicamente, ele encontra três clusters sem que falemos muito sobre nossos dados. Vamos também dar uma olhada no agrupamento espectral aqui. Funciona da mesma forma. Vamos atribuí-lo a um objeto e instanciá-lo. Temos que fornecer clusters para este. Queremos simplesmente copiar tudo isso para a previsão em nosso SP e executar tudo. Isso demora um pouco mais. agrupamento espectral pode ser, sim, pode ser, pode ser um pouco mais lento em grandes conjuntos de dados. Confira a documentação. Eles têm uma visão geral muito boa sobre qual método de agrupamento é melhor para o tamanho dos dados. E também, sim, basicamente no que você precisa pensar ao aplicar diferentes métodos de agrupamento. Como os métodos estão sempre evoluindo e crescendo, é uma boa ideia verificar a documentação, pois ela está sempre atualizada. Aqui podemos ver que o agrupamento é muito bom, muito bom. Agrupar dados pode ser muito difícil. Como você viu, isso pode levar a resultados muito diferentes, dependendo do tipo de visão autorrítmica. Então, quais tipos de suposições subjacentes estão nesse algoritmo, mas também como seus dados são compostos. É fácil separar os dados ou é realmente difícil separar os dados? No final das contas, acho que é uma ferramenta que pode gerar novos insights sobre seus dados que você não tinha antes com base nos dados que você fornece a eles. Na próxima aula, veremos como validamos modelos de aprendizado de máquina. Porque apenas construir o modelo não é suficiente. Precisamos saber se está realmente aprendendo algo significativo. 27. 45 Validação de modelos de aprendizagem de máquina novos: Nesta aula, veremos como validar seus modelos de aprendizado de máquina. E você tem que fazer isso toda vez. Como criar modelos de aprendizado de máquina é muito fácil, a parte mais difícil agora é validar se seu modelo de aprendizado de máquina realmente aprendeu algo significativo. E, em uma das outras aulas, também veremos se nossos modelos de aprendizado de máquina são justos. E nesta aula, vamos dar uma olhada na validação cruzada. Então, vendo o que acontece se mudarmos nossos dados, podemos realmente prever resultados significativos? E então daremos uma olhada modelos básicos de fictícios que são basicamente um lançamento de moeda. Então, nosso modelo teve um desempenho melhor do que o acaso aleatório? Depois de importar tudo e carregar os dados, eliminaremos os substantivos e dividiremos nossos dados. Agora, faremos a regressão. Então, vamos construir um regressor florestal aleatório. E isso é apenas para ter um modelo que possamos comparar com o modelo fictício para fazer a validação. Então, vamos ajustá-lo imediatamente aos dados do nosso trem e adicionar os rótulos aqui. Com um modelo ajustado, agora podemos pontuar isso e depois fazer a validação cruzada. A validação cruzada é uma forma muito interessante. Se você acabou de aprender sobre divisões de trens de teste, isso levará as divisões de trens de teste para o próximo nível. Portanto, a validação cruzada é a ideia de que você tem seus dados de treinamento e seus dados de teste manterão os dados do teste, os dados do teste. E, como você sabe, dividimos nossos dados de trem em um conjunto de treinamento e um conjunto de validação. Na validação cruzada, agora estamos dividindo nossos dados de treinamento em dobras. Então, basicamente, é apenas em subpartes. E cada peça já foi usada como conjunto de teste contra todas as outras como um conjunto de trem. Então, estamos construindo cinco modelos se tivermos cinco vezes. Você também pode fazer isso de forma estratificada, como a divisão do trem de teste que usamos antes. Agora, é muito fácil fazer isso. Mais uma vez, a API, portanto, a interface com a qual você trabalha é muito simples. Então, vamos importar a pontuação de validação cruzada. E aqui, a pontuação cruzada de Val pega seu modelo, os dados de validação, e esse é o seu x. Então, as características e, claro, as metas, porque temos que validá-la em algum tipo de número. Isso leva cinco vezes mais tempo porque construímos cinco modelos ou, sim, avaliamos cinco modelos e obtemos cinco pontuações para cada modelo. Você pode notar que todas essas pontuações estão um pouco abaixo da essas pontuações estão um pouco abaixo nossa pontuação média em todos os dados, e esse geralmente é o caso e está mais próximo da realidade. Também podemos usar a previsão cruzada para obter previsões sobre esses cinco modelos. Portanto, também é muito bom fazer a combinação de modelos, por exemplo, se você tiver cinco modelos treinados, também poderá fazer previsões . Não é uma boa medida para seu erro de generalização. Portanto, você não deve considerar a previsão cruzada como uma forma de ver o desempenho do seu modelo. Em vez disso, visualizar como esses cinco modelos nas dobras k na validação cruzada prevêem. Outra estratégia de validação é criar modelos fictícios. Se você faz isso antes ou depois da validação cruzada , depende de você. É uma forma de validar nosso modelo. Então, um modelo fictício é essencialmente a ideia de que queremos que nosso modelo de aprendizado de máquina seja melhor do que o acaso? No entanto, às vezes, saber como é o acaso, é um pouco difícil. Então, vamos dar uma olhada aqui. Você pode fazer estratégias diferentes para usar em seu classificador. Você pode simplesmente fazer isso com força bruta e experimentar todos eles. Mas uma boa opção geralmente é usar o prior. Acho que esse se tornará o método padrão e futuro para o classificador fictício. Mas como estamos fazendo a regressão primeiro, vamos dar uma olhada no regressor. Então, aqui você também pode definir uma estratégia. A estratégia padrão é apenas ter a média. Então, por um tempo, o pior tipo de modelo retorna apenas a média. Então, vamos usar isso como nosso modelo fictício. Assim como qualquer modelo de aprendizado de máquina, você ajusta isso aos dados com o trem x e o trem y. Então, podemos pontuar essa função. Podemos até mesmo fazer uma validação cruzada sobre isso. E veja como esse modelo casual se sai bem. E com base nessas pontuações, é uma boa medida do desempenho e do desempenho do seu modelo real. Se a chance de o modelo estiver funcionando melhor do que o seu, melhor ou igual ao seu modelo, você provavelmente construirá um modelo ruim e precisará voltar e repensar o que está fazendo. Podemos fazer validação cruzada, mas obviamente a pontuação seria mais apropriada aqui, o que é algo que você pode experimentar nos cadernos. Faremos isso novamente e criaremos um modelo de classificação muito rápido usando os dados de proximidade do oceano novamente. Aqui, construiremos o classificador, independentemente de sermos a estratégia normal. Pessoalmente, acho que os modelos fictícios são muito úteis porque às vezes, embora Chance não seja apenas 5050, se você tem desequilíbrios de classe como fazemos com os dados da ilha, por exemplo , seu lançamento de moeda é essencialmente distorcido. É tendencioso. E o classificador fictício é apenas uma maneira muito fácil de validar isso. Mesmo com desequilíbrios de classe, você não construiu um modelo inútil. Então, aqui podemos pontuar isso e obtemos uma precisão de, bem, uma precisão muito baixa aqui. E podemos verificar como as diferentes estratégias afetam nosso resultado. Então, 32% já é muito ruim. Mas mesmo que você provavelmente deva escolher o classificador fictício com melhor modelo, porque isso ainda é uma chance, um resultado casual. Portanto, essa previsão de 40% de chance não é um bom, nem um bom sinal. Digamos isso. Então, aqui vamos construir um novo modelo usando o Random Forests novamente. Aí vamos com um classificador e ajustaremos diretamente os dados a ele para que não precisemos executar mais células. Agora, a pontuação nos dados mostrará que nossa floresta aleatória é pelo menos um pouco melhor do que a manequim. Portanto, 20 por cento melhor precisão. Eu diria que estamos realmente aprendendo algo significativo aqui para prever se estamos mais perto ou mais longe da proximidade do oceano. Agora, como eu disse, a pontuação é mais apropriada, então usaremos a pontuação aqui com nosso modelo fictício nos dados do teste. E o aviso aqui é interessante porque nossa pontuação de validação cruzada nos diz que, na proximidade do oceano, a classe da ilha não tem dados suficientes para realmente fazer uma divisão adequada. Portanto, é muito importante notar isso. Além disso, vemos, então isso é algo a ser levado em consideração. Mas, além disso, vemos que, mesmo na validação cruzada, nosso modelo está superando o modelo fictício. Validar modelos de aprendizado de máquina é algo muito importante para mim. É muito importante, já que se tornou tão fácil criar modelos de aprendizado de máquina, que você faça o trabalho e veja se esses modelos, eu realmente aprendi algo significativo e estou apenas lendo algo em barulho. E essas estratégias são, na verdade , o nível básico que você precisa fazer com cada modelo de aprendizado de máquina. E na próxima aula, veremos como realmente construir modelos justos e como garantir que nosso modelo não prejudique que nosso modelo não prejudique ninguém por causa de alguma classe protegida, por exemplo. e isso será extremamente importante se você tocar os humanos com seu modelo de aprendizado de máquina. 28. 46 ML Interpretabilidade nova: Nesta aula, veremos a interpretabilidade do aprendizado de máquina. Então, vamos examinar esse modelo de caixa preta que construímos e inspecionaremos o que ele realmente aprendeu. E se você é como eu e já construiu um modelo e mostrou isso ao seu chefe e disse: Sim, ele aprendeu e desempenho tão bom nesta ligação, como se tivesse 60% de precisão. Eles não ficarão impressionados. Eles querem saber o que esse modelo de aprendizado de máquina realmente representa. E nesta aula, veremos cada recurso diferente em nossos dados que influencia a decisão em nosso modelo de aprendizado de máquina. E, na verdade, nos aprofundaremos nas tramas muito legais que você pode fazer e que influenciam a decisão em um modelo de aprendizado de máquina. Então, aqui vamos fingir que já fizemos toda a validação e construção do modelo e a ciência de dados antes. Assim, podemos verificar se nosso modelo é justo. Portanto, a noção de justiça é realmente a ideia que, embora nosso modelo não tenha visto a classe de proximidade do oceano, ele pode implicitamente prejudicar essa classe. Então você pode conferir aqui. Nossa separação, diminuímos diretamente a proximidade com o oceano. Nós não treinamos nisso. Mas talvez nossos dados de alguma forma prejudiquem implicitamente alguma classe que está próxima do oceano. Então verifique isso. Estou fazendo alguns, alguns, bem, alguns truques de pandas que já uso palestrantes há algum tempo. Então, aqui você vê o que você pode fazer com parceiros. Porque aqui você tem os dados de validação e isso é apenas uma parte do nosso DataFrame. Quero encontrar todos os índices do nosso DataFrame que estão nessa classe e encontrar a interseção desse índice com os dados de validação. Dessa forma, posso escolher o subconjunto da classe em nosso conjunto de validação sem realmente ter os dados, bem presentes no DataFrame de nossa divisão de trem de teste. E fazendo isso, estou brincando um pouco com ele e tentando fazer com que funcione, apenas imprimindo em um tamanho grande, para ver o que está acontecendo. Assim, posso realmente validar com os dados que esses são os dados que eu quero. Aqui mesmo. Você vê que agora eu estou pegando o subconjunto dela, pegando o índice dela. E então estou imprimindo a interseção de x val e índice baseado em classes que eu criei antes disso. Então, salve isso em idx. Então, posso simplesmente entrar no DataFrame e subdefinir o quadro de dados com o índice. Neste caso, usaremos a função de pontuação do modelo para ter uma ideia inicial de quão bem nossa hora, bem, quão bem nosso modelo está realmente funcionando no subconjunto de classes de nossos dados de validação. Aqui mesmo. Imprima isso porque agora estamos em um loop. Então eu tenho que usar dot loc aqui. E é muito importante que você também veja que eu ainda posso cometer erros muita frequência e que você não pode ter medo de erros em Python porque isso não faz mal. Erros são baratos. Então, experimente. Nesse caso, eu errei, às vezes tenho problemas em manter as colunas e as linhas separadas. E aqui, curiosamente, vemos valores muito variados. Então, temos três que estão em torno de 60 por cento, o que é bom. Mas o terceiro valor está em torno de 23%, enquanto o último é zero. Então, eu dou uma olhada nos índices. E podemos ver aqui que deve ser a Ilha porque a Irlanda tem apenas cinco valores no total. Portanto, definitivamente temos um problema de previsão aqui, apesar de nosso modelo estar indo bem no geral. Isso é péssimo com os dados da ilha porque não há dados suficientes ali mesmo. Aqui você pode ver que vou tentar melhorar o modelo estratificando-o na proximidade do oceano apenas para tentar ver se isso muda tudo. E isso não acontece. Porque agora eu me certifiquei de que eles fossem distribuídos igualmente entre as classes e que tivéssemos ainda menos dados. Então, antes de ter sorte, eu tinha duas das amostras e estava no conjunto de validação. E agora eu tenho menos. Agora não posso fazer isso porque , bem, isso já é um subconjunto dos dados, então vamos pular isso porque, com cinco amostras tentando espalhá-las por todos os conjuntos de dados, é meio discutível. E, na verdade, neste caso, você precisa pensar se você pode obter mais amostras, alguma forma criar mais amostras, coletar mais amostras ou se há alguma maneira tirar as amostras de o sistema. Mas, no sentido de que são dados, geralmente devem ser representados em seu modelo. Então, na verdade, neste caso, obtenha mais dados. Nesse caso. O que pode ver aqui é que a estratificação melhorou o modelo geral, o que é bom de ver e dessa forma. Portanto, a barra invertida n é um novo espaço só para torná-lo um pouco mais bonito. Aqui podemos ver que isso está nos dando boas previsões para tudo o que está perto do oceano, perto da baía e do oceano, e abaixo de 1 h do oceano. Mas o interior está tendo um desempenho significativamente pior do que o nosso do que os outros dados. Vamos ignorar a ilha por enquanto porque discutimos os problemas com a ilha. Vamos dar uma olhada nos dados do teste. Porque agora não estamos mais fazendo ajustes de modelos. Então, essa é realmente a validação n e podemos ver que nos dados do teste, interior realmente tem um problema. Portanto, nosso modelo está funcionando bem em geral. Mas algumas coisas estão acontecendo aqui com nossos dados internos. E aqui também seria bom fazer a validação cruzada. Assim, podemos realmente obter incertezas em nossa pontuação e ver se há alguma flutuação nela. Mas vamos passar para o L5. L5 ou IL-5 é um pacote de explicação de aprendizado de máquina. Essa é a documentação. E para árvores de decisão , diz aqui que podemos usar os pesos de explicação. Então é isso que estamos fazendo aqui. Estou chamando isso em nosso modelo aqui. Temos que fornecer seus estimadores. Então, treinamos nosso modelo e podemos ver os pesos de cada recurso e como esse recurso é chamado. E essa é uma maneira extremamente boa de examinar seu modelo para poder explicar o que mais influencia nosso modelo. Também podemos usar Eli cinco para explicar as previsões individuais. Então, aqui, obviamente, podemos aplicar nosso objeto estimador, mas também fornecer amostras individuais e obter uma explicação de como as diferentes características influenciaram essa previsão. Aqui, agora, usaremos apenas uma única amostra de nossos dados. Podemos ver aqui como cada recurso individual contribui para o resultado de 89.000. E é claro que você também pode fazer isso para classificadores. Ou podemos repetir vários números diferentes e ver como eles são explicados por Eli cinco Vou usar a tela aqui. Como eu disse, o formato também é muito bom, mas eu realmente não quero entrar nele nesta aula. E aqui você pode interpretar como cada um deles é influenciado por outros parâmetros diferentes do modelo. Depois de analisá-los, podemos dar uma olhada na importância das características. Você deve se lembrar, de antes, da floresta aleatória que você pode fazer introspecção sobre a importância do recurso. E o Scikit-learn também fornece uma importância de permutação para tudo. Então, para todos, você pode aplicar isso a cada modelo de aprendizado de máquina disponível no scikit-learn. E a forma como isso funciona é que essencialmente, a importância da permutação analisa seu modelo e pega cada recurso nos dados e, um por um, mescla esses recursos. Então, primeiro vai para as residências e lojas mexidas, então elas são essencialmente barulhentas. E então vê o quanto isso influencia sua previsão. E você pode ver aqui que isso lhe dá a importância média, o desvio padrão e também a importância geral. Assim, você pode realmente se aprofundar em como seu modelo é afetado por eles, por cada recurso. Portanto, você também pode decidir abandonar alguns recursos aqui. A seguir, daremos uma olhada nos gráficos de dependência parcial. Esses gráficos são muito bons porque oferecem uma visão unidirecional de como um recurso afeta seu modelo. E a introspecção é relativamente nova no scikit-learn. É por isso que há scikit, tijolo amarelo, scikit menos by, o que torna esses enredos fantásticos. No meio superior, você vê a curva de recuperação de precisão, por exemplo , e geralmente, uma maneira muito boa visualizar coisas diferentes que explicam seu aprendizado de máquina. Aqui, vemos todas as diferentes características do nosso treinamento e como elas influenciam o resultado da previsão. Então, no canto inferior direito, a renda média que você pode ver tem uma forte influência positiva. E aqui você pode interpretar como a alteração de um recurso influenciaria os resultados do preço. Portanto, as famílias , por exemplo, têm um ligeiro aumento quando há mais famílias, etc. É um pequeno enredo muito legal. Mas a biblioteca final e minha biblioteca favorita para explicações sobre aprendizado de máquina, eles tiraram um artigo sobre a natureza dessa até mesmo em forma. Shap tem diferentes módulos explicativos para diferentes modelos, então eles estão basicamente muito bem ajustados a cada um. Você pode até mesmo fazer explicações de aprendizado profundo com o shap. Usaremos o explicador de árvore para nosso modelo florestal aleatório. E queremos que tenhamos muitas amostras de fundo. Então, talvez possamos realmente subamostrar isso para acelerá-lo. Mas agora, passaremos nossos dados de validação para isso, explicaremos nosso objeto que criamos e calcularemos isso. Então, isso leva um segundo e, na verdade, vou cancelá-lo aqui porque quero salvá-las em uma variável para que eu possa reutilizá-las mais tarde e não precisar recalculá-las. Mas, geralmente, o enredo que quero mostrar a vocês é um plano de força. Esse gráfico pode ser usado para explicar basicamente a magnitude e a direção de cada recurso do modelo de aprendizado de máquina de seus dados, como ele muda a previsão. E eu realmente adoro usar esses gráficos e relatórios porque eles são muito intuitivos. Você verá isso em um segundo. Então, aqui temos que passar o valor esperado em nosso objeto explicador e os valores de forma que calculamos antes. E um dos nossos pontos de dados nos dados de validação. Assim, você pode fazer isso novamente para vários de seus pontos de dados de validação. Eu cometi um erro aqui e não tive um sublinhado. Além disso, eu deveria ter ativado o JavaScript para Shapley porque eles fazem alguns gráficos interessantes. Eles são, eles estão recorrendo ao JavaScript para fazer isso. E tem que ser inicializado aqui. Mas depois, temos esse enredo e espero que você mesmo possa experimentá-lo. Porque aqui você pode ver que essa previsão específica foi mais influenciada negativamente pela renda média. E então, atraia negativamente a população em número de famílias de forma um pouco menos positiva. E, no geral, um pacote muito bom. Por isso, analisamos diferentes maneiras de visualizar e incluir dados em seus relatórios e como você pode gerá-los e, definitivamente, conferir a documentação para que eles tenham muito mais para você. Nesta aula, inspecionamos o modelo de aprendizado de máquina, então vimos como diferentes recursos influenciam nossa decisão de aprendizado de máquina. Mas também quão forte é essa influência na decisão e como características diferentes influenciam outras características? Então, talvez possamos até mesmo retirar alguns de nossa aquisição de dados original. E na próxima aula, vamos dar uma olhada na justiça. Portanto, essa parte importante de onde os modelos de aprendizado de máquina pode, na verdade, prejudicar algumas classes protegidas porque elas aprendem algo que não deveriam aprender. E veremos como detectar isso e algumas estratégias, como mitigar isso. 29. 47 Caridade nova: Nesta aula, teremos uma visão introdutória sobre aprendizado de máquina e justiça. O aprendizado de máquina tem tido uma má reputação ultimamente porque prejudicou algumas classes protegidas que não deveriam ter sido prejudicadas pelo modelo. E isso só surgiu quando as pessoas perceberam, não pela ciência de dados fazendo o trabalho de antemão. Nesta aula, veremos como você pode fazer o trabalho. Como você pode ver se seu modelo está tendo um desempenho pior em determinadas características protegidas. E também veja se seu modelo de aprendizado de máquina é menos certo em determinadas áreas. Então, às vezes você obtém um modelo que prevê que alguém está pior situação porque está em uma classe prevista. E isso é uma grande proibição. Se isso acontecer, seu modelo de aprendizado de máquina pode nunca chegar à produção. Mas, às vezes, seu modelo de aprendizado de máquina é menos certo para algumas pessoas se for oferecido um determinado curso. E então você deve tentar aumentar a certeza do modelo fazendo o trabalho de aprendizado de máquina e ciência de dados com antecedência. Isso se baseará no que fizemos e na parte de interpretabilidade. Bem, já fizemos parte da avaliação de justiça. Começamos com uma floresta aleatória e fazemos a pontuação. Portanto, temos uma linha de base saber o desempenho do nosso modelo geral. Em seguida, começaremos a dissecá-lo por classe. Então, já temos essa estratificação na classe porque vamos manter isso de antes, porque melhorou significativamente o modelo. Mas então analisaremos as classes e, na verdade veremos como elas estão se saindo bem. No começo. Queremos saber a partitura e basicamente fazer o mesmo trabalho que fizemos na parte de interpretabilidade. Então, teremos nossas aulas aqui. E então podemos realmente dar uma olhada e interpretar. Nossos dados. faremos o trabalho de obter nossos índices. Então, fazemos tudo com a interseção e obtendo nossos índices de classe e o começo. Então, isso será salvo em idx para índice. E então estamos fazendo a união e a interseção, não a união desses valores para validação e para nosso teste. Porque agora só temos um para realmente testar nossos algoritmos. Portanto, ter os dois conjuntos de dados retidos, isso é realmente bom para esta parte. Você geralmente faz isso no final depois de consertar seu modelo. E depois do ajuste de hiperparâmetros para ver se seu modelo está em desvantagem de alguém. Então, pegamos a interseção com um índice de classe aqui, copiamos isso e garantimos que os dados estejam lá. E então podemos pontuar modelo nos dados de validação e nos dados do teste. , essas pontuações Idealmente, essas pontuações devem ter um desempenho igualmente bom. E, de forma absolutamente ideal, todos eles têm um desempenho tão bom quanto a pontuação geral do modelo. Mas lembramos que o interior era significativamente pior do que todo o resto. E, claro, temos problemas com a Irlanda não ter amostras suficientes para realmente fazer a validação. É por isso que incluí apenas um arquivo de script. E, por enquanto, mais tarde, também mostrarei como detectar erros em seu processamento para que possamos fazer isso. Em seguida, expandiremos isso para incluir a validação cruzada. Porque com a validação cruzada, podemos realmente garantir que não haja flutuações estranhas em nossos dados. Então, talvez o interior tenha apenas alguns dados engraçados que realmente o tornem muito confusos e suas previsões. Então, divulgar isso é muito importante aqui. E isso é só o começo para você. Se você quiser brincar com isso, você também pode. Eu também sou Bill, modelos fictícios e realmente descobrir por que o interior está se saindo muito pior. Usando a interpretabilidade para realmente investigar por que algo está acontecendo neste modelo aqui. Para que tenhamos as pontuações. E ao analisar essas pontuações, é bom. Está ficando um pouco demais com os números. Então, o que podemos fazer? Em primeiro lugar, está testando, exceto o que o Python tem. Então, se houver um erro, porque a Irlanda não tem dados suficientes, podemos detectar esse erro. E com a exceção, vamos apenas colocar um caminho para que todo o resto continue funcionando. Depois de processarmos as Ilhas também. Aí vamos nós. Então, agora vamos salvá-las como variáveis, como Val e test. Porque então podemos, na verdade calcular estatísticas sobre isso. Então, obtenha a média e o desvio padrão. Portanto, um indicador de incerteza aqui seria, ou algo engraçado acontecendo aqui, seria se o desvio padrão de nossa validação cruzada fosse muito alto. O que, curiosamente, não é. Nesta aula, analisamos como dissecar nosso modelo de aprendizado de máquina e avaliá-lo em diferentes classes protegidas sem treiná-las. E vimos que um modelo que, em geral, se sai muito bem pode ter um desempenho muito ruim em algumas classes. E que às vezes nem temos dados suficientes para realmente avaliar nosso modelo. Portanto, precisamos voltar à aquisição de dados e obter mais dados para realmente poder criar um bom modelo e fazer uma boa ciência de dados em relação a essa classe. E o caso comercial aqui é muito claro. Você nunca quer uma desvantagem, alguém que seria um bom cliente, porque você perde um bom cliente. Isso conclui o capítulo sobre aprendizado de máquina e validação de aprendizado de máquina. Na próxima aula, veremos a visualização e como criar belos gráficos que você pode usar em seus relatórios e apresentações de ciência de dados. 30. 50 Viz introdução novo: Neste capítulo final, veremos a visualização de dados e também como gerar apresentações e relatórios em PDF diretamente de Júpiter. E isso conclui esse curso. 31. 51 Visualização básica: Nesta aula, você aprenderá os mecanismos subjacentes para visualização de dados em Python. Importaremos nossos dados como sempre e, em seguida, usaremos a biblioteca de plotagem padrão em Python. Matplotlib at é a base da maioria das outras bibliotecas de plotagem que também são de alto nível, como as marítimas das outras bibliotecas de plotagem que também são . Portanto, é muito bom conhecê-lo porque você também pode usá-lo para interagir com o Seaborn. Então, vamos fazer um gráfico de linhas fácil com o valor médio da casa aqui. Agora, normalmente você quer um gráfico de linhas para dados que estejam realmente relacionados entre si. Então, vamos começar a modificar este. Primeiro. Vamos abrir uma figura. E também chamaremos o enredo show porque o Jupyter Notebook está facilitando um pouco as coisas para nós, nos mostrando o objeto da trama logo após a execução do vendedor. Mas essa é realmente a maneira de fazer isso. Portanto, podemos alterar o tamanho da figura iniciando nosso objeto de figura com um tamanho de figura diferente. Esses geralmente são medidos em polegadas. Simplesmente sim. Só um aparte. E então podemos mudar isso a partir de um gráfico de linhas. Vamos modificar isso ainda mais. Então, como os gráficos de linhas não estão relacionados, procrie aqui, porque se traçarmos isso um contra o outro, parece um pouco estranho. Podemos mudar o marcador para um x. E obtemos um bom gráfico de dispersão aqui. E você pode ver que o mar, por exemplo , torna muito mais fácil obter um gráfico de dispersão bonito. Esse enredo ainda precisa de muito trabalho. Mas você deve saber que é assim que mudamos as cores e os diferentes marcadores. Você pode consultar os marcadores no site matplotlib. Há uma infinidade de mercados diferentes. Mas também podemos começar a adicionar rótulos a isso. Portanto, o objeto de plotagem que temos são objetos de plotagem simples. Então, podemos simplesmente adicionar um rótulo. Então, o rótulo x é a nossa população, e o rótulo y será o valor da nossa casa aqui. E podemos adicionar um título porque queremos que nossos gráficos tenham uma boa aparência e sejam informativos. Além disso, podemos adicionar camadas adicionais de plotagem em cima disso. Portanto, em vez da população em relação ao valor médio da casa, podemos representar graficamente a população em relação total de nossos quartos e alterar o tamanho do marcador, a cor do marcador e o estilo do marcador. Mas, obviamente, nosso total de quartos é dimensionado de forma muito diferente do valor médio de nossa casa. Então, podemos fazer um hotfix agora mesmo. É claro que você nunca faz isso em uma trama real. Mas só para mostrar como sobrepor diferentes tipos de dados no mesmo gráfico, você pode modificar isso. Dessa forma. Você pode salvar seus dados e disponibilizá-los como um arquivo normal. Alterar o DPI significa que temos os pontos por polegada. Essa é mais ou menos a resolução de nossa trama que está salva. Então, também podemos traçar ImageData. Não temos uma imagem para isso no momento, mas vale a pena plt.show. E, essencialmente, basta fornecer os dados da imagem e ele traçará a imagem 2D para você. Vamos dar uma olhada em como alterar esse gráfico, se for mais como sobrepor dados diferentes sobre ele. se tivéssemos apenas uma dispersão, tudo bem e podemos adicionar uma legenda. Mas isso nos dá um bom aviso de que não há rótulos ou neste objeto de enredo. Isso significa que podemos adicionar um rótulo ao nosso gráfico de dados aqui. E vamos chamá-lo de casa. Então, agora temos uma lenda aqui. Faz mais sentido sobrepor mais dados. Então, se quisermos plotar alguns dados em cima, podemos simplesmente chamar outra função de plotagem aqui. Altere o marcador para que pareça um pouco diferente e você possa ver que nossa legenda também está atualizada. Então é assim que você pode fazer gráficos singulares. E, como mencionei, C1 é uma abstração de alto nível para matplotlib. Isso significa que podemos realmente usar o matplotlib para trabalhar um pouco com um C1. E isso só lhe dará um exemplo de como salvar um terreno de Seaborn. Mas você também pode facilmente procurar outras formas. Adicione informações aos seus gráficos marítimos ou modifique seus gráficos Seaborn por meio da interface matplotlib. Então, aqui vamos fazer o gráfico de pares com apenas 100 amostras porque queremos que seja rápido. E podemos mais uma vez abrir uma figura matplotlib e alterar o tamanho da figura conforme quisermos. E depois salve a figura. Aqui podemos ver que isso agora está disponível como PNG. Abra o PNG e você o usa sempre que precisarmos. Aqui mesmo. E isso, ao abrir, parece apenas o enredo, mas como uma imagem. Se você quiser fazer gráficos rápidos diretamente do DataFrames sem chamar Seaborn ou matplotlib. Na verdade, você pode chamar a função de enredo do pandas, que interage com o marítimo. Portanto, d do gráfico oferece a capacidade de fazer diferentes tipos de gráficos. Na verdade, você pode criar gráficos de barras e histogramas e também gráficos de dispersão, o que faremos desta vez. Isso significa que apenas forneceremos o rótulo de nossos dados x e y e solicitaremos que ele faça um gráfico de dispersão. Usaremos a população contra o valor de nossa casa novamente. Desculpe, total de quartos novamente. E basta fornecer a palavra gráficos de dispersão, um gráfico de dispersão para nós. Nesta aula, aprendemos as diferentes maneiras de plotar dados. Em Python. Usamos matplotlib, usamos pandas diretamente e até vimos que eles interagem entre si porque tanto os marinhos quanto os pandas dependem do matplotlib. Assim, você pode pegar os objetos retornados por esses gráficos e salvá-los e até mesmo manipulá-los ainda mais. Na próxima aula, veremos como traçar informações espaciais. 32. 52 Novo geoespacial: Nesta aula, veremos como mapear dados geoespaciais. Então, dados quando você tem localizações geográficas disponíveis. Assim, você pode criar mapas interessantes e realmente mostrar de onde estão seus dados, o que adiciona outra dimensão de compreensão por meio de seus dados. Começaremos carregando nossos dados. Nossos dados já contêm longitude e latitude. No entanto, eles estão na ordem errada, então teremos que ter isso em mente. Vamos importar o folium. Folium é uma forma de traçar Na verdade, o Folium é uma forma de traçar nossos dados em mapas de forma interativa. Então, começaremos com um mapa base do fólio e forneceremos a localização dos nossos primeiros dados. E eu gosto de andar e a maneira mais fácil de fazer o mapa base para meus dados é fornecer a média da latitude e longitude como o ponto central do nosso mapa. E então podemos dar uma olhada, sim, no impacto da tela. Você pode ver que isso tem o OpenStreetMap como plano de fundo. E você pode andar por aí. E então podemos começar a adicionar coisas a ele. Um exemplo é adicionar marcadores. Os marcadores são uma boa maneira de simplesmente adicionar locais de seus pontos de dados e fornecer alguns exemplos de locais nas dicas de ferramentas. E isso é o que faremos aqui. Portanto, o volume tem a classe do marcador e dê uma olhada em todas as diferentes classes que você pode usar. A biblioteca ainda está crescendo, mas já tem algumas funcionalidades muito interessantes para criar mapas muito legais. E usaremos o mercado para caminhar. Adicionaremos os primeiros pontos de dados do nosso mercado a eles. Então é por isso que tem que usar dois métodos. E copiaremos o mapa base para a célula porque tudo precisa estar contido em uma célula para poder alterá-lo. E podemos ver isso aqui. Então, vamos mudar isso, adicionar latitude e longitude e usar I locked para obter a primeira linha do nosso DataFrame que usarmos adicioná-la ao nosso mapa base. E quando movemos nosso zoom para baixo, podemos ver nosso primeiro marcador no mapa. Então, isso é muito bom. Podemos mudar no mapa. Também podemos trocar por marcadores. Agora, diferentes tipos de marcadores. Assim, você também pode adicionar círculos para marketing ao seu mapa. Definitivamente, experimente com isso. É muito divertido. Acho que é outra maneira bem bacana de visualizar dados. Então, enquanto nosso mapa ampliava demais o valor padrão, então em 12 não havia nenhum lugar para ser encontrado. Então, diminua um pouco o zoom no início para que possamos realmente ver no Marcos também podemos adicionar vários marcadores iterando sobre nosso DataFrame. Então, para isso, basta usar o método de origem temos no dataframe e isso retornará o número da nossa linha e também a linha e o próprio conteúdo da linha. Então, para que isso funcione, provavelmente adicionarei uma amostra ao DF porque se adicionássemos 20.000 marcadores ao nosso mapa, esse mapa ficaria completamente ilegível. Aí vamos nós. Então, talvez faça cinco para começar. E frito. Aqui, adicionarei o ISO que está desempacotado neles no próprio loop. E eu posso remover, eu tranco aqui porque não precisamos acessar nenhum local de nossas coisas. A iteração já faz isso por nós. E temos um bom conjunto de alguns, de alguns Mockus aqui. Depois, você também pode alterar esses marcadores, como adicionar uma dica de ferramenta ao passar o mouse sobre eles. E essa dica de ferramenta pode conter qualquer informação que tenhamos disponível. Então, por exemplo, podemos usar a proximidade do oceano aqui. Agora, quando você passa o mouse sobre ele, você pode ver que tipo de flores esse marcador tem De acordo com nossa data nesta aula, vimos como criar mapas e adicionar marcadores a esses mapas e torná-los realmente agradável e interativo. Na próxima aula, veremos mais gráficos interativos, gráficos barras e tudo mais para poder interagir diretamente com os dados e criar esses belos gráficos interativos. 33. 53 Exportando dados novos: Muitas vezes, precisamos salvar esses dados porque não queremos executar novamente a análise o tempo todo. Tudo o que queremos é compartilhar os dados com um colega. Isso significa que precisamos exportar os dados ou as visualizações que fazemos. E isso é o que faremos nesta aula. Com nossos dados ligeiramente modificados, podemos, por exemplo usar a codificação one-hot que usamos antes. Só para sabermos que temos alguns dados diferentes lá. E podemos usar para usar CSV ou qual desses métodos você pode usar, expirar também e gravar isso em um arquivo. Dessa forma, temos os dados disponíveis após processá-los e não precisamos executar novamente o cálculo todas as vezes. E para CSV, são necessários muitos argumentos diferentes, assim como ler CSV, é muito conveniente e, dessa forma, você pode realmente substituir os nans aqui por, por exemplo, apenas a palavra nan. Então, as pessoas sabem que isso é um, não um número e não apenas um valor ausente em que você esqueceu de adicionar algo. E então podemos dar uma olhada nesse arquivo. E no navegador Jupiter também, procure por nana. E podemos ver aqui que ele adicionou nan diretamente ao arquivo. Então, é realmente um invólucro conveniente para colocar nosso DataFrame em um formato compartilhável. Novamente, em vez disso, também podemos usar a funcionalidade de escrita. Então, é basicamente assim que você pode gravar qualquer tipo de arquivo que quiser. Usaremos o texto externo e esse TXT de pontos e trocaremos o modo para o modo de gravação. Então w, e vamos usar apenas F S, um identificador de arquivo agora. E F dot, certo? Isso deve nos dar a oportunidade ou a possibilidade de escrever uma string nesse arquivo. E podemos converter nosso DataFrame em uma string com valores de parede. Acho que deveria haver um método de duas cadeias de caracteres para realmente fornecer, sim, um método toString aqui, que é inocência e outro método de exportação. Mas, na verdade, isso é apenas para mostrar que você pode escrever qualquer tipo de coisa que possa ser formada como uma string em um arquivo. Então, veremos aqui que essa parede não está tão bem formatada quanto antes. Temos as guias intermediárias em vez do comentarista. Então, na verdade, é preciso um pouco de magia de cordas para fazer isso funcionar tão bem quanto os pandas em CSV. Mas sim, é assim que você exporta arquivos em Python. Agora, algo a notar aqui é que o direito sempre substituirá seu arquivo. Então, se você mudar para qualquer outra coisa, daremos uma outra olhada no arquivo. Podemos ver que isso refrescante nos dá apenas isso. Portanto, o arquivo é substituído pela operação de gravação. Há outro modo, outro modo que devemos dar uma olhada, que é o modo de acréscimo. E o modo de acréscimo tem apenas o significante a, onde podemos adicionar a um arquivo. Portanto, isso é muito bom se você quiser preservar os dados originais ou algum tipo de processo em andamento para gravar dados e adicionar ao seu arquivo, a um arquivo existente sem excluindo esse arquivo essencialmente. Então, podemos ver aqui que escrevemos nosso DataFrame. E então podemos copiar isso e alterar isso para acrescentar executado, revisar, atualizar e dar uma olhada no final. Deveria dizer qualquer coisa ou ser. E isso acontece. Então, sim, esses são arquivos. Já fizemos isso no básico da visualização, mas caso você pule isso, quando tiver números, você pode exportar esses números geralmente com o comando de segurança. Então, este usa um nome de arquivo, manipuladores de arquivos, algum tipo de significante e, claro, você precisa de algum tipo de gráfico. Eu realmente quero indicar o método de layout restrito aqui, porque esse é muito bom, muito jovem para restringir o layout de seus terrenos seguros. Então, se você salvar seus dados , eles parecerão um pouco instáveis. layout apertado do Plt.show realmente limpará as bordas de sua figura e geralmente as tornará mais apresentáveis. Basicamente, eu os executo em quase todas as figuras exportadas. E aqui você pode ver que nossa figura foi exportada muito bem. Você pode mudar todos esses, todos esses parâmetros. Claro, para salvar a figura exatamente da maneira que você precisa. Talvez você tenha uma cor corporativa que queira que sua figura seja. Dentro. Neste caso, eu escolhi preto, o que obviamente é uma má escolha se você é uma lenda ou desbloqueia. Mas sim, só para mostrar como fazer isso, como brincar com isso. Vamos ver como é fácil salvar dados em diferentes formatos do Python. E então, na próxima aula , veremos como podemos gerar apresentações diretamente do Jupiter Notebooks. 34. 54 apresentações novas: Pode ser complicado gerar apresentações inteiras, mas é possível obter apresentações de Ride out of Jupiter. E nesta aula, mostrarei como você pode usar qualquer tipo de notebook. Usaremos o criado e o de exploração visual. Então, você quer ir para a barra de ferramentas View Cell e, em seguida, fazer uma apresentação de slides. E você pode alterar o tipo de slide de cada célula. Então, se você quiser que um slide seja exibido ou ignorado será um dos slides principais. Então. Então, tudo o que você quiser em seu próprio slide, você pode colocar como slot, slide ou subslide. E o subslide será uma navegação diferente. Portanto, observe esses gráficos enquanto eu analiso a apresentação e em um segundo. E o fragmento, vai adicionar outro elemento ao slide dos pais, essencialmente. Então, vamos verificar isso também. Então, depois de significá-los, podemos acessar o File Download S e chamar os slides do Reveal JS. Quando abrimos isso, obtemos uma apresentação diretamente no navegador. Vamos nos livrar disso. Então, este é um slide principal rolando para a direita, essencialmente, e ainda podemos dar uma olhada nos dados e eles nos mostram o código e tudo mais. Às vezes você tem que brincar um pouco com, uh, com tramas em que elas funcionam. Esses são os slides sobre os quais falamos antes. E agora, o fragmento adicionará essencialmente outro elemento ao seu slide. Então, esse também é o fragmento e outro fragmento. Nesta aula, tivemos uma visão geral de como gerar apresentações em JavaScript e HTML a partir de Júpiter. Vimos que podemos realmente preservar os dados e o código em nossas apresentações, até mesmo incluir esses gráficos automaticamente. Vimos que podemos fazer subslides e fragmentos e realmente fazer essas apresentações super interessantes diferentes do que você costuma ver. Na próxima aula. Veremos como tirar relatórios em PDF de Júpiter. 35. 55 PDF novo: Nesta aula final, você aprenderá como gerar PDFs diretamente do notebook Jupiter. E como você pode fazer com que essas belas visualizações cheguem aos seus PDFs sem nenhuma etapa intermediária. Começaremos com um caderno de Júpiter e acessaremos o Print Preview. Aqui já podemos salvá-lo como PDF. Se imprimirmos isso. Como alternativa, podemos fazer o download como PDF, mas aqui você precisa se certificar de que instalou. E eu sei que muitas pessoas sabem. Eu não conheço neste computador, por exemplo, então você recebe um erro no servidor. Você pode seguir a etapa extra de fazer o download como HTML. Abra o HTML e isso equivale à sua pré-visualização impressa e salve-o como PDF. E no PDF, você pode ver que agora ele contém seu código e todas as informações que você tinha disponíveis anteriormente. Além disso, temos o NB convert, então a funcionalidade de conversão de notebook que vem com o notebook Jupiter, e acho que é uma maneira muito boa de trabalhar com ele. É uma leitura para mim quando você é chamado apenas de espaço de Júpiter e é convertido. E ele lhe dirá como usá-lo essencialmente. Então, o que você vai querer fazer é acessar seus dados aqui mesmo no meu repositório de código para este curso do Skillshare. E aí você pode simplesmente Júpiter e ser convertido e, em seguida, escolher uma das formas gerar o relatório a partir desse HTML. O HTML geralmente é o padrão. Então, se você acabou de chamar Júpiter e foi convertido em seu notebook, ele será convertido em HTML. Você também pode fornecer menos dois. Mas se você disser PDF, haverá o mesmo erro de antes de você não ter o látex instalado. Portanto, se você instalar isso, poderá facilmente obter esses relatórios em PDF diretamente de para colocá-los. Outra maneira muito boa é que, bem, se você está no caderno de Júpiter, ele costuma brincar um pouco e suas ou as células podem ter números bem altos. Então, seja como 60, 70. E isso basicamente mostra quanta experimentação você fez. Se você quiser um notebook limpo que seja executado de cima para baixo, você pode fornecer a opção de menos menos execução, que executa seu notebook célula por célula antes de exportar. E é assim que você gera PDFs em Júpiter. Então, talvez você precise instalar o mais recente para poder fazer isso. Tudo. Você usa a funcionalidade de impressão dos relatórios HTML. Mas isso encerra a aula sobre ciência de dados e Python aqui no Skillshare. Obrigado por chegar até aqui. Espero que você tenha gostado e espero que isso o faça avançar em sua carreira. 36. 60 Conclusão novo: Parabéns, você lançou o curso completo sobre Ciência de Dados com Python aqui no Skillshare. E eu entendo que isso é muito. Passamos por todo o fluxo de trabalho da ciência de dados, incluindo o carregamento de dados, limpeza dos dados e, em seguida análise exploratória de dados e criação de modelos de aprendizado de máquina. Depois, validando-os, analisando a interpretabilidade e também gerando relatórios e apresentações a partir de nossa análise. Isso é enorme e eu entendo que isso pode ser opressor. Mas você sempre pode voltar aos vídeos pequenos e dar uma nova olhada neles para entender, aprofundar e aprofundar seu conhecimento. Agora mesmo. Na minha opinião, os melhores cientistas de dados simplesmente criam projetos. Você aprenderá mais sobre ciência de dados aplicando seu conhecimento agora mesmo, e é por isso que temos um projeto. No final deste curso, você criará um bom projeto de ciência de dados, analisará seus próprios dados ou os dados que eu forneço aqui e criará um PDF com pelo menos uma visualização de sua preferência. Honestamente, quanto mais você faz, melhor. Mergulhe nos dados, encontre relacionamentos interessantes em seu conjunto de dados e realmente descubra como visualizá-los da melhor maneira. E é assim que você se tornará um cientista de dados melhor aplicando realmente seu conhecimento. Obrigado novamente por fazer este curso. Espero que você tenha gostado. E confira meus outros cursos aqui no Skillshare, se você tiver tempo, agora, faz questão de sair e construir algo interessante, algo que você realmente goste. Obrigado novamente por fazer este curso. Eu trabalhei muito nisso e estou feliz que você tenha sobrevivido ao final. Espero ver você novamente e construir outra coisa.