Excluindo um Dado "Extra"
O objetivo do processamento de dados, que inclui a remoção de dados "extras", é muito diversificado. É por isso que agora revisaremos brevemente suas etapas principais: processamento de lacunas, duplicatas e valores discrepantes.
Lidar com valores faltantes é o primeiro passo importante
A coisa mais simples que podemos fazer é remover linhas que contêm valores NaN
:
df = df.dropna()
Outra opção é substituir os dados faltantes pela mediana de toda a coluna:
med = df['profundidade_bico_mm'].median()
df['profundidade_bico_mm'] = df['profundidade_bico_mm'].fillna(med)
Se as linhas com valores NaN não forem mais do que 5-8%, então ainda podem ser removidas. Mas se houver muitas delas, é melhor recorrer ao método de imputação (substituição dos valores pela média, mediana ou moda).
Por exemplo, a imputação pela média é usada quando se trabalha com conjuntos de dados com uma distribuição simétrica e pode ser instável com um grande número de outliers. Enquanto a imputação pela mediana é adequada para dados com uma distribuição assimétrica.
A imputação pela moda é comumente usada para características categóricas e variáveis discretas com um pequeno número de valores possíveis.
A identificação de duplicatas no conjunto de dados é o nosso próximo passo
Para implementá-lo, usamos o método .drop_duplicates()
:
df = df.drop_duplicates()
Remover características não informativas é a última coisa que consideraremos
Uma coluna com muitas linhas contendo os mesmos valores não fornece informações úteis para o projeto. Utilizando o algoritmo a seguir, podemos compilar uma lista de características nas quais mais de 95% das linhas contêm o mesmo valor:
num_rows = len(df.index)
low_information_cols = []
for col in df.columns:
cnts = df[col].value_counts(dropna=False)
top_pct = (cnts/num_rows).iloc[0]
if top_pct > 0.95:
low_information_cols.append(col)
print('{0}: {1:.5f}%'.format(col, top_pct*100))
print(cnts)
Um outro método simples para remover características não-informativas é calcular a correlação entre a característica e a variável-alvo. Se a correlação não atingir um determinado limiar (que você define manualmente), a característica pode ser removida. É claro que a correlação é usada apenas para modelos lineares. Ao trabalhar com dependências não-lineares, você pode avaliar a entropia cruzada de um modelo sem e com determinadas características.
Em alguns casos, até características com pequenas correlações podem ainda fornecer informações úteis quando combinadas com outras características. Técnicas de seleção de características, como seleção progressiva/retrogressiva ou métodos de regularização, podem ser usadas para identificar e selecionar as características mais informativas para o modelo.
Swipe to start coding
Limpe o conjunto de dados utilizando os 2 métodos acima no conjunto de dados penguins.csv
.
Solução
Obrigado pelo seu feedback!