O Insight está com inscrições abertas para bolsistas de mestrado e doutorado para o projeto de pesquisa Anamnese Assistida por Inteligência Artificial. Venha fazer parte do nosso time e contribuir com o desenvolvimento de tecnologias de ponta aplicadas aos problemas da sociedade e das organizações.
Os bolsistas serão selecionados por mérito acadêmico, tendo em vista o perfil esperado e os requisitos necessários para realização da pesquisa.
Projeto Anamnese Assistida por Inleligência Artificial do Centro de Referência em Inteligência Artificial (CEREIA).
O objetivo do centro é desenvolver pesquisas voltadas ao uso da inteligência artificial para a resolução de problemas na área da saúde, bem como promover a formação de profissionais para atender esse mercado. O CEREIA foi inaugurado no dia 20 de março pela FAPESP e o Grupo Hapvida NotreDame Intermédica e ocupará uma área de 380 metros quadrados no quinto andar do Condomínio de Empreendedorismo e Inovação da UFC.
No Brasil são realizadas mais de um bilhão de consultas médicas por ano. Neste contexto, anamnese é uma atividade essencial no atendimento médico. Nela são investigados e documentados episódios e fatos relacionados ao paciente, resumindo suas queixas e provendo um ponto inicial para um diagnóstico e por conseguinte um tratamento. Na maioria dos ambientes de atendimento ao paciente, a anamnese é feita de maneira rudimentar: a investigação depende exclusivamente da habilidade do profissional, a documentação é feita através de textos livres e desestruturados e o possível diagnóstico é também manual e dependente do conhecimento do profissional.
As informações da anamnese e exames complementares são importantes para possíveis diagnósticos. O reconhecimento de padrões (pattern recognition) e de critérios de diagnóstico (combinação de sintomas, sinais e resultados de exames) é usado na determinação de um diagnóstico correto. Dessa forma, é essencial a concepção e o desenvolvimento de soluções baseadas em inteligência artificial para auxiliar os profissionais da área da saúde com o objetivo de melhorar o atendimento e a segurança do paciente, assim como reduzir custos.
Sediado na Universidade Federal do Ceará, grupo pretende desenvolver projetos voltados à aplicação de internet das coisas, big data, transformação digital e tecnologias de ponta na prevenção, diagnóstico e terapias de baixo custo (foto: divulgação/Hapvida NotreDame Intermédica)
Número de Vagas
2 bolsas para Mestrado;
1 bolsa para Doutorado;
Período de duração da bolsa
Até 24 meses para bolsa de mestrado e até 48 meses para bolsa de doutorado
No dia 09 de maio de 2023 teve lugar no Centro de Eventos Brasil 21, em Brasília, o “AWS Public Sector Symposium”.
Este evento buscou promover a capacitação de agentes, líderes e arquitetos da transformação digital do setor público, a partir de recursos novos e insights com a utilização da tecnologia em nuvem.
“AWS Public Sector Symposium” contou com sessões temáticas em quatro áreas principais: educação, governo e justiça, setor de serviços financeiros e saúde, bem como contribuiu no diálogo de assuntos diretamente relacionados em ajudar organizações do setor público voltadas para serviços governamentais, educacionais, sem fins lucrativos, de saúde e financeiros a explorar o cenário tecnológico.
O Prof. Dr. José Antonio Fernandes de Macêdo (Cientista-chefe da Transformação Digital do Governo do Ceará) foi convidado para participar do referido evento e em sua fala, salientou o papel desafiador em aproximar a discussão acerca dos resultados e impactos alcançados no uso da computação em nuvem na construção da Plataforma Big Data Social, detalhando o Programa Cientista Chefe do Ceará, que contempla a relevante união entre a academia e a gestão pública.
No dia 26 de janeiro de 2023 acontecerá o “I Congresso Internacional sobre Violência de Gênero: ações estratégicas, políticas públicas e tecnologias (I CIVIGE)” com o objetivo de fomentar a promoção da igualdade de gênero, o acesso à informação e a cooperação para o desenvolvimento de uma cultura de paz. Além disso, esse será um momento para capacitar e qualificar o público-alvo mediante o aperfeiçoamento do conhecimento e o debate amplo a respeito de temas atuais.
Na primeira parte do evento, período da manhã, acontecerá o lançamento do livro “Feminicídio: mapeamento, prevenção e tecnologia”, dos autores José Antonio Fernandes de Macêdo, Sílvia Rebeca Sabóia Quezado e Tiago Dias da Silva. No período da tarde, dedicaremos espaço para os debates.
O I CIVIGE é um projeto científico idealizado pela Universidade Federal do Ceará – UFC (Brasil), o Departamento de Computação da UFC (Brasil), o Insight Data Science Lab da UFC (Brasil) e o Laboratório ÍRIS de Inovação e Dados da Casa Civil do Governo do Ceará (Brasil), em parceria com a Universidade Católica Portuguesa | Porto (Portugal) e apoiado pelo Sistema Fecomércio Ceará (Fecomércio/CE), Serviço Nacional de Aprendizagem Comercial (SENAC/CE), Federação das Indústrias do Estado do Ceará (FIEC), Serviço Nacional de Aprendizagem Industrial (SENAI/CE), a Associação Nacional dos Magistrados da Justiça do Trabalho (Anamatra), entre outras instituições nacionais e internacionais.
Neste congresso traremos grandes nomes do pensamento jurídico para o centro dos debates, como: a Vice-Governadora do Ceará, Jade Afonso Romero, o Conselheiro Marcio Luiz Coelho de Freitas, Supervisor da Política Judiciária de Enfrentamento à Violência Contra as Mulheres do Conselho Nacional de Justiça e o Ministro do Tribunal Superior do Trabalho e Coordenador Nacional do Programa Trabalho Seguro da Justiça do Trabalho, Alberto Bastos Balazeiro.
Conheça os profissionais que participarão do I CIVIGE:
PROGRAMAÇÃO:
09h –Credenciamento
09h30 –Cerimônia de abertura Jade Afonso Romero (Vice-governadora do Ceará).
10h –Palestra Magna: Política Judiciária Nacional de Enfrentamento Contra a Mulher
Presidente de mesa: Hermano Queiroz Júnior (Presidente da Associação dos Magistrados do Trabalho da 7ª Região – (ANAMATRA VII).
Marcio Luiz Coelho de Freitas (Conselheiro do Conselho Nacional de Justiça, supervisor da Política Judiciária Nacional de Enfrentamento à Violência Contra as Mulheres do CNJ).
10h30 –Lançamento do livro “Feminicídio: mapeamento, prevenção e tecnologia”, dos autores José Antonio Fernandes de Macêdo, Sílvia Rebeca Sabóia Quezado e Tiago Dias da Silva.
Apresentação do livro – Maria Elisabete Ferreira (Professora Auxiliar da Escola do Porto Da Faculdade de Direito da Universidade Católica Portuguesa, Coordenadora da Qualidade da Escola de Direito da Universidade Católica Portuguesa, Investigadora do Católica Research Centre for the Future of Law).
12h às 14h –Intervalo para o almoço
14h –Painel 1: Brasil e Portugal: os reflexos da violência de gênero
Presidente de mesa: Jessika Moreira (Coordenadora-geral do Íris).
Luciana Paula Conforti (Vice-presidente da ANAMATRA e Presidente da Comissão ANAMATRA Mulheres).
Sandra Tavares (Professora Auxiliar da Escola do Porto da Faculdade de Direito da Universidade Católica Portuguesa).
Ricardo Gleidson de Vasconcelos (Coordenador de Inteligência de Dados do Tribunal de Justiça do Estado do Ceará).
15h20 –Painel 2: A violência de gênero em dados
Presidente de mesa: Rosa Mendonça (Juíza de Direito do Tribunal de Justiça do Estado do Ceará).
José Antonio Fernandes de Macêdo (Cientista-chefe do Governo do Ceará e Professor da Universidade Federal do Ceará).
Sílvia Rebeca Sabóia Quezado (Pesquisadora da Universidade Federal do Ceará).
Tiago Dias da Silva (Juiz de Direito do Tribunal de Justiça do Estado do Ceará).
16h20 –Encerramento
Presidente de mesa: Fábio Zech Sylvestre (Advogado – RZA ADVOGADOS- e Professor Universitário).
Alberto Bastos Balazeiro (Ministro do Tribunal Superior do Trabalho e Coordenador Nacional do Programa Trabalho Seguro da Justiça do Trabalho).
Você pode acompanhar o I CIVIGE ao vivo pelo canal Insight Lab no YouTube:
Primeira parte do evento (manhã): https://youtu.be/CT4npyhEu84
A Secretaria do Planejamento e Gestão do Ceará (Seplag-CE), por meio da sua secretaria executiva do Planejamento e Orçamento, realizou, no dia 30 de maio, o I Encontro de Ciência e Tecnologia para o Desenvolvimento Social. O evento realizado em parceria com a Fundação Cearense de Apoio ao Desenvolvimento Científico e Tecnológico (Funcap), vinculada à Secretaria da Ciência, Tecnologia e Educação Superior do Estado do Ceará (Secitece), aconteceu no auditório da Seplag.
Apresentação da Plataforma Big Data Social
Na ocasião, José Macêdo, cientista-chefe da Transformação Digital e coordenador do Insight Lab, apresentou a plataforma Big Data Social do Governo do Ceará e sua equipe de trabalho. Estavam presentes também os cientistas-chefes: Flávio Ataliba (Economia), Márcia Machado (Proteção Social) e Jorge Lira (Educação).
Imagem: Apresentação Big Data Social
Imagem: Apresentação Big Data Social
No evento foram apresentados os temas aplicados por meio da gestão pública que causaram impactos e estão contribuindo para o progresso social aliado ao advento da tecnologia e a popularização da ciência, e a formação de cidadãos sociais e culturais no contexto tecnológico.
Segundo Flávio Ataliba, secretário executivo do Planejamento e Orçamento da Seplag, o evento surgiu para apresentar os resultados das pesquisas realizadas nas áreas citadas, além de servir como um momento rico para o compartilhamento de conhecimentos e de novas ideias.
O encontro também teve o apoio da Escola de Gestão Pública do Estado do Ceará (EGPCE) a Universidade Federal do Ceará (UFC), a Fundação Cearense de Apoio ao Desenvolvimento Científico e Tecnológico (Funcap), o Laboratório de Inovação de Dados (ÍRIS), os Programas Cientistas Chefes, o Instituto de Pesquisa e Estratégia Econômica do Ceará (Ipece), a Secretaria da Proteção Social, Justiça Cidadania, Mulheres e Direitos Humanos, a Secretaria da Educação e a Vice-Governadoria do Ceará.
Está aberta a seleção para Bolsista Desenvolvedor ou Pesquisador – Cientista de Dados para os laboratórios Insight Lab e ÍRIS
O Insight Lab é um laboratório de pesquisa aplicada em Ciência de Dados e Inteligência Artificial da Universidade Federal do Ceará, envolvendo mais de 100 pessoas, entre pesquisadores, alunos de graduação, mestrado, doutorado e especialistas associados. O ÍRIS é um Laboratório de Inovação e Dados na Casa Civil do Governo do Estado do Ceará, que visa acelerar soluções inovadoras para Transformação Digital do estado.
Você será responsável por
Atuar no desenvolvimento de pesquisas relacionadas à descoberta de conhecimento usando ciência de dados e algoritmos de aprendizagem de máquina.
Integrar dados de bases heterogêneas identificando possíveis inconsistências.
Escrever artigos científicos e experimentar diferentes algoritmos de ciência de dados.
Procuramos por pessoas
Altamente criativas e curiosas sobre os assuntos, produtos, serviços e pesquisas científicas do Insight Lab;
Que tenham habilidades interpessoais e de comunicação;
Que saibam trabalhar bem em equipe e com uma gama de pessoas criativas;
Que saibam gerenciar demandas de trabalho de forma eficaz e organizada;
Com paixão por criar, aprender e testar novas tecnologias;
Você deve possuir conhecimentos nas seguintes áreas
Ciência de Dados;
Aprendizado de Máquina;
Banco de Dados.
Carga-horária das atividades
Parcial: 20 horas semanais;
Integral: 40 horas semanais.
Etapas da seleção
Primeira fase: análise do histórico e currículo.
Segunda fase: entrevista via videoconferência para os classificados na primeira fase.
Após a análise do histórico e currículo, os candidatos selecionados para a segunda fase deverão participar da entrevista em dia e horário a definir. Os candidatos aprovados para a segunda fase receberão um e-mail informando o dia e horário da entrevista.
Modalidade de Contratação
Contrato de bolsista para graduandos, graduados, mestrandos ou doutorandos da Universidade Federal do Ceará.
Etapas da seleção
Preenchimento do formulário até: 26/04;
Data de divulgação dos resultados da análise de currículo e histórico: 27/04;
Algoritmos de aprendizado de máquina utilizam parâmetros baseados em dados de treinamento – um subconjunto de dados que representa o conjunto maior. À medida que os dados de treinamento se expandem para representar o mundo de modo mais realista, o algoritmo calcula resultados mais precisos.
Diferentes algoritmos analisam dados de maneiras diferentes. Geralmente, eles são agrupados pelas técnicas de aprendizado de máquina para as quais são usados: aprendizado supervisionado, aprendizado não supervisionado e aprendizado de reforço. Os algoritmos usados com mais frequência usam a regressão e a classificação para prever categorias de destino, encontrar pontos de dados incomuns, prever valores e descobrir semelhanças.
Tendo isso em mente, vamos conhecer os 5 algoritmos de aprendizado de máquina mais importantes:
Algoritmos de Ensemble Learning;
Algoritmos explicativos;
Algoritmos de agrupamento;
Algoritmos de Redução de Dimensionalidade;
Algoritmos de semelhança.
1. Algoritmos de Ensemble Learning (Random Forests, XGBoost, LightGBM, CatBoost)
O que são algoritmos de Ensemble Learning?
Para entender o que eles são, primeiro você precisa saber o que é o Método Ensemble. Esse método consiste no uso simultâneo de vários modelos para obter melhor desempenho do que um único modelo em si.
Conceitualmente, considere a seguinte analogia:
Imagem Terence Shin
Imagine a seguinte situação: em uma sala de aula é dado o mesmo problema de matemática para um único aluno e para um grupo de alunos. Nessa situação, o grupo de alunos pode resolver o problema de forma colaborativa, verificando as respostas uns dos outros e decidindo por unanimidade sobre uma única resposta. Por outro lado, um aluno, sozinho, não tem esse privilégio – ninguém mais está lá para colaborar ou questionar sua resposta.
E assim, a sala de aula com vários alunos é semelhante a um algoritmo de Ensemble com vários algoritmos menores trabalhando juntos para formular uma resposta final.
Os algoritmos de Ensemble Learning são mais úteis para problemas de regressão e classificação ou problemas de aprendizado supervisionado. Devido à sua natureza inerente, eles superam todos os algoritmos tradicionais de Machine Learning, como Naïve Bayes, máquinas vetoriais de suporte e árvores de decisão.
Algoritmos explicativos permitem identificar e compreender variáveis que possuem relação estatisticamente significativa com o resultado. Portanto, em vez de criar um modelo para prever valores da variável de resposta, podemos criar modelos explicativos para entender as relações entre as variáveis no modelo.
Do ponto de vista da regressão, há muita ênfase nas variáveis estatisticamente significativas. Por quê? Quase sempre, você estará trabalhando com uma amostra de dados, que é um subconjunto de toda a população. Para tirar conclusões sobre uma população, dada uma amostra, é importante garantir que haja significância suficiente para fazer uma suposição confiável.
Imagem Terence Shin
Recentemente, também houve o surgimento de duas técnicas populares, SHAP e LIME, que são usadas para interpretar modelos de Machine Learning.
Quando são úteis?
Modelos explicativos são úteis quando você quer entender “por que” uma decisão foi tomada ou quando você quer entender “como” duas ou mais variáveis estão relacionadas entre si.
Na prática, a capacidade de explicar o que seu modelo de Machine Learning faz é tão importante quanto o desempenho do próprio modelo. Se você não puder explicar como um modelo funciona, ninguém confiará nele e ninguém o usará.
Tipos de Algoritmos
Modelos explicativos tradicionais baseados em testes de hipóteses:
Regressão linear
Regressão Logística
Algoritmos para explicar modelos de Machine Learning:
3. Algoritmos de Agrupamento (k-Means, Agrupamento Hierárquico)
Imagem Terence Shin
O que são algoritmos de agrupamento?
Esses algoritmos são usados para realizar análises de agrupamento, que é uma tarefa de aprendizado não supervisionada que envolve o agrupamento de dados. Ao contrário do aprendizado supervisionado, no qual a variável de destino é conhecida, não há variável de destino nas análises de agrupamento.
Quando são úteis?
O clustering é particularmente útil quando você deseja descobrir padrões e tendências naturais em seus dados. É muito comum que as análises de cluster sejam realizadas na fase de EDA, para descobrir mais informações sobre os dados.
Da mesma forma, o agrupamento permite identificar diferentes segmentos dentro de um dataset com base em diferentes variáveis. Um dos tipos mais comuns de segmentação por cluster é a segmentação de usuários/clientes.
Tipos de Algoritmos
Os dois algoritmos de agrupamento mais comuns são agrupamento k-means e agrupamento hierárquico, embora existam muitos mais:
4. Algoritmos de Redução de Dimensionalidade (PCA, LDA)
O que são algoritmos de redução de dimensionalidade?
Os algoritmos de redução de dimensionalidade referem-se a técnicas que reduzem o número de variáveis de entrada (ou variáveis de recursos) em um dataset. A redução de dimensionalidade é essencialmente usada para lidar com a maldição da dimensionalidade, um fenômeno que afirma, “à medida que a dimensionalidade (o número de variáveis de entrada) aumenta, o volume do espaço cresce exponencialmente resultando em dados esparsos.
Quando são úteis?
As técnicas de redução de dimensionalidade são úteis em muitos casos:
Eles são extremamente úteis quando você tem centenas ou até milhares de recursos em um dataset e precisa selecionar alguns.
Eles são úteis quando seus modelos de ML estão super ajustando os dados, o que implica que você precisa reduzir o número de recursos de entrada.
Tipos de Algoritmos
Abaixo estão os dois algoritmos de redução de dimensionalidade mais comuns:
Algoritmos de similaridade são aqueles que computam a similaridade de pares de registros/nós/pontos de dados/texto. Existem algoritmos de similaridade que comparam a distância entre dois pontos de dados, como a distância euclidiana, e também existem algoritmos de similaridade que calculam a similaridade de texto, como o Algoritmo Levenshtein.
Quando são úteis?
Esses algoritmos podem ser usados em uma variedade de aplicações, mas são particularmente úteis para recomendação.
Quais artigos o Medium deve recomendar a você com base no que você leu anteriormente?
Qual música o Spotify deve recomendar com base nas músicas que você já gostou?
Quais produtos a Amazon deve recomendar com base no seu histórico de pedidos?
Estes são apenas alguns dos muitos exemplos em que algoritmos de similaridade e recomendação são usados em nossas vidas cotidianas.
Tipos de Algoritmos
Abaixo está uma lista não exaustiva de alguns algoritmos de similaridade. Se você quiser ler sobre mais algoritmos de distância, confira este artigo. E se você também se interessar por algoritmos de similaridade de strings, leia este artigo.
O Python está bem estabelecido como a linguagem ideal para ciência de dados e aprendizado de máquina, e isso se deve em parte à biblioteca de ML de código aberto PyTorch.
A combinação do PyTorch com ferramentas poderosas de construção de rede neural profunda e fáceis de uso, torna-o uma escolha popular entre cientistas de dados. À medida que sua popularidade cresce, mais e mais empresas estão mudando do TensorFlow para o PyTorch, tornando-se agora o melhor momento para começar a usar o PyTorch.
Hoje, vamos te ajudar a entender o que torna o PyTorch tão popular, alguns fundamentos do uso dessa biblioteca e ajudá-lo a fazer seus primeiros modelos computacionais.
O que é o PyTorch?
O PyTorch é uma biblioteca Python de aprendizado de máquina de código aberto usada para implementações de aprendizado profundo, como visão computacional (usando TorchVision) e processamento de linguagem natural. Essa biblioteca foi desenvolvida pelo laboratório de pesquisa de IA do Facebook (FAIR) em 2016 e, desde então, é adotada nos campos da ciência de dados e ML.
O PyTorch torna o aprendizado de máquina intuitivo para aqueles que já estão familiarizados com Python e tem ótimos recursos como suporte OOP e gráficos de computação dinâmica.
Junto com a construção de redes neurais profundas, o PyTorch também é ótimo para cálculos matemáticos complexos por causa de sua aceleração de GPU. Esse recurso permite que o PyTorch use a GPU do seu computador para acelerar enormemente os cálculos.
Essa combinação de recursos exclusivos e a simplicidade incomparável do PyTorch o torna uma das bibliotecas de aprendizado profundo mais populares, competindo apenas com o TensorFlow pelo primeiro lugar.
Por que usar o PyTorch?
Antes do PyTorch, os desenvolvedores usavam cálculos avançados para encontrar as relações entre erros retro-propagados e peso do nó. Redes neurais mais profundas exigiam operações cada vez mais complicadas, o que restringia o aprendizado de máquina em escala e acessibilidade.
Agora, podemos usar bibliotecas de ML para completar automaticamente todo esse cálculo! As bibliotecas de ML podem computar redes de qualquer tamanho ou formato em questão de segundos, permitindo que mais desenvolvedores criem redes maiores e melhores.
O PyTorch leva essa acessibilidade um passo adiante, comportando-se como o Python padrão. Em vez de aprender uma nova sintaxe, você pode usar o conhecimento existente de Python para começar rapidamente. Além disso, você pode usar bibliotecas Python adicionais com PyTorch, como depuradores populares como o PyCharm.
PyTorch vs. TensorFlow
A principal diferença entre PyTorch e TensorFlow é a escolha entre simplicidade e desempenho: o PyTorch é mais fácil de aprender (especialmente para programadores Python), enquanto o TensorFlow tem uma curva de aprendizado, mas tem um desempenho melhor e é mais usado.
Popularidade: Atualmente, o TensorFlow é a ferramenta ideal para profissionais e pesquisadores do setor porque foi lançado 1 ano antes do PyTorch. No entanto, a taxa de usuários do PyTorch está crescendo mais rápido do que a do TensorFlow, sugerindo que o PyTorch pode em breve ser o mais popular.
Paralelismo de dados: O PyTorch inclui paralelismo de dados declarativo, em outras palavras, ele distribui automaticamente a carga de trabalho do processamento de dados em diferentes GPUs para acelerar o desempenho. O TensorFlow tem paralelismo, mas exige que você atribua o trabalho manualmente, o que costuma ser demorado e menos eficiente.
Gráficos dinâmicos vs. estáticos: PyTorch tem gráficos dinâmicos por padrão que respondem a novos dados imediatamente. O TensorFlow tem suporte limitado para gráficos dinâmicos usando o TensorFlow Fold, mas usa principalmente gráficos estáticos.
Integrações: PyTorch é bom para usar em projetos na AWS por causa de sua estreita conexão por meio do TorchServe. O TensorFlow está bem integrado com o Google Cloud e é adequado para aplicativos móveis devido ao uso da API Swift.
Visualização: O TensorFlow tem ferramentas de visualização mais robustas e oferece um controle mais preciso sobre as configurações do gráfico. A ferramenta de visualização Visdom da PyTorch ou outras bibliotecas de plotagem padrão, como matplotlib, não são tão completas quanto o TensorFlow, mas são mais fáceis de aprender.
Fundamentos do PyTorch
Tensores
Os tensores PyTorch são variáveis indexadas (arrays) multidimensionais usadas como base para todas as operações avançadas. Ao contrário dos tipos numéricos padrão, os tensores podem ser atribuídos para usar sua CPU ou GPU para acelerar as operações.
Eles são semelhantes a uma matriz NumPy n-dimensional e podem até ser convertidos em uma matriz NumPy em apenas uma única linha.
Tensores vêm em 5 tipos:
FloatTensor: 32-bit float
DoubleTensor: 64-bit float
HalfTensor: 16-bit float
IntTensor: 32-bit int
LongTensor: 64-bit int
Como acontece com todos os tipos numéricos, você deseja usar o menor tipo que atenda às suas necessidades para economizar memória. O PyTorch usa FloatTensorcomo o tipo padrão para todos os tensores, mas você pode mudar isso usando:
torch.set_default_tensor_type(t)
Para inicializar doisFloatTensors:
import torch
# initializing tensors
a = torch.tensor(2)
b = torch.tensor(1)
Os tensores podem ser usados como outros tipos numéricos em operações matemáticas simples.
Você também pode mover tensores para serem manipulados pela GPU usando cuda.
if torch.cuda.is_available():
x = x.cuda()
y = y.cuda()
x + y
Como tensores são matrizes em PyTorch, você pode definir tensores para representar uma tabela de números:
ones_tensor = torch.ones((2, 2)) # tensor containing all ones
rand_tensor = torch.rand((2, 2)) # tensor containing random values
Aqui, estamos especificando que nosso tensor deve ser um quadrado 2×2. O quadrado é preenchido com todos os 1 ao usar a função ones() ou números aleatórios ao usar a função rand().
Redes neurais
PyTorch é comumente usado para construir redes neurais devido aos seus modelos de classificação excepcionais, como classificação de imagem ou redes neurais convolucionais (CNN).
As redes neurais são camadas de nós de dados conectados e ponderados. Cada camada permite que o modelo identifique a qual classificação os dados de entrada correspondem.
As redes neurais são tão boas quanto seu treinamento e, portanto, precisam de grandes conjuntos de dados e estruturas GAN, que geram dados de treinamento mais desafiadores com base naqueles já dominados pelo modelo.
O PyTorch define redes neurais usando o pacotetorch.nn, que contém um conjunto de módulos para representar cada camada de uma rede.
Cada módulo recebe tensores de entrada e calcula os tensores de saída, que trabalham juntos para criar a rede. O pacote torch.nntambém define funções de perda que usamos para treinar redes neurais.
As etapas para construir uma rede neural são:
Construção: Crie camadas de rede neural, configure parâmetros, estabeleça pesos e tendências.
Propagação direta: Calcule a saída prevista usando seus parâmetros. Meça o erro comparando a saída prevista e a real.
Retropropagação: Depois de encontrar o erro, tire a derivada da função de erro em termos dos parâmetros de nossa rede neural. A propagação para trás nos permite atualizar nossos parâmetros de peso.
Otimização iterativa: Minimize erros usando otimizadores que atualizam parâmetros por meio de iteração usando gradiente descendente.
Aqui está um exemplo de uma rede neural em PyTorch:
import torch
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
# 1 input image channel, 6 output channels, 3x3 square convolution
# kernel
self.conv1 = nn.Conv2d(1, 6, 3)
self.conv2 = nn.Conv2d(6, 16, 3)
# an affine operation: y = Wx + b
self.fc1 = nn.Linear(16 * 6 * 6, 120) # 6*6 from image dimension
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)
def forward(self, x):
# Max pooling over a (2, 2) window
x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
# If the size is a square you can only specify a single number
x = F.max_pool2d(F.relu(self.conv2(x)), 2)
x = x.view(-1, self.num_flat_features(x))
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
def num_flat_features(self, x):
size = x.size()[1:] # all dimensions except the batch dimension
num_features = 1
for s in size:
num_features *= s
return num_features
net = Net()
print(net)
O nn.moduledesigna que esta será uma rede neural e então a definimos com duas camadas conv2d, que realizam uma convolução 2D, e 3 camadas lineares, que realizam transformações lineares.
A seguir, definimos um método direto para descrever como fazer a propagação direta. Não precisamos definir um método de propagação para trás porque PyTorch inclui uma funçãobackwards()por padrão.
Não se preocupe se isso parece confuso agora, depois vamos cobrir implementações mais simples do PyTorch neste tutorial.
Autograd
Autograd é um pacote PyTorch usado para calcular derivadas essenciais para operações de rede neural. Essas derivadas são chamadas de gradientes. Durante uma passagem para frente, o autograd registra todas as operações em um tensor habilitado para gradiente e cria um gráfico acíclico para encontrar a relação entre o tensor e todas as operações. Essa coleção de operações é chamada de diferenciação automática.
As folhas deste gráfico são tensores de entrada e as raízes são tensores de saída. O Autograd calcula o gradiente traçando o gráfico da raiz à folha e multiplicando cada gradiente usando a regra da cadeia.
Depois de calcular o gradiente, o valor da derivada é preenchido automaticamente como um atributograddo tensor.
import torch
# pytorch tensor
x = torch.tensor(3.5, requires_grad=True)
# y is defined as a function of x
y = (x-1) * (x-2) * (x-3)
# work out gradients
y.backward()
Por padrão,requires_gradé definido comofalsee o PyTorch não rastreia gradientes. Especificarrequires_gradcomoTruedurante a inicialização fará o PyTorch rastrear gradientes para este tensor em particular sempre que realizarmos alguma operação nele.
Este código olha paraye vê que ele veio de(x-1) * (x-2) * (x-3)e calcula automaticamente o gradiente dy / dx,3x^2 – 12x + 11.
A instrução também calcula o valor numérico desse gradiente e o coloca dentro do tensorxao lado do valor real dex, 3.5.
Juntos, o gradiente é 3 * (3.5 * 3.5) – 12 * (3.5) + 11 = 5.75.
Os gradientes se acumulam por padrão, o que pode influenciar o resultado se não for redefinido. Use model.zero_grad() para zerar novamente seu gráfico após cada gradiente.
Otimizadores
Os otimizadores permitem que você atualize os pesos e tendências dentro de um modelo para reduzir o erro. Isso permite que você edite como seu modelo funciona sem ter que refazer tudo.
Todos os otimizadores PyTorch estão contidos no pacotetorch.optim, com cada esquema de otimização projetado para ser útil em situações específicas. O módulo torch.optimpermite que você construa um esquema de otimização abstrato apenas passando uma lista de parâmetros. O PyTorch tem muitos otimizadores para escolher, o que significa que quase sempre há um que melhor se adapta às suas necessidades.
Por exemplo, podemos implementar o algoritmo de otimização comum, SGD (Stochastic Gradient Descent), para suavizar nossos dados.
Depois de atualizar o modelo, useoptimizer.step()para dizer ao PyTorch para recalcular o modelo.
Sem usar otimizadores, precisaríamos atualizar manualmente os parâmetros do modelo, um por um, usando um loop:
for params in model.parameters():
params -= params.grad * learning_rate
No geral, os otimizadores economizam muito tempo, permitindo que você otimize a ponderação dos dados e altere o modelo sem refazê-lo.
Gráficos de computação com PyTorch
Para entender melhor o PyTorch e as redes neurais, é importante praticar com gráficos de computação. Esses gráficos são essencialmente uma versão simplificada de redes neurais com uma sequência de operações usadas para ver como a saída de um sistema é afetada pela entrada.
Em outras palavras, a entradaxé usada para encontrary, que então é usada para encontrar a saída z.
Imagine que yezsão calculados assim:
y = x^2
z = 2y + 3
No entanto, estamos interessados em como a saídazmuda com a entradax, então precisaremos fazer alguns cálculos:
dz/dx = (dz/dy) * (dy/dx)
dz/dx = 2.2x
dz/dx = 4x
Usando isso, podemos ver que a entrada x = 3,5 fará com que z = 14.
Saber definir cada tensor em termos dos outros (y e zem termos dex,zem termos dey, etc.) permite que o PyTorch construa uma imagem de como esses tensores estão conectados.
Esta imagem é chamada de gráfico computacional e pode nos ajudar a entender como o PyTorch funciona nos bastidores. Usando esse gráfico, podemos ver como cada tensor será afetado por uma mudança em qualquer outro tensor. Esses relacionamentos são gradientes e são usados para atualizar uma rede neural durante o treinamento.
Esses gráficos são muito mais fáceis de fazer usando o PyTorch do que manualmente. Então, agora que entendemos o que está acontecendo nos bastidores, vamos tentar fazer esse gráfico.
import torch
# set up simple graph relating x, y and z
x = torch.tensor(3.5, requires_grad=True)
y = x*x
z = 2*y + 3
print("x: ", x)
print("y = x*x: ", y)
print("z= 2*y + 3: ", z)
# work out gradients
z.backward()
print("Working out gradients dz/dx")
# what is gradient at x = 3.5
print("Gradient at x = 3.5: ", x.grad)
Isso mostra quez = 14, exatamente como encontramos manualmente acima!
Mãos à obra com PyTorch: gráfico computacional de vários caminhos
Agora que você viu um gráfico computacional com um único conjunto relacional, vamos tentar um exemplo mais complexo.
Primeiro, defina dois tensores, aeb, para funcionar como nossas entradas. Certifique-se de definirrequires_grad=Truepara que possamos fazer gradientes na linha.
import torch
# set up simple graph relating x, y and z
a = torch.tensor(3.0, requires_grad=True)
b = torch.tensor(2.0, requires_grad=True)
Em seguida, configure as relações entre nossa entrada e cada camada de nossa rede neural, x, y e z. Observe que z é definido em termos de x e y, enquanto x e y são definidos usando nossos valores de entrada a e b.
import torch
# set up simple graph relating x, y and z
a = torch.tensor(3.0, requires_grad=True)
b = torch.tensor(2.0, requires_grad=True)
x = 2*a + 3*b
y = 5*a*a + 3*b*b*b
z = 2*x + 3*y
Isso cria uma cadeia de relacionamentos que o PyTorch pode seguir para entender todos os relacionamentos entre os dados.
Agora podemos calcular o gradientedz/da seguindo o caminho de volta dez para a.
Existem dois caminhos, um passando porxe outro pory. Você deve seguir os dois e adicionar as expressões de ambos os caminhos. Isso faz sentido porque ambos os caminhos deaazcontribuem para o valor dez.
Teríamos encontrado o mesmo resultado se tivéssemos calculadodz/dausando a regra da cadeia do cálculo.
O primeiro caminho porxnos dá2 * 2e o segundo caminho por y nos dá3 * 10a. Assim, a taxa na qualzvaria coma é4 + 30a.
Seaé 22, entãodz/da é4+30∗2=64.
Podemos confirmar isso no PyTorch adicionando uma propagação para trás dez e pedindo o gradiente (ou derivado) dea.
import torch
# set up simple graph relating x, y and z
a = torch.tensor(2.0, requires_grad=True)
b = torch.tensor(1.0, requires_grad=True)
x = 2*a + 3*b
y = 5*a*a + 3*b*b*b
z = 2*x + 3*y
print("a: ", a)
print("b: ", b)
print("x: ", x)
print("y: ", y)
print("z: ", z)
# work out gradients
z.backward()
print("Working out gradient dz/da")
# what is gradient at a = 2.0
print("Gradient at a=2.0:", a.grad)
Próximos passos para o seu aprendizado
Parabéns, você concluiu seu início rápido de PyTorch e Redes Neurais! A conclusão de um gráfico computacional é uma parte essencial da compreensão de redes de aprendizado profundo.
À medida que você aprender habilidades e aplicativos avançados de aprendizado profundo, você desejará explorar:
O Insight preparou uma lista com 10 repositórios para ajudar você no desenvolvimento de suas tarefas em Ciência de Dados. O Github é uma plataforma gratuita que hospeda código fonte por meio do controle de versão (o Git) e disponibiliza diversos repositórios abertos feitos por interessados na área.
A área de estudos em Ciência de Dados é muito ampla e no GitHub existem diversos repositórios com projetos muito úteis a quem se interessa por Ciência de Dados. E para tornar sua pesquisa mais fácil, nós separamos alguns para você. Confira:
Esta é uma biblioteca fácil de usar para P&D na interseção de Aprendizado Profundo em Gráficos e Processamento de Linguagem Natural. Ele fornece implementações completas de modelos de última geração para cientistas de dados e também interfaces flexíveis para construir modelos personalizados para pesquisadores e desenvolvedores com suporte de pipeline completo.
Construído sobre bibliotecas com tempo de execução altamente otimizadas, incluindo DGL, esta biblioteca tem alta eficiência de execução e alta extensibilidade. Sua arquitetura é mostrada na figura a seguir, onde caixas com linhas tracejadas representam os recursos em desenvolvimento que consistem em quatro camadas diferentes:
Este é um framework de Machine Learning de código aberto para automatizar conversas baseadas em texto e voz. Com o Rasa, você pode criar assistentes contextuais para diversas plataformas:
Facebook Messenger;
Folga;
Hangouts do Google;
Equipes Webex;
Microsoft Bot Framework;
Rocket.Chat;
Mattermost;
Telegrama;
Twilio.
E também em assistentes de voz como: Alexa Skills e ações do Google Home.
Rasa ajuda a criar assistentes contextuais capazes de ter conversas em camadas com muitas idas e vindas. Para que um humano tenha uma troca significativa com um assistente virtual, este precisa ser capaz de usar o contexto para desenvolver coisas que foram discutidas anteriormente. O Rasa permite que você crie assistentes que podem fazer isso de uma forma escalonável.
Merlion é uma biblioteca Python para inteligência em séries temporais. Ela fornece uma estrutura de Machine Learning de ponta a ponta que inclui carregamento e transformação de dados, construção de modelos de treinamento, saídas de modelo de pós-processamento e avaliação de desempenho do modelo. Além disso, oferece suporte a várias tarefas de aprendizagem em séries temporais, incluindo previsão, detecção de anomalias e detecção de ponto de mudança para séries temporais univariadas e multivariadas.
Esta biblioteca tem como objetivo fornecer aos engenheiros e pesquisadores uma solução completa para desenvolver rapidamente modelos para suas necessidades específicas em séries temporais e compará-los em vários datasets.
As principais características do Merlion são: carregamento e benchmarking de dados padronizados e facilidades extensíveis para uma ampla gama de datasets de previsão e detecção de anomalias.
NitroFE é um mecanismo de engenharia de features do Python que fornece uma variedade de módulos projetados para salvar internamente valores com dependência do passado para fornecer cálculos contínuos.
Os atributos de indicadores, janelas e médias móveis dependem dos valores anteriores para cálculo. Por exemplo, uma janela móvel de tamanho 4 depende dos 4 valores anteriores. Embora a criação de tais atributos durante o treinamento seja bastante simples, levá-los para a produção se torna um desafio, pois exigiria que alguém salvasse externamente os valores anteriores e implementasse a lógica. A criação de indicadores torna-se ainda mais complexa, pois dependem de vários outros componentes de janela de tamanhos diferentes.
O NitroFE lida internamente com o salvamento de valores com dependência do passado e torna a criação de recursos descomplicada. Basta usar first_fit = True para seu ajuste inicial.
Em estatística, uma média móvel é um cálculo para analisar pontos de dados criando uma série de médias de diferentes subconjuntos do dataset. O NitroFE oferece uma variedade de tipos de médias móveis para você utilizar.
O Aim registra suas execuções de treinamento, possui uma bela interface para compará-los e uma API para consultá-los programaticamente. Essa é uma ferramenta de rastreamento de experimentos de IA auto-hospedada e de código aberto. Útil para inspecionar profundamente centenas de execuções de treinamento sensíveis a hiperparâmetros de uma só vez.
O SDK do Aim registra quantas métricas e parâmetros forem necessários para as execuções de treinamento e avaliação. Os usuários do Aim monitoram milhares de execuções de treinamento e, às vezes, mais de 100 métricas por execução com muitas etapas.
O JupyterLab é a interface da próxima geração de usuários do Project Jupyter, oferecendo todos os blocos de construção familiares do Jupyter Notebook clássico (notebook, terminal, editor de texto, navegador de arquivos, saídas ricas, etc.) em uma interface de usuário flexível e poderosa. O JupyterLab eventualmente substituirá o Jupyter Notebook clássico.
Você pode organizar vários documentos e atividades lado a lado na área de trabalho usando guias e divisores. Documentos e atividades se integram, permitindo novos fluxos de trabalho para computação interativa, por exemplo:
Os consoles de código fornecem rascunhos temporários para a execução de código de forma interativa, com suporte total para uma saída valiosa. Um console de código pode ser vinculado a um kernel do notebook como um log de computação do notebook, por exemplo.
Documentos baseados em kernel permitem que o código em qualquer arquivo de texto (Markdown, Python, R, LaTeX, etc.) seja executado interativamente em qualquer kernel Jupyter.
As saídas das células do notebook podem ser espelhadas em sua própria guia, lado a lado com o notebook, permitindo painéis simples com controles interativos apoiados por um kernel.
Múltiplas visualizações de documentos com diferentes editores ou visualizadores permitem a edição ao vivo de documentos refletidos em outros visualizadores. Por exemplo, é fácil ter uma visualização ao vivo de Markdown, valores separados por delimitador ou documentos Vega / Vega-Lite.
A interface também oferece um modelo unificado para visualizar e manipular formatos de dados. O JupyterLab compreende muitos formatos de arquivo (imagens, CSV, JSON, Markdown, PDF, Vega, Vega-Lite, etc.) e também pode exibir uma saída rica do kernel nesses formatos. Consulte Arquivos e formatos de saída para obter mais informações.
River é uma biblioteca Python para Machine Learning (ML) on-line. É o resultado da fusão entre o creme e o scikit-multiflow. O objetivo do River é ser a biblioteca ideal para fazer ML em dados de streaming.
O Machine Learning geralmente é feito em uma configuração de batch, em que um modelo é ajustado a um dataset de uma só vez. Isso resulta em um modelo estático que precisa ser retreinado para aprender com os novos dados. Em muitos casos, isso não é eficiente e geralmente resulta em um problema técnico considerável. Na verdade, se você estiver usando um modelo em batch, precisará pensar em manter um conjunto de treinamento, monitorar o desempenho em tempo real, retreinar o modelo, etc.
Com o River, a abordagem é aprender continuamente com um fluxo de dados. Isso significa que o modelo processa uma observação por vez e pode, portanto, ser atualizado em tempo real. Permitindo assim, aprender com grandes datasets que não cabem na memória principal.
Flash é uma coleção de tarefas para prototipagem rápida, definição de linha de base e ajuste fino de modelos de Deep Learning escaláveis, baseados noPyTorch Lightning.
Quer você seja novo no Deep Learning ou um pesquisador experiente, o Flash oferece uma experiência perfeita, desde experimentos básicos até pesquisas de ponta. Ele permite que você construa modelos sem ser sobrecarregado por todos os detalhes e, em seguida, substitua e experimente o Lightning para obter total flexibilidade.
Com o Flash, você pode criar sua própria imagem ou classificador de texto em algumas linhas de código, sem necessidade de matemática. Atualmente ele suporta: classificação Imagem, incorporação Imagem, classificação tabular, classificação de texto, sumarização, tradução entre outras.
As tarefas do Flash contêm todas as informações relevantes para resolver sua tarefa como: o número de rótulos de classe que você deseja prever, o número de colunas em seu dataset, bem como detalhes sobre a arquitetura do modelo usada, como função de perda, otimizadores, etc.
ParlAI (pronuncia-se “par-lay”) é uma estrutura Python para compartilhar, treinar e testar modelos de diálogo, desde bate-papos de domínio aberto a diálogos orientados a tarefas e respostas visuais de perguntas.
Os dados do mundo real contêm vários registros pertencentes ao mesmo cliente. Esses registros podem estar em um único sistema ou em vários e possuírem variações nos campos, o que torna difícil combiná-los, especialmente com volumes de dados crescentes. Isso prejudica a análise do cliente – estabelecer valor vitalício, programas de fidelidade ou canais de marketing é impossível quando os dados básicos não estão vinculados.
Nenhum algoritmo de IA para segmentação pode produzir resultados corretos quando há várias cópias do mesmo cliente escondidas nos dados. Nenhum data warehouse pode cumprir sua promessa se as tabelas de dimensão tiverem duplicatas.
Com uma pilha de dados e DataOps modernos, estabelecemos padrões para E e L em ELT para a construção de data warehouses, datalakes e deltalakes. No entanto, o T – preparar os dados para análises ainda precisa de muito esforço. Ferramentas modernas como DBT estão lidando com isso de forma ativa e bem-sucedida. O que também é necessário é uma maneira rápida e escalável de construir a única fonte de verdade das principais entidades de negócios pós-extração e pré ou pós-carregamento.
Com o Zingg, o engenheiro analítico e o cientista de dados podem integrar rapidamente silos de dados e construir visualizações unificadas em escala!
Obrigado por conferir nossa lista, esperamos que isso tenha contribuído para o conhecimento e crescimento com um cientista de dados!
A plataforma Medium é um dos melhores espaços na internet para estudantes de ciência de dados. Lá, existe uma diversidade enorme de profissionais compartilhando seus conhecimentos em artigos sobre programação, estatística, machine learning e outras áreas relacionadas ao data science.
São muitos os conteúdos para profissionais de dados no Medium, por isso, hoje destacamos 10 artigos dessa plataforma que trazem assuntos essenciais para qualquer cientista de dados. Esses conteúdos, como é próprio dos trabalhos com qualidade, contribuirão na sua carreira.
Mas antes de apresentarmos a lista, lembre que é possível ler todos os artigos no Medium de graça. Caso você não consiga acessar algum texto na plataforma porque atingiu o limite de conteúdos gratuitos, basta copiar o link do artigo e enviar como mensagem para você mesmo no Twitter. Pronto, agora é só clicar no link e ler.
As redes neurais convolucionais são amplamente usadas para, por exemplo, classificação de imagens, detecção de objetos e reconhecimento facial. Tendo essas como algumas de suas principais possibilidades de aplicação, fica entendido o porquê dos grandes esforços investidos no desenvolvimento da CNN.
E um artigo que te ajudará a entender como as máquinas decifram imagens é o “Compreensão da Rede Neural Convolucional (CNN) – Deep Learning”. Nele, o cientista de dados Prabhu Raghav explica alguns conceitos básicos de CNN e as etapas envolvidas neste processo.
Raghav organiza seu texto nestes seis tópicos, cada um deles dedicado a explicar uma das etapas envolvidas no processamento das redes neurais convolucionais: camada de convolução, strides, preenchimento, não linearidade (ReLU), camada de pooling e camada totalmente conectada.
Depois de começar a usar o Python, não há como escapar da palavra “self “. Ela é vista nas definições de métodos e na inicialização de variáveis. Mas entender a ideia por trás disso parece um pouco problemático. E é nisto que este artigo te ajudará, a ter uma ideia intuitiva do que é o self e como você deve usá-lo.
Para isso, o autor, Ashan Priyadarshana, primeiro explora a criação de métodos de instância e classe em Python e, a partir deste quadro, aprofunda a explicação sobre o uso de self em Python.
Ao final do texto você terá conseguido entender por que deve sempre usar self como o primeiro parâmetro de métodos de instância em Python e o que realmente acontece nos bastidores quando chamamos um método de instância.
Um dos grandes motivos para aprender Python é certamente sua versatilidade; podemos usá-lo em diferentes áreas, como ciência de dados, desenvolvimento web e machine learning.
Diante disso, não é surpreendente a popularidade dessa linguagem de programação, que é adotada pelas também popularíssimas Google, Netflix, Quora, Pinterest e Spotify.
Se assim como essas gigantes, você também quer codificar em Python, o artigo “Aprendendo Python do zero” te ajudará. Nesse texto, por meio de exemplos de aplicação prática, você entenderá a teoria que estrutura o ambiente Python e também como se dão algumas de suas funções essenciais.
Veja o conteúdo básico sobre Python que você entenderá melhor com este artigo:
Como as variáveis em Python funcionam
Como funciona o controle de fluxo — condicionais
Como Python lida com loop, iteração, mais especificamente while e for
Como listas funcionam
Dicionários, uma estrutura de dados de chave-valor
Como iteramos sobre essas estruturas de dados
Objetos e Classes
Atributos como dados de um objeto
Métodos como comportamento de um objeto
Usando getters e setters em Python & decorator property
Encapsulamento: ocultando informações
Herança: herdando comportamentos e características.
Ao enfrentar um novo problema de ciência de dados, uma das primeiras perguntas a fazer é qual tecnologia usar. E foi pensando nisso que Jonathan Alexander, que acompanha intensamente o universo das ferramentas de big data, realizou testes para comparar a performance de tecnologias de conversão de dados e, assim, escolher a mais adequada para exploração, limpeza e conversão de dados tabulares. O objetivo é comparar as tecnologias em suas APIs, desempenho e facilidade de uso.
O conjunto de dados escolhidos para os testes foi o “Billion Row Taxi”, de 100 GB. As ferramentas selecionadas para comparação foram Dask DataFrame, PySpark, Koalas, Vaex, Turicreate e Datatable.
Acompanhe o artigo completo para entender como essas ferramentas se comportam em diferentes categorias, como complexidade de codificação e recursos. Conhecer as particularidades dessas tecnologias te ajudará a escolher a solução adequada para seus diferentes projetos de big data.
Este artigo busca ajudar cientistas de dados a aprimorar sua compreensão de como seu código seria executado em um ambiente de produção.
Assim, esta matéria é uma introdução, baseada no passo a passo para o uso do Airflow e do Docker, de como se pode articular a escrita de um código para o nível de produção. O autor explica os diferentes estágios em um fluxo de trabalho de data science e como projetar DAG e pipeline para um determinado problema. Além disso, também fornece uma visão geral de como usar a UI do Airflow.
É cada vez mais comum os cientistas de dados enfrentarem conjuntos de dados de 50 GB ou mesmo 500 GB. Algo importante sobre trabalhar com esse tipo de conjunto de dados é que eles são pequenos o suficiente para caber no disco rígido de seu laptop comum, mas muito grandes para caber na RAM. Portanto, eles já são complicados de abrir e inspecionar, quanto mais de explorar ou analisar.
Neste artigo, Jovan Veljanoski apresenta uma nova abordagem para dados dessas dimensões: o Vaex. Essa é uma biblioteca de DataFrame de código aberto que permite a visualização, exploração e análise em conjuntos de dados tabulares que são tão grandes quanto seu disco rígido. Para fazer isso, o Vaex emprega conceitos como mapeamento de memória, algoritmos out-of-core eficientes e lazy evaluations.
Esta matéria de introdução ao Vaex te ajudará a aliviar alguns dos seus problemas com dados dessa proporção, pelo menos quando se trata de conjuntos de dados tabulares.
Estruturas de dados são os blocos de construção para scripts Python. Eles mantêm ou contêm os dados de uma maneira específica para fazer com que os scripts funcionem com mais eficiência. Portanto, é crucial aprender a interagir com as estruturas de dados.
Os conjuntos (sets) são uma das principais estruturas de dados em Python. E neste artigo são apresentadas as características dos sets e examinadas cinco operações comumente usadas nos conjuntos.
A demanda industrial, acadêmica e governamental por profissionais de ciência de dados qualificados é enorme, e continua crescendo rapidamente. A contínua “corrida de dados” está, portanto, atraindo profissionais com diversas formações, como física, matemática, estatística, economia e engenharia.
O mercado tem urgência por mais cientistas de dados, mas a formação desses profissionais exige muito tempo e esforço.
Inspirado pelo texto de Peter Norving sobre quanto tempo leva para se tornar um especialista em programação, Benjamin Obi Tayo compartilha em “Teach Yourself Data Science in 10 Years” passos essenciais para dominar os fundamentos da ciência de dados.
Ao longo dessa conversa, Benjamin Obi Tayo te ajudará a encontrar as respostas para duas perguntas que todos os iniciantes em data science devem se fazer:
Quanto tempo leva para aprender os fundamentos da ciência de dados?
Quais recursos usar para aprender ciência de dados?
De forma geral, este artigo vem para nos lembrar que para tornar-se um cientista de dados é preciso tempo, esforço, energia, paciência e comprometimento. Ou seja, cuidado com aquela conversa de “aprenda ciência de dados em quatro semanas”.
Você já olhou para uma função que escreveu um mês antes e achou difícil entendê-la em até 3 minutos? Se sim, é hora de refatorar seu código. Se você levar mais de 3 minutos para entender seu próprio código, imagine quanto tempo isto tomará de seus colegas.
Se você deseja que seu código seja reutilizável, ele deve ser legível.
E em seu artigo sobre como escrever código limpo em Python, a cientista de dados Khuyen Tran detalha seis práticas para tornar as funções mais legíveis e mais fáceis de detectar erros. Ela diz que as funções devem ser curtas, fazer uma única coisa, conter código com o mesmo nível de abstração, ter menos de quatro argumentos, não ter duplicação e usar nomes descritivos.
Acompanhe o texto completo para entender como utilizar essas práticas e escrever códigos python muito mais legíveis.
Antes de tratar especificamente de cada tipo de dataset, Gupta explica dimensionalidade, esparsidade e resolução, que são características gerais dos datasets. A partir disso, ele destrincha os três tipos de conjuntos de dados: dados de registro (record data), dados baseados em gráficos (graph-based data) e dados ordenados (ordered data).
Esses foram os 10 artigos selecionados para nossa lista de hoje, mas não faltam excelentes conteúdos de data science no Medium, como é o caso das publicações que fazemos lá. Então, Acompanhe o Insight Lab no Medium.
E quais outros artigos te ajudaram a ser um cientista de dados melhor? Compartilha aqui nos comentários com a gente e nossos leitores.
Nós usamos cookies para melhorar sua experiência de navegação. Ao navegar no site, você concorda com a política de monitoramento de cookies. Se você concorda, clique em OK. Para ter mais informações sobre como isso é feito, acesse nosso Aviso de Privacidade.OKAviso de Privacidade