Verificar se há dados ausentes em notebooks

Concluído

Dados ausentes referem-se à falta de valores em determinadas variáveis dentro de um conjunto de dados.

Identificar e lidar com dados ausentes é um aspecto crucial da fase de exploração e pré-processamento de dados em um projeto de machine learning e a maneira como você os manipula pode afetar significativamente o desempenho do seu modelo.

As principais etapas para lidar com dados ausentes incluem avaliar a quantidade de dados ausentes, identificar a natureza dos dados ausentes e escolher o melhor método para lidar com os valores de dados ausentes.

Identificar dados ausentes

Para identificar se há dados ausentes em seu conjunto de dados, você pode usar as funções isnull() ou isna() do Pandas.

import pandas as pd
import numpy as np

# Create a sample DataFrame with some missing values
data = {
    'A': [1, 2, np.nan],
    'B': [4, np.nan, np.nan],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data)

# Check for missing data
print(df.isnull())

Resultados:

       A      B      C
0  False  False  False
1  False   True  False
2   True   True  False

Isso gera um DataFrame do mesmo tamanho que df, mas com True nas posições em que os valores estão ausentes (NaN) e False em outro lugar.

Para obter o número total de valores ausentes no dataframe, você pode usar df.isnull().sum(). Isso retorna o número de valores ausentes para cada coluna.

df.isnull().sum()

Resultados:

A    1
B    2
C    0
dtype: int64

Avaliar a natureza dos valores ausentes

Em um projeto de ciência de dados, valores ausentes podem ocorrer por vários motivos e entender sua natureza é crucial para lidar com eles adequadamente.

Aqui estão alguns tipos de valores ausentes:

  • Ausente de Forma Completamente Aleatória (MCAR): A falta de dados não está relacionada aos valores de nenhuma outra variável e é aleatória. Esse é o cenário ideal, mas geralmente não é o caso em dados do mundo real.

  • Ausente de Forma Aleatória (MAR): A falta de dados está relacionada aos valores de algumas outras variáveis, mas não aos dados ausentes em si. Por exemplo, se as mulheres são mais propensas a divulgar seu número de passos diários do que os homens, então os dados de passos diários são MAR.

  • Ausente de Forma Não Aleatória (MNAR): A falta de dados está relacionada aos valores dos próprios dados ausentes. Por exemplo, pessoas com salários mais altos podem ser menos propensas a divulgar sua renda. A remoção desses registros pode introduzir viés no modelo, impedindo-o de refletir com precisão as informações completas contidas nos dados.

Entender a natureza dos valores ausentes em seu conjunto de dados pode orientá-lo sobre como lidar com eles. Para MCAR e MAR, você pode optar por métodos de exclusão ou imputação. Para MNAR, esses métodos podem introduzir viés, portanto, pode ser melhor coletar mais dados ou usar métodos baseados em modelo que possam lidar com valores ausentes.

Decidir como lidar com dados ausentes

A abordagem para lidar com dados ausentes pode afetar significativamente os resultados de sua análise e o desempenho do seu modelo. Aqui estão algumas estratégias que você pode considerar.

  • Ignorar: se apenas uma pequena quantidade de dados estiver ausente, talvez isso não tenha um impacto significativo no desempenho do modelo.

  • Remover: se uma linha ou coluna específica tiver muitos valores ausentes, talvez seja melhor removê-la completamente.

  • Imputar: preencha os valores ausentes com um valor ou estimativa especificado (como média, mediana, modo ou por meio de um algoritmo de aprendizado de máquina, como K-Nearest Neighbors (KNN)).

  • Usar como novo recurso: Às vezes, o fato de um valor estar ausente pode ser usado como uma informação. Por exemplo, em uma pesquisa de produto, perguntas sem resposta sobre como recomendar o produto podem indicar a insatisfação do cliente. Nesse caso, a ausência da resposta pode ser um novo recurso que indica uma probabilidade de insatisfação do cliente.

Não há uma solução de tamanho único para lidar com dados ausentes. A melhor abordagem depende das especificidades do seu conjunto de dados e da pergunta que você está tentando responder.