Estratégias populares para imputar estatisticamente valores em falta em um conjunto de dados.
Muitos conjuntos de dados do mundo real podem conter valores em falta por várias razões. Eles são frequentemente codificados como NaNs, espaços em branco ou qualquer outro espaço reservado. Treinar um modelo com um conjunto de dados que tem muitos valores em falta pode impactar drasticamente a qualidade do modelo de aprendizagem da máquina. Alguns algoritmos como os estimadores scikit-learn assumem que todos os valores são numéricos e têm e mantêm valores significativos.
Uma maneira de lidar com este problema é se livrar das observações que têm dados em falta. No entanto, você corre o risco de perder pontos de dados com informações valiosas. Uma estratégia melhor seria imputar os valores que faltam. Em outras palavras, precisamos inferir esses valores faltantes a partir da parte existente dos dados. Existem três tipos principais de dados em falta:
Missing completamente ao acaso (MCAR)
Missing at random (MAR)
Não faltando ao acaso (NMAR)
No entanto, neste artigo, vou focar em 6 formas populares de imputação de dados para conjuntos de dados transversais ( conjunto de dados da série temporal é uma história diferente ).
Essa é fácil. Basta deixar o algoritmo tratar dos dados em falta. Alguns algoritmos podem fatorar os valores em falta e aprender os melhores valores de imputação para os dados em falta com base na redução da perda de treinamento (ou seja, XGBoost). Alguns outros têm a opção de simplesmente ignorá-los (ou seja, LightGBM – use_missing=false). No entanto, outros algoritmos entram em pânico e lançam um erro reclamando dos valores faltantes (ou seja, Scikit learn – LinearRegression). Nesse caso, você precisará lidar com os dados ausentes e limpá-los antes de alimentá-los com o algoritmo.
Vejamos algumas outras formas de imputar os valores ausentes antes do treinamento:
Note: Todos os exemplos abaixo usam o California Housing Dataset do Scikit-learn.
2- Imputação Usando Valores (Média/Mediana):
Isto funciona calculando a média/mediana dos valores não ausentes em uma coluna e depois substituindo os valores ausentes dentro de cada coluna separadamente e independentemente das outras. Só pode ser usado com dados numéricos.