StandardScaler, MinMaxScaler, MaxAbsScaler
Existem três abordagens populares para escalonar os dados:
MinMaxScaler
: escala as características para o intervalo [0, 1];MaxAbsScaler
: escala as características de modo que o valor absoluto máximo seja 1 (assim, os dados ficam garantidos no intervalo [-1, 1]);StandardScaler
: padroniza as características tornando a média igual a 0 e a variância igual a 1.
Para ilustrar como os scalers operam, considere as características 'culmen_depth_mm'
e 'body_mass_g'
do conjunto de dados penguins. Essas características podem ser plotadas para observar suas escalas.
MinMaxScaler
O MinMaxScaler
funciona subtraindo o valor mínimo (para que os valores comecem do zero) e depois dividindo por (x_max - x_min) para que o resultado seja menor ou igual a 1.
Aqui está o gif mostrando como o MinMaxScaler
funciona:
MaxAbsScaler
O MaxAbsScaler
funciona encontrando o valor absoluto máximo e dividindo cada valor por ele. Isso garante que o valor absoluto máximo seja 1.
StandardScaler
A ideia do StandardScaler
vem da estatística. Ele funciona subtraindo a média (para centralizar em torno de zero) e dividindo pelo desvio padrão (para que a variância seja igual a 1).
Se você não compreende o que são média, desvio padrão e variância, pode consultar nosso curso Estatística com Python. Entretanto, este conhecimento não é obrigatório para prosseguir.
Segue um exemplo de código com MinMaxScaler
. Outros scalers são aplicados da mesma forma.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
A saída não é das mais bonitas, pois os scalers transformam os dados em um array numpy
, mas com pipelines isso não será um problema.
Apenas as colunas de características (a variável X
) devem ser escaladas. Não há necessidade de escalar a variável alvo, pois isso complicaria o processo de transformação inversa.
Qual Scaler Utilizar?
O StandardScaler
é mais sensível a outliers, tornando-o menos adequado como scaler padrão. Caso prefira uma alternativa ao StandardScaler
, a escolha entre MinMaxScaler
e MaxAbsScaler
depende da preferência pessoal, seja para escalar os dados para o intervalo [0,1] com o MinMaxScaler
ou para [-1,1] com o MaxAbsScaler
.
1. Qual é o principal objetivo de usar o MinMaxScaler
no pré-processamento de dados?
2. Por que você pode reconsiderar o uso do StandardScaler
para seu conjunto de dados?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain when to use each scaler in practice?
What are the main differences between MinMaxScaler and MaxAbsScaler?
Are there any drawbacks to using StandardScaler with outliers?
Awesome!
Completion rate improved to 3.13
StandardScaler, MinMaxScaler, MaxAbsScaler
Deslize para mostrar o menu
Existem três abordagens populares para escalonar os dados:
MinMaxScaler
: escala as características para o intervalo [0, 1];MaxAbsScaler
: escala as características de modo que o valor absoluto máximo seja 1 (assim, os dados ficam garantidos no intervalo [-1, 1]);StandardScaler
: padroniza as características tornando a média igual a 0 e a variância igual a 1.
Para ilustrar como os scalers operam, considere as características 'culmen_depth_mm'
e 'body_mass_g'
do conjunto de dados penguins. Essas características podem ser plotadas para observar suas escalas.
MinMaxScaler
O MinMaxScaler
funciona subtraindo o valor mínimo (para que os valores comecem do zero) e depois dividindo por (x_max - x_min) para que o resultado seja menor ou igual a 1.
Aqui está o gif mostrando como o MinMaxScaler
funciona:
MaxAbsScaler
O MaxAbsScaler
funciona encontrando o valor absoluto máximo e dividindo cada valor por ele. Isso garante que o valor absoluto máximo seja 1.
StandardScaler
A ideia do StandardScaler
vem da estatística. Ele funciona subtraindo a média (para centralizar em torno de zero) e dividindo pelo desvio padrão (para que a variância seja igual a 1).
Se você não compreende o que são média, desvio padrão e variância, pode consultar nosso curso Estatística com Python. Entretanto, este conhecimento não é obrigatório para prosseguir.
Segue um exemplo de código com MinMaxScaler
. Outros scalers são aplicados da mesma forma.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
A saída não é das mais bonitas, pois os scalers transformam os dados em um array numpy
, mas com pipelines isso não será um problema.
Apenas as colunas de características (a variável X
) devem ser escaladas. Não há necessidade de escalar a variável alvo, pois isso complicaria o processo de transformação inversa.
Qual Scaler Utilizar?
O StandardScaler
é mais sensível a outliers, tornando-o menos adequado como scaler padrão. Caso prefira uma alternativa ao StandardScaler
, a escolha entre MinMaxScaler
e MaxAbsScaler
depende da preferência pessoal, seja para escalar os dados para o intervalo [0,1] com o MinMaxScaler
ou para [-1,1] com o MaxAbsScaler
.
1. Qual é o principal objetivo de usar o MinMaxScaler
no pré-processamento de dados?
2. Por que você pode reconsiderar o uso do StandardScaler
para seu conjunto de dados?
Obrigado pelo seu feedback!