Advertisement

Aula 04 - Tratamento de valores inconsistentes



Para realizar o tratamento de dados inconsistentes o primeiro passo é identificar dentro do dataset quais são as restrições que devem ser aplicadas a um determinado dado. Por exemplo, se em um dataset você possui uma coluna chamada "peso", sabemos que esse peso não pode ser negativo. 

Após identificadas as restrições e problemas que um dataset apresenta podemos realizar uma limpeza nos dados. Essa limpeza irá remover todos os valores inconsistentes do dataset evitando distorções na aplicação dos algoritmos de Machine Learning.


A base que iremos utilizar é de clientes de um cartão de crédito e está disponível nesse link:

https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients

Nesse exemplo iremos realizar o tratamento da coluna IDADE ou 'age'. 


Técnica 01 - Remover a coluna


Pode parecer estranho, mas remover uma coluna pode ser algo interessante quando você não se importa com aqueles dados. Ou seja, na sua análise você não precisará daqueles dados para conseguir o resultado que você pensou. Então o pensamento é simples, remova a coluna e tudo ficará bem. 


Para realizar essa operação você deverá usar o método drop passando como argumento o label da coluna ('age'). O segundo parâmetro indica que você está querendo excluir uma coluna e não uma linha (0 - linhas; 1 - colunas). Já o terceiro parâmetro diz que o pandas deverá fazer a operação dentro da variável alterando-a diretamente (não sendo necessário pegar o seu retorno em uma nova variável).

data.drop('age', 1 , inplace=True)



Técnica 02 - Remover as linhas problemáticas

É uma boa ideia também remover apenas aquelas linhas que possuem idade negativa. A remoção desses dados poderá causar uma distorção no resultado final caso a quantidade de dados removidos seja muito grande.

Para realizar essa operação usando o pandas você deverá usar o método drop e passar como argumento os indexes dos registros problemáticos.

Pegando os indexes problemáticos


indexesProblematicos = data[data.age < 0].index

Removendo os índices:

data.drop(indexesProblematicos, inplace=true)



Técnica 03 - Substituir as linhas problemáticas pela média das idades

Essa técnica é interessante, pois se você substitui pela média o resultado final não será impactado. Outro benefício é que se você não remove a linha ou a coluna, não são perdidas as demais informações e você poderá usa-las livremente.

Para realizar essa operação você primeiro precisará extrair a média da coluna idade desconsiderando os valores negativos.

print(base['age'][base.age > 0].mean())
data.loc[base.age < 0, 'age'] = 40.9

Nenhum comentário

Conta pra mim sua opinião!

Fale comigo