E aí meu amigo e minha amiga do universo físico! Aqui é o Lucas do Universo Discreto para mais um vídeo. No vídeo de hoje eu vou anunciar uma espécie de reboot do meu canal, né?
Como assim um reboot? Eu vou explicar: por exemplo, pensa em uma história em quadrinhos. .
. uma história em quadrinhos o personagem costuma ter fases você pode ter uma fase que o personagem fica mais sombrio você pode ter uma fase em que o personagem fica mais realista, fica mais sério, fica mais alegre. .
. e da mesma forma aqui no canal eu queria anunciar uma fase nova! E como que vai funcionar essa fase?
Eu pretendo focar mais na parte de programação que como vocês devem ter percebido nos últimos vídeos, eu estava numa fase bem divulgação científica mesmo! Fazendo vídeos explicando certos temas complicados, anunciando novidades aí no mundo da computação, explicando conceitos de uma maneira mais divertida como é o caso do meu vídeo de Vingadores e programação dinâmica, que foi o último. .
. e eu já estava há muito tempo querendo mergulhar mais na parte de programação. Então, os próximos vídeos por um tempo vão ser bastante focados na parte prática.
Uma dessas coisas que eu queria fazer é falar tudo que eu puder de Machine Learning, do mais básico até chegar em Deep Learning, redes GAN. . .
eu queria que fosse uma espécie de um curso, quase que completo para você ter as noções básicas pra trabalhar com Machine Learning então é isso que eu vou fazer, é. . .
eu vou fazer muitos vídeos agora de Machine Learning, o máximo que eu puder, eu espero chegar até Deep Learning, não estou dizendo que vou conseguir mas eu vou tentar, me esforçar muito para isso e de qualquer forma, esse conteúdo gratuito para vocês utilizarem, né. . .
vai acabar sendo um benefício, muito grande para muitas pessoas que desejam ter contato com esse conteúdo mas tem limitações por conta do inglês, tem limitações porque tem que pagar cursos caros então a idéia é disponibilizar o máximo de conteúdo de programação gratuito o que eu sei que nessa fase nova vou abordar muito Machine Learning, eu vou abordar também Javascript, né. . .
eu quero avançar nessa série de Javascript para a gente trabalhar depois com a parte de Programação Web, né. . .
o instituto onde eu estou trabalhando está abrindo uma Especialização de Programação Web que vai começar a rolar a partir de 2020 então não tem jeito, eu preciso mergulhar muito na parte de Programação Web estudar React, a parte de aplicativos móveis (que) também vai entrar nesse curso. . .
então eu pretendo gravar o máximo de vídeos possíveis nessa fase nova, desses conteúdos ligados à programação de alguma maneira. Mas assim, isso não significa que eu nunca mais vou fazer vídeos de divulgação, não é isso eu pretendo fazer vou fazer muitos vídeos de divulgação mas não agora, mais para frente. Vamos ver aí como é que vai funcionar essa fase nova vamos ver se vocês vão gostar, se vocês vão assistir, se vocês vão curtir.
. . É, nada aqui é escrito na pedra e fica o resto pra sempre, não, é.
. . as coisas aqui mudam, né.
. . eu tô nessa fase nova e se essa fase não agradar, assim como nas histórias em quadrinhos isso também acontece, a gente muda, não tem problema.
. . vira outra coisa, tá certo?
e esse vídeo que você está assistindo, ele é sobre o quê? Quando a gente fala de Machine Learning, a gente precisa abordar um pouquinho a parte de pré-processamento, que é a parte de preparar os dados, para aí você fazer classificações. Nesse vídeo eu vou ensinar vocês a como completar dados que estão faltando em sua base de dados.
Isso acontece, né? Até um exemplo, tem uma base que eu trabalho, de imagens médicas, que algumas imagens foram tiradas por problemas, às vezes falta informação sobre o paciente. .
. Então às vezes você tem uma base de dados até grande, mas que falta informação e você precisa completar de alguma maneira para o resultado final da sua classificação ficar positiva, então vou ensinar vocês aqui como fazer no Python para completar dados que estão faltando em sua base de dados. Tá certo?
É isso, espero que você tenha entendido bem aí como que vai funcionar essa fase e assista o vídeo! E aí meu amigo e minha amiga do universo físico, aqui é o Lucas do Universo Discreto para mais um vídeo! E a partir de agora começa o reboot do canal.
O conjunto de vídeos aonde a gente vai desde o básico, desde a parte de pré-processamento, até Deep Learning. É essa a meta que o canal almeja, né. .
. Apresentar uma série de vídeos aí, é, de Machine Learning e eu vou começar por esse, nesse vídeo aqui o que é que nós vamos fazer, pessoal. .
. Eu vou ensinar vocês a completar dados que estão faltando na sua base de dados. Então como que a gente faz isso, vamos aprender.
. . Bom pessoal, eu estou mostrando aqui para vocês o conjunto de dados que eu tô trabalhando.
Eu peguei uma série de informações dos canais do Science Vlogs Brasil, eu só peço desculpa aí que na hora de importar o arquivo os acentos deram pau, mas vamos deixar isso de lado, isso não vai afetar o exemplo, né. . .
Aqui temos vários canais do Science Vlogs Brasil. . .
Papo de Primata, Colecionadores de Ossos, Drgões de Garagem, o Schwarza, Físico Turista, o Universo Discreto aqui. . .
O que é que essas. . .
o que são, melhor dizendo, essas duas colunas aqui? São os inscritos, e o total de visualizações que o canal tem no YouTube, esses dados são um pouco antigos, então se vocês olharem agora, vai estar um pouco diferente. .
. mas enfim, a gente vai usar essa base de dados aí, vamos pegar um canal grande, deixa eu ver aqui. .
. aqui, o Pirula. .
. O Pirula, por exemplo, tem 752 mil inscritos na época, quando esses dados foram importados. .
. e um total de 76 milhões, quatrocentos e sessenta e dois mil, setecentos e oitenta e sete mil visualizações. .
. coisa para caramba! E o que é que nós vamos fazer?
Vamos apagar alguns dos dados que essa planilha tem, e escrever um código em Python que preencha, da melhor maneira possível esse conjunto de dados. . .
Vamos pegar, por exemplo, o Peixe Babel. O Peixe Babel tem. .
. tinha na época 51 mil inscritos e um milhão, seiscentos e três mil e setecentas visualizações. .
. vamos apagar, eu vou apagar colocando NaN, que é uma maneira de eu indicar no Python que os dados não se encontram disponíveis e vamos criar um algoritmo aqui que preencha da melhor maneira, baseado nesse conjunto de dados aí, automaticamente, o Peixe Babel. Vamos ver aí no Python como a gente faz isso.
. . Né, tá aqui o nosso Python bonitinho.
. . A gente vai precisar primeiro importar duas bibliotecas, pessoal.
. . o Numpy, a gente vai referenciar ele como np ao longo do código e vamos usar também a Pandas, a Pandas é uma das várias bibliotecas de Machine Learning que temos aí no Python, e outra coisa, talvez você ache um pouco chato, um pouco simples esse exemplo, mas que em Machine Learning a gente tem que partir do básico, pras coisas um pouco mais chatas nesse começo, mas aí mais pra frente vai ficando legal, principalmente quando a gente pegar, é Deep Learning, então aí vai ficar maravilhoso o negócio.
. . A primeira coisa, a gente precisa pegar a base de dados, vamos criar uma variável aqui que vai receber o objeto baseDeDados e vamos usar uma função, que é a read_csv().
CSV é um (formato de) arquivo de planilha muito simples aonde os dados podem estar delimitados, separados ou por vírgula ou por ponto e vírgula. Mais para frente eu vou ensinar vocês a trabalharem com conjuntos de dados em outros formatos de arquivo, mas vamos começar pelo CSV que é mais básico. .
. na pasta do projeto tem aquela planilha que é a svbr. csv.
. . e os arquivos estão delimitados por ponto e vírgula, então a gente vai precisar passar um parâmetro delimiter, pra indicar que os dados estão separados por ponto e vírgula.
. . e aí pessoal, eu preciso extrair os dados, os valores.
. . O conjunto de dados vai estar em X, normalmente aqui em Machine Learning, a gente usa X para referenciar o conjunto de dados e o y para indicar o rótulo desses dados, no momento ainda não vou trabalhar com y, vou trabalhar só com o X, mais para frente a gente vai usar X e y direto aí, então a gente vai pegar da base de dados o conjunto de linhas e colunas, os valores mesmo.
. . Eu vou pegar todas as linhas e todas as colunas, é isso que estou indicando aí, mas eu vou pegar só os values, só só os valores.
Para você entender o que está acontecendo aqui, vamos printar X aqui, vamos ver. Vai demorar um pouquinho pessoal que estou usando uma máquina muito lenta. Então tá aí, tá vendo todos os dados estão aí direitinho, Primata Falante com 110 mil, oitocentos e quarenta inscritos na época, Drgões de Garagem com 6 mil, Mimimidias com 66 mil 122.
Dois milhões, 9 mil, 621 visualizações. . .
Coisa pra caramba também, galera do Science Vlogs está sinistra, está top, então beleza! A gente pegou os dados como a gente queria, então agora vai entrar outra biblioteca que nós vamos usar bastante, que é a SKLearn, eu já usei ela muito no meu canal, em alguns vídeos de Machine Learning mesmo, a gente vai usar muito ela, e muito o Pandas. A gente vai chamar o submódulo impute, que é para você imputar, introduzir os dados chamando SimpleInputer.
Talvez pessoal quando vocês estiverem assistindo esse vídeo, talvez alguns módulos fiquem deprecated, ou seja, eles ficam velhos, desatualizados e tudo mais. Quando isso acontecer eu vou tentar gravar novos vídeos, pra aí (ficar) atualizando então vamos ver, né, é mas assim, na última versão da SKLearn, o módulo se chama SimpleInputer, o que a gente vai usar, e aí a gente quer criar o objeto imputer, o objeto imputer, ele vai nascer, né, ele vai ser um instanciado, melhor dizendo, a partir do objeto SimpleInputer. .
. o construtor SimpleImputer, melhor dizendo, e aí eu tenho que indicar quais são os valores que estão faltando, eles estão representados de que maneira? Como vocês viram, eu renomeei pra Nan, pra dizer que é um número indisponível, então eu indico que os "missing values" vão ser NaN, NaN a partir do módulo np, que é o Numpy, Numerical Python.
. . Eu tenho que indicar qual estratégia que eu vou usar, vou usar uma estratégia bem simples no começo, que é a mean, né.
. . seria a média.
Vai calcular a média de todos os valores que estão faltando, para calcular um novo valor pra esses campos que são NaN, no caso são os campos que eu coloquei NaN no Peixe Babel, foi lá que eu coloquei. Bom, eu fiz isso, agora eu preciso chamar Fit(), pra esse cálculo que vai preencher esses espaços vazios, (que) vão ser realizados. Então eu vou chamar o objeto imputer, chamar Fit(), que é onde esses cálculos vão ser feitos, aí passando o X.
. . E aí pessoal, o que acontece é que as linhas vão ser todas, só que coluna, não sei se vocês perceberam mas a primeira coluna, né vou botar aqui que é melhor.
A primeira coluna são os nomes dos canais: Peixe Babel, Primata Falante, Mimimidias, Jornal Ciensacional. . .
Então a gente vai excluir essa coluna de nomes, e a gente só vai usar as colunas em diante, que no caso, a coluna 1 vão ser os inscritos, aí a coluna 2 vão ser o número de visualizações. . .
Só que a gente vai colocar 1 e 3. . .
Por que 1 e 3? Porque aqui funciona da seguinte maneira, o 1 é justamente a segunda coluna do seu projeto, e aqui você tem que indicar a última coluna, o índice da última coluna mais um. .
. Como a última coluna é a coluna 2, eu tenho que colocar alí, naquele valor, 2 mais 1 (2 + 1) que é 3. É como se o teto tivesse que ter uma unidade a mais do que o total de colunas que você tem.
Então com isso aqui o cálculo já tá feito. . .
Para funcionar, que eu fiz? Eu só trabalhei com a parte numérica. Eu preciso transformar esses dados de novo em inteiro e colocar a coluna do nome dos canais que eu exclui, então (vou) fazer X receber imputer.
transform(), eu vou transformar os dados aí, de que maneira? De novo a coluna 1 e 3, representando os dados como string, para eu mostrar eles na tela. Eu cometi um erro aqui, Imputer é com m, ai ai ai,.
. . Imputer é com m, pessoal, desculpa.
. . Tá vendo?
Eu acabei de imprimir os valores aí, e como vocês podem perceber, você só tem duas colunas. . .
A coluna de inscritos do canal e a coluna de visualizações do canal. A gente tem que colocar, na coluna zero, o nome dos canais de novo. Como é que a gente vai fazer isso?
A gente vai inserir uma coluna, um X na coluna zero, e a gente vai inserir tudo que está na coluna zero de baseDeDados. baseDeDados. iloc[:0].
values é a primeira coluna da base de dados original, aonde contém apenas os nomes dos canais. Então você está pegando a coluna que tem os nomes dos canais, inserido na coluna zero de X, e aí só falta eu indicar que eu estou fazendo isso em coluna, axis=1 indica que isso está sendo inserido em coluna, se fosse axis=0 ele ia inserir como linha, tudo isso daí. .
. e beleza, com isso agora só falta eu imprimir pra ver se ficou tudo certo, vamos conferir para ver se não esqueci nada, se tá funcionando direitinho, né? Aí, errei alguma coisa aí.
Ah, erro meu. . .
Aqui tem que estar separado em vírgula, estar linha separada de coluna, então pra estratégia mean, vamos ver como ficou. . .
o Peixe Babel tá aqui, ficou com 153 mil, 711 inscritos. . .
Um pouquinho mais, na verdade bem mais do que o original, mas não tem jeito, não tem como tirar do sovaco o valor certo. . .
E um total de 10 milhões, duzentos e cinquenta e quatro mil, quatrocentos e vinte visualizações. O que é compatível, né. .
. com um canal que tem 150 mil inscritos. Vamos mudar a estratégia agora, vamos usar mediana, vamos ver como é que vão ficar os resultados finais.
O Peixe Babel nesse caso ficou com 49 mil, 797. . .
Muito próximo do valor original e um total de 1 milhão, quinhentos e noventa e cinco mil, 976 visualizações. . .
Também ficou interessante, tem outras estratégias, né. . .
Vou colocar na descrição do vídeo um tutorial mais completo sobre como você imputa, como você introduz dados para Machine Learning, Tá certo? É basicamente isso, espero que você tenha gostado desse vídeo, esse vídeo também é comemorativo pelo relançamento do Science Vlogs Brasil, né. .
. o Science Vlogs aí, essa iniciativa sensacional que agrupa uma série de divulgadores científicos, uma série de pessoas que trabalham com ciência na internet, acompanhe aí, tem muito conteúdo novo lá, tem muito vídeo legal, essa minha iniciativa de fazer um reboot no canal também é uma espécie de relançamento do Universo Discreto, então acompanha lá o Science Vlogs, os canais do Science Vlogs, que vai ter muita coisa legal alí pra vocês, está certo? Muito obrigado por ter assistido até aí, não deixe de curtir, compartilhar e se inscrever no canal e espero vocês na próxima!
Falou!