Verificar se há dados ausentes em blocos de anotações

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 aspeto crucial da fase de exploração e pré-processamento de dados em um projeto de aprendizado de máquina, e a maneira como você lida com eles 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 em falta

Para identificar se há algum dado ausente 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 onde os valores estão faltando (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 em falta

Em um projeto de ciência de dados, a falta de valores pode ocorrer por vários motivos e entender sua natureza é crucial para tratá-los adequadamente.

Aqui estão alguns tipos de valores ausentes:

  • Missing Completely at Random (MCAR): A falta de dados não está relacionada com os valores de nenhuma outra variável e é aleatória. Este é o cenário ideal, mas muitas vezes não é o caso em dados do mundo real.

  • Missing at Random (MAR): A falta de dados está relacionada com os valores de algumas outras variáveis, mas não com os dados em falta em si. Por exemplo, se as mulheres são mais propensas a divulgar o seu número de passos diários do que os homens, então os dados dos passos diários são MAR.

  • Missing Not at Random (MNAR): A falta de dados está relacionada com os valores dos próprios dados em falta. Por exemplo, as pessoas com salários mais elevados podem ser menos propensas a revelar os seus rendimentos. A remoção desses registros poderia introduzir distorções no modelo, impedindo-o de refletir com precisão as informações completas contidas nos dados.

Compreender 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 o 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 de seu modelo. Aqui estão algumas estratégias que você pode considerar.

  • Ignorar: se faltar apenas uma pequena quantidade de dados, isso pode não ter um impacto significativo no desempenho do seu modelo.

  • Remover: Se uma determinada linha ou coluna tiver muitos valores ausentes, talvez seja melhor removê-la completamente.

  • Imputar: preencha os valores em falta com um valor ou estimativa especificado (como média, mediana, modo ou usando um algoritmo de aprendizagem automática como K-Nearest Neighbors (KNN)).

  • Use-o como um novo recurso: Às vezes, o fato de que um valor está faltando pode ser usado como informação em si. Por exemplo, em uma pesquisa de produto, perguntas sem resposta sobre a recomendação do produto podem indicar insatisfação do cliente. Neste caso, a não resposta pode ser um novo recurso indicando uma probabilidade de insatisfação do cliente.

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