Análise Exploratória de Dados em Ciência de Dados

análise exploratória de dados

O objetivo da Análise Exploratória de Dados é conhecer os dados entender a estrutura de dados, verificar valores perdidos, verificar anomalias nos dados, formar hipóteses sobre a população, definir e esclarecer a escolha das características variáveis que serão utilizadas para machine learning, etc.

A análise de dados bem feita nos permite estar mais confiantes a respeito dos resultados apresentados, devidamente interpretados e aplicados no contexto de negócios que estamos inseridos.

Há um número infinito de gráficos, mas você só é preciso de um punhado deles para conhecer os dados bem o suficiente para trabalhar.

quem são os bilionários?

Vamos tentar do EDA no É sempre interessante contar o dinheiro dos outros, não é?

ferramentas

As ferramentas para EDA podem ser diferentes. Usaremos as seguintes ferramentas juntamente com python:

  • para codificação ao vivo e visualizações
  • Ferramentas padrão para quem trabalha com dados — pandas, numpy
  • Ferramentas de visualização — matplotlib, seaborn, plotly,

começar com o básico

Comece respondendo perguntas simples:

  • Quantas entradas temos no conjunto de dados?
  • Quantas colunas/recursos/recursos temos?
  • Que tipos de dados temos em nossas características?
  • Todas as colunas do conjunto de dados fazem sentido?
  • Temos uma variável alvo?
df = pd.read_csv('billionaires.csv')
df.shape
df.columns
df.head()

O objetivo de exibir exemplos do conjunto de dados não é fazer uma análise minuciosa. É para obter um sentido qualitativo dos dados que temos.

estatísticas descritivas

O objetivo das estatísticas descritivas é ter uma visão generalizada de seus dados para que você possa começar a consultar e visualizar seus dados de diferentes maneiras.

A função em Pandas é muito conveniente para obter várias estatísticas sumárias, retorna a quantidade, média, desvio padrão, valores mínimos e máximos, bem como os quantiles de dadosdescribe()

df.describe().T
  • Há notavelmente uma grande diferença entre o 3° quartil (75%) valores máximos de riqueza.
  • Podemos entender imediatamente que temos dados de 1996 a 2014, e 2014 também é a mediana, ou seja, temos muitos dados especificamente para 2014.
  • O ano do nascimento dos milionários obviamente tem alguns valores estranhos como -47 anos.

Nesta fase, você deve começar a tomar notas sobre possíveis correções que gostaria de fazer. Se algo parece fora do lugar, como um desvio potencial em uma de suas características, agora seria uma boa hora para perguntar ao cliente/key stakeholder, ou cavar um pouco mais fundo.

Temos a primeira olhada nos dados. Vamos agora explorar os dados com algumas tramas.

plotar dados quantitativos

Muitas vezes um histograma rápido é suficiente para entender os dados.

Vamos começar com a coisa interessante — quanto dinheiro alguém tem?

plt.figure(figsize=(15,10))
sns.distplot(df['wealth.worth in billions'])
plt.xscale('log')

escala logarítmica

uma escala logarítmica foi usada para pelo menos mostrar alguma distribuição. Obviamente, há muito mais pessoas que não têm grandes quantidades de dinheiro, mas há também uma cauda longa que indica que há pessoas que têm muito dinheiro.

quantos anos têm os bilionários?

Lembramos que há alguns valores excepcionais nesta coluna, vamos limpá-los e ver a imagem certa.

# filtrar registros com idade a partir de 0 anos
df = df[df['demographics.age'] > 0]
plt.figure(figsize=(15,10))
sns.distplot(df['demographics.age'], bins=15)
plt.show()

A distribuição é semelhante a uma normal, com uma cauda ligeiramente maior à esquerda.

indústria

plt.figure(figsize=(15,10))g = sns.FacetGrid(
data=df, hue='wealth.how.industry', aspect=3, height=4)
g.map(sns.kdeplot, 'demographics.age', shade=True)g.add_legend(title='wealth.how.industry')
industries = ['Hedge funds', 'Consumer', 'Technology-Computer']plt.figure(figsize=(15,10))g = sns.FacetGrid(
data=df[(df['wealth.how.industry'] != '0') & (df['wealth.how.industry'].isin(industries))],
hue='wealth.how.industry', aspect=3, height=4)
g.map(sns.kdeplot, 'demographics.age', shade=True)g.add_legend(title='wealth.how.industry')

Você pode ver o dinheiro indo para a parte mais antiga no conjunto de dados. Além disso, pode-se ver que as empresas de tecnologia são mais inclinadas para os jovens, enquanto a indústria de consumo é voltada para os idosos. Há também uma indústria onde, por alguma razão, pode-se ficar rico antes dos 20.

plotar dados qualitativos

Características categóricas não podem ser visualizadas através de histogramas. Em vez disso, você pode visualizá-las com barras.

em qual indústria estão os bilionários mais ricos?

city = df['wealth.how.industry'].value_counts(ascending=False)df_city = df.filter(['wealth.how.industry'], axis=1)
df_city['count'] = 1
grouped_city = df_city.groupby('wealth.how.industry', as_index=False,sort=False).sum()
grouped_city.sort_index(ascending=False)
grouped_city = grouped_city.sort_values('count', ascending=False) plt.figure(figsize=(15,8))
sns.barplot(data=grouped_city, x='count', y='wealth.how.industry')
plt.title('Industries of billioners', fontsize=17)

A julgar pelo plot, no topo estão as indústrias que visam os consumidores. Além disso, há algum “0” da indústria — podemos assumir que são pessoas que simplesmente não têm indústria ou é mista.

qual sexo tem mais bilionários?

plt.figure(figsize=(7,5))
sns.countplot(data=df, x='demographics.gender')
plt.title('Gender', fontsize=17)

nacionalidade dos bilionários

column = 'location.citizenship'
fig = go.Figure(data = [
go.Pie(
values = df[column].value_counts().values.tolist(),
labels = df[column].value_counts().keys().tolist(),
name = column,
marker = dict(line = dict(width = 2, color = 'rgb(243,243,243)')),
hole = .3
)],
layout=dict(title = dict(text="Billionaire countries"))
)
fig.update_traces(textposition='inside', textinfo='percent+label')
fig.show()

Mais de um terço dos bilionários vêm dos Estados Unidos.

Como você pode ver, algumas indústrias, assim como o gênero, têm poucos dados.

boxplots

O boxplot é uma maneira padronizada de exibir a distribuição de dados com base no resumo de cinco números:

  • Mínimo
  • Primeiro quartil
  • Mediana
  • Terceiro quartil
  • Máximo.

As informações acima mencionadas sobre boxplot podem ser quase tão fáceis de avaliar se foram apresentadas em um formato não gráfico. um boxplot é útil porque na prática todos os acima e muito mais podem ser vistos de relance.

análise de correlação

Em suma, as correlações permitem que você olhe para a relação entre características numéricas e outras características numéricas. Para recapitular, a correlação leva valores de -1 para 1. Uma correlação negativa significa que, à medida que um recurso aumenta, o outro diminui, a correlação positiva significa que à medida que uma característica aumenta, a outra aumenta. 0 sem relacionamento.

A pesquisa de correlação é muito útil quando se olha para os dados, pois dá uma ideia de como as colunas se relacionam entre si.

heatmaps de correlação

Os heatmaps de correlação ajudam você a visualizar essas informações.

cols = ['rank', 'year', 'company.founded', 'demographics.age', 'location.gdp']
sns.set(font_scale = 1.25)
sns.heatmap(
df[cols].corr(),
annot = True,
fmt = '.1f'
)
plt.show()

atenção

Quais características estão fortemente correlacionadas com a variável alvo?

  • Existem correlações fortes interessantes ou inesperadas entre outras características?

não tenha medo de tentar mais.

É evidente que essas visualizações simples que são descritas aqui nem sempre podem descrever e mostrar todos os aspectos dos dados e responder a todas as perguntas. Então não tenha medo de experimentar e experimentar outros conceitos.

O caderno completo pode ser encontrado

Ao final da sua etapa de Análise de Dados Exploratórios, você terá uma compreensão muito boa do conjunto de dados, algumas notas para limpeza de dados e, possivelmente, algumas ideias para engenharia de recursos.

Obrigado.

Composing a repository of books (i bought), authors (i follow) & blogs (direct ones) for my own understanding.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store