Categorias
Análise de Dados Dataframes Pandas

10 funções mais usadas para manipular dataframes no Pandas

O Pandas é uma das bibliotecas mais utilizadas para analisar dados em Python, além de ser uma ferramenta poderosa, flexível e confiável para muitos analistas de dados. Existem algumas funções conhecidas, bem como técnicas não tão formais que podem tornar a vida mais fácil para qualquer analista de dados, seja ele um profissional ou um entusiasta.

Neste artigo, serão discutidas algumas funções úteis e técnicas significativas, todas  com exemplos. Com certeza você já usou algumas dessas funções com frequência, mas elas podem não ser tão familiares para todos. No geral, você enriquecerá suas habilidades em Análise de Dados.

No decorrer deste artigo você verá as seguintes funções:

  • unique e nunique 
  • describe
  • sort_values
  • value_counts
  • isnull 
  • fillna 
  • groupby 
  • map e seu uso para codificação categórica
  • apply e lambda
  • pivot
Vamos começar

Antes de usar as funções mencionadas acima, você pode criar um dataframe usando o dataset Kaggle Titanic, você pode baixá-lo aqui . Dessa forma, uma variedade de opções pode ser explorada. Como alternativa, qualquer conjunto de dados de código aberto pode ser usado para a prática.

 

1.  unique e nunique

A função unique no Pandas retorna uma lista dos elementos únicos com base na ocorrência. Esta função é mais rápida do que a unique do NumPy e também inclui valores NaN. Isso é particularmente útil para verificar os diferentes valores em um campo categórico.

data['Embarked'].unique()

Saída:

array (['S', 'C', 'Q', nan], dtype = objeto)

A função Nunique, por outro lado, conta os valores distintos das colunas. Os valores NaN podem ser ignorados. Isso mostra apenas o número de categorias diferentes presentes em uma coluna de um dataframe.

data['Embarked'].nunique()

Saída: 3

 

2. describe

Esta função mostra estatísticas descritivas, como média, desvio padrão, máximo, mínimo e outras tendências centrais, além da forma da distribuição. Isso exclui os valores NaN do resumo. Isso é útil para se ter uma ideia sobre a distribuição dos campos de dados e outliers, se houver. O percentil da saída pode ser personalizado mencionando a faixa de percentis no parâmetro da função.

data.describe()

data.describe()

 

Saída:

3. sort_values

Esta função altera a ordem dos valores em uma coluna classificando-a. Portanto, podemos usar isso para mostrar o dataset de acordo com nossa necessidade, classificando em ordem crescente ou decrescente.

Podemos definir o parâmetro “ascending” verdadeiro ou falso, que por padrão é verdadeiro. Também podemos alterar a classificação por índice ou coluna definindo o parâmetro “eixo” 0 ou 1. Além disso, podemos classificar várias colunas mencionando-as em uma lista, por exemplo:

(e.g. data.sort_values(by=[‘Age’,’Pclass’, ascending=[False,True])
data.sort_values(by='Age',ascending=False)

Saída:

 

4. value_counts

Esta função retorna o valor da contagem para cada item exclusivo presente na coluna. Os valores são exibidos em ordem decrescente para que o elemento mais frequente venha primeiro. Isso exclui os valores nulos. Aqui, veremos o número de homens e mulheres a bordo em diferentes classes, chamando a função value_counts () da seguinte maneira:

data[['Pclass','Sex']].value_counts()

 

Saída:

5. isnull 

Esta função descobre se há algum valor ausente presente em um objeto do tipo array. Esta função retorna valores booleanos após verificar os valores ausentes. Estamos criando uma lista com um valor nulo e quando ela é passada pela função isnull (), ela dá saída com uma lista booleana.

Isso também pode ser útil quando verificamos se há valores ausentes em um grande dataframe. Podemos calcular o número total de valores ausentes de uma coluna adicionando a função sum () ao final da função isnull (). Aqui, pegamos nosso dataset  e verificamos para cada coluna se há algum valor ausente e mostramos o mesmo.

 

#tirando cada coluna do dataframe

forcolindata.columns:

#verificando se há algum nulo na coluna

ifdata[col].isnull().sum()>0:

#se for nulo, número total de nulos nas colunas armazenadas

total_null=data[col].isnull().sum() print('Column{}hastotalnull{},i.e.{}%'.format(col,total_null,round(total_null*100/len(data),2)))

 

Saída:

 

6. fillna

Esta função é usada para preencher os valores ausentes com base no método especificado. Fillna usa parâmetros como valor (um valor que é usado para preencher o valor ausente) e método (como bfill, ffill, etc). Em nosso conjunto de dados de exemplo, o campo “Idade” tem um total de 177 valores ausentes. Vamos preenchê-lo com a mediana de “Idade” usando a função fillna ().

 

data['Age'].fillna(value=data['Age'].median(),inplace=True)
data['Age'].isnull().sum()

Saída: 0

O parâmetro “valor” de fillna () também pode ser obtido de outro groupby complexo ou dataframe ou dicionário.

 

7. groupby 

A função Pandas groupby( ) é usada para dividir os dados e ajudar a aplicação de alguma função a eles e no final combinar o resultado para outro objeto. Frequentemente precisamos dividir os dados e aplicar alguma agregação (por exemplo, soma, média, contagem, etc.) ou transformá-los (por exemplo, para preencher valores ausentes ou padronizar dados), a função groupby é útil nessas situações.

 

# queremos ver para cada campo de gênero máximo, mínimo, média e mediana de idade

data.groupby(['Sex'])['Age'].agg(['max','min','mean','median'])

Saída:

 

8. map 

A função map ( ) no Pandas é usada para mapear séries e substituir valores de uma série por outro valor associado a um dicionário, série ou função. Esta função é frequentemente usada para substituir valores de uma coluna de um dataframe ou uma série, mas lembre-se que todos os valores têm de ser do mesmo tipo!

Em nosso dataset, suponha que queremos converter o campo de gênero em um campo binário, ou seja, substituir “masculino” pelo valor 1 e feminino pelo valor 0. O mesmo pode ser feito facilmente da seguinte maneira:

data['Sex'].head()

 

Saída:

#crie um dicionário para substituir os valores
gender = {'male':1, 'female':0}
#chame a função map e passe o dicionário para mapear os valores da coluna
data['Sex'].map(gender).head()

 

Saída:

 

9. apply

A função apply() no Pandas certamente é uma das funções mais versáteis entre todas. Nós podemos utilizar uma função apply() e ela se aplicará a todo o dataframe (ou a uma série particular). Isso ajuda a modificar os dados de acordo com a condição de uma maneira muito flexível. Vamos ver um exemplo simples, aqui temos um dataframe e uma das colunas tem marcas que queremos converter em uma porcentagem.

df=pd.DataFrame({'Name':['X','Y','Z'],'Marks':[150,120,175]})
df

 

Saída:

def percentage_marks(x):
return x/2
df['Marks'].apply(percentage_marks)

 

Saída:

Aplicar função também pode ser usada com função anônima ou função lambda. Suponha que tenhamos que converter um campo contínuo como “idade” em uma coluna de faixa etária diferente ou converter um campo categórico em um campo codificado por rótulo e, em seguida, aplicar a função junto com a função lambda é muito útil nessas situações.

data['Age_bin']=data['Age'].apply(lambda x : 1 if x<=30 else
(2 if x>30 and x<=45 else</pre>
 (3 if x>45 and x<=60 else 4)))

 

A coluna Age_bin será criada da seguinte forma

 

10. pivot

A função pivot remodela o dataset por valores de índice ou coluna. Essa função é basicamente semelhante à tabela dinâmica. Ele usa o valor exclusivo de uma coluna para formar um índice de um dataset. Ao contrário da função groupby, o pivot não oferece suporte à agregação de dados. Veja exemplo abaixo:

df=pd.DataFrame({'Class':['1st','2nd','3rd','1st','2nd','3rd'],'Section':</pre>
<pre>['A','A','A','B','B','B'],'Gr':[1,2,3,4,5,6]})</pre>
<pre>df

 

Saída:

 

df.pivot(index='Class',columns='Section',values='Gr')

 

Saída:

__  __  __

 

Esperamos que estas funções contribuam ainda mais na sua Análise de Dados, especialmente para você que está iniciando no  mundo do Python e Pandas. Acompanhe o nosso blog para saber sempre mais!

Artigo original, Analytics Vidhya

 

Categorias
Ciência de Dados Machine Learning

Usando Ciência de Dados para detectar anomalias em logs de sistema

Com o aumento significativo de dispositivos computacionais nos últimos anos, a quantidade de dados transmitidos e armazenados cresceu de forma alarmante. Diante disso, os logs de sistema são um artefato essencial para a aplicação das técnicas de detecção de anomalias, pois eles registram os estados e eventos significativos do sistema, ajudando a depurar os comportamentos que não são esperados.

Na indústria é comum registrar informações detalhadas do tempo de execução do software em logs, permitindo que os desenvolvedores e engenheiros de suporte analisem o comportamento do sistema. As ricas informações registradas pelos logs permitem que os desenvolvedores conduzam uma variedade de tarefas de gerenciamento de sistema, como diagnóstico de erros e travamentos, garantia de segurança da aplicação e detecção de anomalias.

A detecção de anomalias desempenha um papel muito importante em várias comunidades, como a de Ciência de Dados, Aprendizado de Máquina, Visão Computacional e Estatística, e é provavelmente o campo mais comum para conduzir uma análise formal e confiável em logs de sistema. Isso, porque é possível detectar coisas que deram errado na execução do processo.

Esse campo, que busca comportamentos anormais do sistema observando os dados de log, permite que os desenvolvedores localizem e resolvam problemas em tempo hábil. 

 

Conceitos básicos 

Quando uma instância de dados apresenta um comportamento diferente do que é esperado pelo sistema, ela passa a ser denominada anomalia. O objetivo da detecção de anomalias é determinar todas essas instâncias orientando-se por dados. As anomalias também são chamadas de anormalidades, novidades, desvios ou discrepâncias na literatura de mineração de dados e estatística. 

Os desvios podem ser causados por erros nos dados, mas às vezes são indicativos de um novo processo subjacente, anteriormente desconhecido. Agora, vamos conhecer os três tipos de classificação nas quais as anomalias são divididas: anomalias pontuais, anomalias contextuais e anomalias coletivas. 

  • A maioria dos trabalhos na literatura concentra-se em anomalias pontuais, que geralmente representam uma irregularidade ou desvio aleatório que pode não ter uma interpretação particular.
  • Uma anomalia contextual, também conhecida como anomalia condicional, é uma instância de dados que pode ser considerada anômala em algum contexto específico, por exemplo, o timestamp, um padrão de gasto de dinheiro, a ocorrência de eventos em logs do sistema ou qualquer recurso usado para descrever o comportamento normal.
  • Anomalias coletivas são um tipo de anomalia que, individualmente, aparece como instâncias normais, e quando observada em grupo, exibe características incomuns. 

 

Aplicações: anomalias robustas

A detecção de anomalias pode ser aplicada em muitos contextos, inclusive para identificar discrepâncias robustas. Nesse caso, temos o LogRobust, uma abordagem de detecção de anomalias baseada em log. 

O LogRobust busca uma detecção precisa e robusta, considerando que os dados de log do mundo real estão em constante mudança. Devido à instabilidade dos dados de log, a eficácia das abordagens de detecção de anomalias existentes é significativamente afetada.

A arquitetura do LogRobust adota a rede neural baseada em atenção Bi-LSTM para lidar com as sequências de log instáveis. Já que os eventos de log diferentes têm impactos distintos no resultado da classificação, o mecanismo de atenção foi apresentado ao modelo Bi-LSTM para atribuir pesos diferentes aos eventos de log. Além disso, o impacto do ruído dos dados também pode ser reduzido, pois eventos com ruído tendem a ter menos importância e são mais propensos a receber pouca atenção. 

 

Aplicações: análise de sentimentos

A detecção de anomalias também pode ser utilizada no contexto de análise de sentimentos.

Em seu trabalho, Hudan Studiawan (2020) propõe uma nova técnica de análise de sentimentos baseada em aprendizado profundo para verificar se há atividades anômalas em logs de sistema operacional (SO). Esse problema é considerado análise de sentimento de duas classes: sentimentos positivos e negativos.

Studiawan usou uma técnica de Deep Learning que fornece alta precisão e flexibilidade em relação a dados não vistos anteriormente. Especificamente, é usado um modelo Gated Recurrent Unit para detectar o sentimento nas mensagens de log do sistema operacional.

Em logs do sistema operacional da vida real, o número de mensagens negativas é muito menor do que as positivas, gerando o desbalanceamento de classe. E para alcançar um equilíbrio entre as duas classes de sentimento é usado o método de Tomek link. O equilíbrio produzirá um modelo de aprendizado profundo melhor; portanto, capaz de detectar com mais precisão atividades anômalas.

Para concluir

Por fim, os métodos não-supervisionados são amplamente utilizados quando não se tem dados rotulados. Vários frameworks de Deep Learning que abordam desafios na detecção de anomalias não-supervisionadas são propostos e mostrados para produzir um desempenho de estado da arte.

Kengo Tajiri (2020) propõe um método de monitoramento de sistemas TIC (Tecnologia da Informação e Comunicação) para detecção contínua de anomalias, considerando que as dimensões dos vetores mudam frequentemente. Os métodos de detecção de anomalias baseados em Autoencoders, que treinam um modelo para descrever a “normalidade”, são promissores para monitorar o estado dos sistemas.

Há uma grande necessidade de desenvolver técnicas de detecção de anomalias de uso geral e personalizadas para problemas. Essas metodologias devem ser adaptadas para acompanhar as últimas mudanças na tecnologia que podem resultar em novas vulnerabilidades em vários sistemas. As técnicas de detecção de anomalias precisam ser eficientes o suficiente para capturar a pequena quantidade de outliers em grandes fluxos de dados e também inteligentes o suficiente para detectar anomalias em períodos de tempo curtos ou longos.

Se você quiser continuar aprendendo sobre o tema, confira aqui embaixo as indicações bibliográficas que selecionamos.

Até o próximo tema!

 

 

Referências Bibliográficas

  • AGGARWAL, Charu C. Neural networks and deep learning. Springer, v. 10, p. 978-3, 2018.
  • CHALAPATHY, Raghavendra; CHAWLA, Sanjay. Deep learning for anomaly detection: A survey. arXiv preprint arXiv:1901.03407, 2019.
  • CHANDOLA, Varun; BANERJEE, Arindam; KUMAR, Vipin. Anomaly detection: A survey. ACM computing surveys (CSUR), v. 41, n. 3, p. 1-58, 2009.
  • MA, Rongjun. Anomaly detection for Linux system log. 2020. Dissertação de Mestrado. University of Twente.
  • PANG, Guansong. Deep Learning for Anomaly Detection: A Review. ACM Computing Surveys (CSUR), v. 54, n. 2, p. 1-38, 2021.
  • SONG, Xiuyao. Conditional anomaly detection. IEEE Transactions on knowledge and Data Engineering, v. 19, n. 5, p. 631-645, 2007.
  • STUDIAWAN, Hudan; SOHEL, Ferdous; PAYNE, Christian. Anomaly detection in operating system logs with deep Learning-based sentiment analysis. IEEE Transactions on Dependable and Secure Computing, 2020.
  • TAJIRI, Kengo et al. Dividing Deep Learning Model for Continuous Anomaly Detection of Inconsistent ICT Systems. In: NOMS 2020-2020 IEEE/IFIP Network Operations and Management Symposium. IEEE, 2020. p. 1-5.
  • ZHANG, Xu et al. Robust log-based anomaly detection on unstable log data. In: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 2019. p. 807-817.
  • ZHU, Jieming et al. Tools and benchmarks for automated log parsing. In: 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP). IEEE, 2019. p. 121-130.

 

 

Categorias
Ciência de Dados Dica de Leitura Machine Learning Tecnologia

Um livro para entender o desenvolvimento de Machine Learning Pipelines

Todo mundo está falando sobre aprendizado de máquina, de uma disciplina acadêmica, ele tornou-se uma das tecnologias mais interessantes em qualquer parte. Incluindo desde a compreensão dos feeds de vídeo em carros autônomos até a personalização de medicamentos, essa tecnologia está se tornando importante em todos os setores. Por isso, te convidamos a conhecer profundamente o livro “Building Machine Learning Pipelines: Automating Model Life Cycles with TensorFlow”.


Escrito pela dupla de autores
Hannes Hapke e Catherine Nelson, esse livro busca mostrar como construir um sistema de machine learning padrão que é automatizado e resulta em modelos reproduzíveis.

 

O que são Machine Learning Pipelines?

Os pipelines de aprendizado de máquina implementam e formalizam processos para acelerar, reutilizar, gerenciar e implantar modelos de aprendizado de máquina. O objetivo deste livro é contribuir para a padronização de projetos de aprendizado de máquina, conduzindo os leitores por todo um pipeline de aprendizado de máquina, de ponta a ponta.


Um pipeline automatizado e reproduzível reduz o esforço necessário para implantar um modelo, assim, o pipeline deve incluir etapas que:

  • Criem versões de seus dados de maneira eficaz e dê início a uma nova execução de treinamento de modelo
  • Validem os dados recebidos e verifique a variação de dados
  • Pré-processem os dados de maneira eficiente para o treinamento e validação do seu modelo
  • Treinem seus modelos de aprendizado de máquina de maneira eficaz
  • Acompanhem o treinamento do seu modelo
  • Analisem e valide seus modelos treinados e ajustados
  • Implantem o modelo validado
  • Dimensionem o modelo implantado
  • Capturem novos dados de treinamento e modelem as métricas de desempenho com ciclos de feedback

 

O livro

Neste guia prático, Hannes Hapke e Catherine Nelson orientam você nas etapas de automação de um pipeline de aprendizado de máquina usando o ecossistema TensorFlow. Você aprenderá as técnicas e ferramentas que reduzirão o tempo de implantação, assim, você poderá se concentrar no desenvolvimento de novos modelos em vez de manter sistemas legados.


Building Machine Learning Pipelines” é voltado para cientistas de dados e engenheiros de machine learning, mas também conversa com gerentes de projetos de data science e engenheiros DevOps. Para a leitura da obra, você deve estar confortável com os conceitos básicos de aprendizado de máquina e familiarizado com pelo menos uma estrutura de aprendizado de máquina (por exemplo, PyTorch, TensorFlow, Keras). Os exemplos de aprendizado de máquina neste livro são baseados no TensorFlow e Keras, mas os conceitos principais podem ser aplicados a qualquer estrutura.


Este livro te ajudará a:

  • Entender as etapas para criar um pipeline de aprendizado de máquina
  • Criar seu pipeline usando componentes do TensorFlow Extended
  • Orquestrar seu pipeline de aprendizado de máquina com Apache Beam, Apache Airflow e Kubeflow Pipelines
  • Trabalhar com dados usando o TensorFlow Data Validation e TensorFlow Transform
  • Analisar um modelo em detalhes usando o TensorFlow Model Analysis
  • Examinar a equidade e o viés no desempenho do seu modelo
  • Implantar modelos com TensorFlow Serving ou TensorFlow Lite para dispositivos móveis
  • Aprender técnicas de aprendizado de máquina que preservam a privacidade

 

Os autores      

Hannes Hapke

Hannes Hapke é um cientista de dados sênior do Concur Labs no SAP Concur e mestre em Engenharia Elétrica pela Oregon State University.  Antes de ingressar no SAP Concur, Hannes resolveu problemas de infraestrutura de aprendizado de máquina em vários setores, incluindo saúde, varejo, recrutamento e energias renováveis. Além disso, Hannes é co-autor de uma publicação sobre processamento de linguagem natural e aprendizado profundo e apresentou-se em várias conferências sobre aprendizado profundo e Python. 

 

Catherine Nelson

Catherine Nelson também é cientista de dados sênior do Concur Labs no SAP Concur e tem PhD em geofísica pela Durham University e mestrado em Ciências da Terra pela Oxford University. Suas principais áreas de foco vão desde ML explainability e análise de modelos até o ML com preservação da privacidade. Enquanto trabalhou como geofísica, ela estudou vulcões antigos e explorou petróleo na Groenlândia.

 

Gostou da nossa dica? Então, agora é hora de alinhar o livro, sua vontade de aprender, seu tempo e praticar bastante para expandir suas habilidades em machine learning.

 

Categorias
Destaque Webinar

Webinar: Intervenção em Violência Doméstica no Brasil e em Portugal

No dia 16 de junho (quarta-feira), realizaremos o webinar “Intervenção em Violência Doméstica no Brasil e em Portugal: Partilha de Práticas e Cooperação Internacional”. Esse evento é resultado da parceria entre o Insight Data Science Lab e a CIG (Comissão para a Cidadania e a Igualdade de Género), órgão nacional português responsável pela promoção e defesa da igualdade entre mulheres e homens.

Nesse encontro, os pesquisadores Rebeca Quezado, José Macêdo e Ricardo Loureiro apresentarão pesquisas realizadas no Brasil e em Portugal para entender o cenário da violência doméstica nos dois países.

Ricardo Loureiro tratará dos projetos realizados pela CIG e Rebeca Quezado e José Macêdo abordarão os resultados do estudo “Panorama do crime de feminicídio cadastrado no Tribunal de Justiça do Estado do Ceará – Comarca de Fortaleza (2018-2019)”. Assim, os três debaterão a relevância das pesquisas científicas e da cooperação internacional no desenvolvimento de práticas para o enfrentamento da violência doméstica.

 

Participantes

 

REBECA QUEZADO: Pesquisadora no Insight Data Science Lab  da Universidade Federal do Ceará – UFC

 

 

 

JOSÉ MACÊDO: Cientista-chefe de Dados do Governo do Estado do Ceará

 

 

 

 

RICARDO LOUREIRO: Técnico Superior da CIG – Comissão para  a Cidadania e a Igualdade de Género

 

 

Participe! Sua presença fortalece o debate.

AGENDA:

? 16 de junho

? Horário:

10h30 (Brasil)

14h30 (Portugal)

Transmissão: Canal Insight Lab (YouTube).

 

 

                                       

Categorias
Big Data Ciência de Dados Dados

Conheça as joias do infinito na Ciência de Dados

Quais são as joias do infinito da Ciência de Dados? As seis joias do universo Marvel Comics você já deve conhecer: Espaço, Mente, Alma, Realidade, Tempo e Poder.  Quando usadas em conjunto, dão ao seu portador poderes que o torna capaz de controlar todo o universo!

Mas como seriam estes poderosos artefatos usados na Data Science (DS)? Você pode unir diversos poderes para dominar o universo dos dados e assim se tornar um super Cientista de Dados!

Quer saber quais são essas joias? Então vamos lá!

 

? Pedra da Realidade 

A Pedra da Realidade concede ao usuário o poder de manipular a matéria.

Presumivelmente, para manipular a realidade, temos que entendê-la. Essa parece ser uma analogia boa (o suficiente) para a importância do conhecimento do domínio (uma vez que um bom cientista de dados não manipula a realidade, certo?).

Iniciar um projeto de DS sem uma compreensão do domínio do projeto não é apenas uma má ideia, como resultado final provavelmente não retratará a  realidade. Assim como não permitimos que atletas competentes que nunca aprenderam as regras do beisebol joguem  da mesma forma, não devemos esperar ser capazes de realizar Ciência de Dados de maneira competente em um domínio que não entendemos, independentemente de nossas habilidades estatísticas, analíticas, técnicas e relacionadas.

O que exatamente constitui conhecimento de domínio? É relativo. Você está fazendo uma análise descritiva superficial de algum aplicativo de namoro? Ou você está empreendendo algum projeto de análise preditiva aprofundado em finanças para uma organização que se especializou em alguma estratégia obscura de investimento em títulos? O conhecimento necessário do domínio de “namoro” para realizar o primeiro feito é provavelmente insignificante, mas quaisquer insights úteis sobre o segundo certamente exigirão um conhecimento financeiro sólido.

 

? Pedra do Espaço 

 

A Pedra do Espaço dá ao usuário poder sobre o espaço.

Poder sobre o espaço, hein? Que tal poder sobre o espaço de dados? E como alguém obteria poder sobre seu espaço de dados? Conhecimento íntimo, por meio de análise exploratória de dados.

Mas quanta Análise de Dados e exatamente de que tipo de análise estamos falando? Isso vai te surpreender, mas … é relativo. Se estamos interessados ​​em Análise Descritiva – isto é, nenhuma previsão, ao longo das linhas de uma análise de dados direta – quanto mais intimamente estivermos familiarizados com os dados, melhor. O fim é o meio neste caso, e portanto a qualidade de descrever, visualizar e compartilhar os dados, como um analista de dados, está altamente correlacionada com a intimidade da exploração.

Quando se trata de Análise Preditiva e empreendimentos de Machine Learning, existem opiniões divergentes sobre o quanto a análise exploratória de dados é útil. Existem também opiniões divergentes sobre o nível de análise exploratória de datasets que não estão sendo usados ​​para treinamento (ou seja, conjuntos de validação e teste). Deixando isso de lado, para garantir que o poder máximo sobre seu espaço de dados seja alcançado, certifique-se de se proteger contra as armadilhas potenciais de análises de dados exploratórias deficientes ou visualizações de má qualidade, como a falácia da correlação, o paradoxo de Simpson e a falácia ecológica.

Quando realizada de maneira adequada, a análise exploratória de dados fornecerá uma compreensão de seus dados de uma forma que permita o acompanhamento de uma Ciência de Dados bem-sucedida.

 

? Pedra do Tempo

A Pedra do Tempo concede ao seu proprietário o poder de rebobinar ou avançar o tempo.

Se você estudou a complexidade do algoritmo, sabe que a escolha do algoritmo pode impactar severamente o tempo que leva para completar uma determinada tarefa de computação, mesmo com os mesmos dados, e é por esta razão que a seleção do algoritmo e do método é o nosso equivalente a ser capaz de manipular o tempo.

Isso se aplica tanto à seleção completa de algoritmos quanto à configuração de hiperparâmetros, que também têm impacto no tempo de execução. As arquiteturas de rede neural podem ser incrivelmente complexas, mas um par de redes neurais simples equivalentes pode ter tempos de convergência muito diferentes ao usar taxas de aprendizado muito desiguais.

Você sabe sobre a compensação de viés-variância, mas também há uma compensação de espaço-tempo, bem como uma compensação de complexidade-velocidade que pode ser feita. Um modelo de Regressão Logística pode não funcionar tão bem quanto um de Random Forest de milhares de árvores, mas esse impacto no desempenho pode valer a pena para você em troca de velocidade, para não falar do aumento na aplicabilidade que o modelo de Regressão Logística pode fornecer frente ao Random Forest (se essa for sua escolha).

Isso não quer dizer que você deva escolher um algoritmo mais rápido (ou menos complexo, ou menos intensivo em computação ou mais explicável), mas você precisa ter em mente que é uma das compensações que você está fazendo e uma das melhores maneiras que temos de controlar o fluxo do tempo.

 

? Pedra do Poder 

 

A Pedra do Poder concede ao seu portador uma grande quantidade de energia – o tipo de energia que você poderia usar para destruir um planeta inteiro.

Isso soa como muita energia. Onde encontramos esse tipo de energia no mundo da Ciência de Dados? Poder computacional!

Poder computacional (ou “computação”) são os recursos computacionais coletivos que temos para lançar em um problema particular. A computação ilimitada já foi considerada a essência e o fim de tudo da computação, e por um bom motivo. Considere quão pouca computação havia uma, duas ou três décadas atrás, em comparação com hoje. Imagine cientistas pensando sobre problemas que poderiam resolver, se ao menos tivessem mais do que um punhado de MHz de computação à sua disposição. O céu seria o limite!

Claro, não foi exatamente assim que as coisas aconteceram. Temos muito mais computação à nossa disposição agora do que jamais tivemos no passado na forma de supercomputadores, a nuvem, APIs publicamente disponíveis apoiadas por grandes quantidades de computação e até mesmo nossos próprios notebooks e smartphones. Todos os tipos de problemas que nunca poderíamos imaginar que teriam computação suficiente para resolver agora são tratáveis, e isso é um grande desenvolvimento. Precisamos ter em mente, no entanto, que “inteligente” é um grande contrapeso para computar, e muitos avanços na Ciência de Dados e suas tecnologias de apoio foram possibilitados pelo cérebro em vez da força.

Idealmente, um equilíbrio perfeito de cérebro e força muscular poderia ser usado para atacar todos os problemas existentes, com o uso inteligente para configurar uma abordagem algorítmica perfeita e a computação necessária disponível para apoiá-la. Talvez esta seja uma área que a Ciência de Dados um dia venha a provar ser útil.

Até então, tenha certeza de que há computação disponível até mesmo para as abordagens menos que perfeitas para a solução de problemas.

 

Pedra da alma

Não está claro quais são os poderes da Pedra da Alma no universo cinematográfico. Nos quadrinhos, a joia permite que o portador capture e controle as almas dos outros.

“Capture e controle as almas dos outros” soa ameaçador, e mais do que apenas um pouco tortuoso. Mas se dermos uma visão mais positiva do conceito de Pedra da Alma, poderíamos forçar uma equivalência entre ela e o poder de predição. Estamos treinando modelos para controlar a essência mais íntima dos dados não rotulados – sua alma – fazendo previsões informadas sobre o que realmente contém.

Isso não é um exagero. Certo!?

A Pedra da Alma, então, é análoga ao poder de predição, o que quer dizer que está no cerne absoluto da Data Science. O que os cientistas de dados estão tentando realizar? Eles estão tentando responder a perguntas interessantes com os dados disponíveis, a fim de fazer previsões que se alinham o mais próximo possível com a realidade. Essa parte da previsão parece bastante crucial.

E, por ser tão crucial, deve ficar evidente que os resultados devem ser tratados com o máximo cuidado. A alma do nosso trabalho é o valor que ele pode criar seja para negócios, instituições de caridade, governo ou sociedade em geral.

A Ciência de Dados é uma luta pela alma, juntamente com a próxima batalha pela mente.

 

? Pedra da Mente 

A Pedra da Mente permite ao usuário controlar as mentes dos outros.

E no mundo do Data Science, nada melhor para ajudar a controlar as mentes dos outros do que uma apresentação de dados bem elaborada, incluindo uma história atraente e visualizações eficazes.

A modelagem está completa. As previsões foram feitas. Os insights são perspicazes. Agora é hora de informar as partes interessadas do projeto sobre os resultados. Mas os demais profissionais que trabalham em uma equipe, além dos cientistas de dados, não têm os mesmos entendimentos sobre os dados e seu processo, então precisamos ser claros ao apresentar nossas descobertas a eles de uma forma que entendam.

Lembre-se, se seus insights não estiverem claros, então seu trabalho não está completo. Cabe a você convencer os outros do valor do seu trabalho. Uma vez convencidos, eles podem agir e a mudança por meio da ação é a verdadeira recompensa de qualquer projeto de Ciência de Dados.

 

Este artigo foi traduzido de Matthew Mayo no KDnuggets.

Sair da versão mobile