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.