1
resposta

sobre o StandardScaler

Pelo que li na documentação: O fit do StandardScaler --> "Compute the mean and std to be used for later scaling."

Se ele considera a media e o desvio para fazer o escalonamento usando a formula z = (x - u) / s, por que usamos o fit apenas para o conjunto de treinamento (raw_treino_x)? Ou seja quando ele escalonar o raw_teste_x, estará usando a media e desvio do treinamento (já que o fit foi feito para o raw_treino_x). Achei bem estranho isso.

1 resposta

Olá Leonardo! Tudo tranquilo?

Sim, você está correto na afirmação que ele estará usando a média e o desvio padrão dos dados de treinamento (raw_treino_x) no conjunto raw_teste_x.

A explicação para isso é que na verdade estamos fazendo uma simulação que os dados de testes são “novos dados desconhecidos”, então usamos o conjunto de dados de teste para ter uma boa aproximação do desempenho do nosso modelo quando ele for usado no mundo real.

Quando você vai usar o modelo, por exemplo, para fazer uma previsão com apenas uma amostra, não é interessante tentar calcular a média e o desvio padrão e aplicar a padronização. Então usa-se a média e o desvio padrão do conjunto de dados de teste para quaisquer dados futuros.

Vamos a um exemplo um pouco mais prático, suponha que você tenha as seguintes amostras.

Nº AmostraValorClasse
Amostra 1302
Amostra 2402
Amostra 3452
Amostra 4501

Fazendo-se os cálculos encontra-se que:

Média = 7.4
Desvio Padrão = 41.25

Realizando o cálculo da transformação (z = (x - u) / s), onde u é a média e s é o desvio padrão, tem-se que após a transformação:

Nº AmostraValorClasse
Amostra 1-1.62
Amostra 2-0.22
Amostra 30.62
Amostra 41.21

E nosso modelo aprendeu da seguinte forma: Classifica como classe 2 as amostras com valor padronizado menor ou igual a 0.6, caso contrário classificam como 1.

Agora tem-se 4 novas amostras:

Nº AmostraValorClasse
Amostra 55?
Amostra 610?
Amostra 712?
Amostra 815?

Fazendo-se os cálculos encontra-se que:

Média = 3.7
Desvio Padrão = 10.5

Intuitivamente imagina-se que todas as amostras acima pertencem à classe 2. Mas se for feita a transformação com base no desvio padrão e média das amostras 5, 6, 7 e 8 teremos os seguintes dados:

Nº AmostraValorClasse
Amostra 5-1.52
Amostra 6-0.22
Amostra 70.52
Amostra 81.31

Atribuindo incorretamente o rótulo de classe 1 à amostra 8.

Mas se as amostras 5, 6, 7 e 8 forem feitas usando a média e desvio padrão das amostras 1, 2, 3 e 4, usadas para treinar o modelo, teríamos o seguinte:

Nº AmostraValorClasse
Amostra 5-4.92
Amostra 6-4.32
Amostra 7-4.02
Amostra 8-3.62

Dessa vez os valores deram mais negativos comparados aos das amostras 1, 2, 3 e 4, o que faz mais sentido agora.

Espero que tenha dado para entender, mas se ficou alguma dúvida é só chamar!

:)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!