Atributos com valores ausentes ou pouca variância

Redução de Dimensionalidade em Python

Jeroen Boeye

Head of Machine Learning, Faktion

Criando um seletor de atributos

print(ansur_df.shape)
(6068, 94)
from sklearn.feature_selection import VarianceThreshold

sel = VarianceThreshold(threshold=1)

sel.fit(ansur_df) mask = sel.get_support() print(mask)
array([ True,  True, ..., False,  True])
Redução de Dimensionalidade em Python

Aplicando um seletor de atributos

print(ansur_df.shape)
(6068, 94)
reduced_df = ansur_df.loc[:, mask]
print(reduced_df.shape)
(6068, 93)
Redução de Dimensionalidade em Python

Atenções com o seletor por variância

buttock_df.boxplot()

boxplots de atributos

Redução de Dimensionalidade em Python

Normalizando a variância

from sklearn.feature_selection import VarianceThreshold

sel = VarianceThreshold(threshold=0.005)

sel.fit(ansur_df / ansur_df.mean())

mask = sel.get_support() reduced_df = ansur_df.loc[:, mask] print(reduced_df.shape)
(6068, 45)
Redução de Dimensionalidade em Python

Seletor de valores ausentes

amostra de pokemon

Redução de Dimensionalidade em Python

Seletor de valores ausentes

amostra de pokemon com NaN

Redução de Dimensionalidade em Python

Identificando valores ausentes

pokemon_df.isna()

amostra de pokemon booleano para NaN

Redução de Dimensionalidade em Python

Contando valores ausentes

pokemon_df.isna().sum()
Name         0
Type 1       0
Type 2     386
Total        0
HP           0
Attack       0
Defense      0
dtype: int64
Redução de Dimensionalidade em Python

Contando valores ausentes

pokemon_df.isna().sum() / len(pokemon_df)
Name       0.00
Type 1     0.00
Type 2     0.48
Total      0.00
HP         0.00
Attack     0.00
Defense    0.00
dtype: float64
Redução de Dimensionalidade em Python

Aplicando um limite para valores ausentes

# Menos de 30% de valores ausentes = valor True
mask = pokemon_df.isna().sum() / len(pokemon_df) < 0.3
print(mask)
Name        True
Type 1      True
Type 2     False
Total       True
HP          True
Attack      True
Defense     True
dtype: bool
Redução de Dimensionalidade em Python

Aplicando um limite para valores ausentes

reduced_df = pokemon_df.loc[:, mask]

reduced_df.head()

amostra de pokemon após máscara

Redução de Dimensionalidade em Python

Vamos praticar

Redução de Dimensionalidade em Python

Preparing Video For Download...