Não consigo compreender a página do StandardScaler
na documentação de sklearn
.
Alguém pode me explicar isso em termos simples?
python
machine-learning
scikit-learn
scaling
standardized
nitinvijay23
fonte
fonte
each value in the dataset will have the sample mean value subtracted
-- isso não é verdade. A média de CADA característica / coluna será subtraída dos valores da coluna específica. Isso é feito em colunas. Não hásample mean value subtracted
- Veja minha resposta abaixoIntrodução: Presumo que você tenha uma matriz
X
onde cada linha / linha é uma amostra / observação e cada coluna é uma variável / característica (essa é a entrada esperada para qualquersklearn
função ML, a propósito -X.shape
deveria ser[number_of_samples, number_of_features]
).Núcleo do método : A idéia principal é normalizar / padronizar ie
μ = 0
eσ = 1
seus recursos / variáveis / colunas deX
, individualmente , antes de aplicar qualquer modelo de aprendizagem de máquina.StandardScaler()
irá normalizar os recursos, ou seja, cada coluna de X, INDIVIDUALMENTE , de modo que cada coluna / recurso / variável teráμ = 0
eσ = 1
.PS: Acho que a resposta mais votada nesta página está errada. Estou citando "cada valor no conjunto de dados terá o valor médio da amostra subtraído" - Isso não é verdadeiro nem correto.
Veja também: Como e por que padronizar seus dados: um tutorial de python
Exemplo:
Verifique se a média de cada recurso (coluna) é 0:
Verifique se o padrão de cada recurso (coluna) é 1:
As matemáticas:
ATUALIZAÇÃO 08/2019 : Concertando os parâmetros de entrada
with_mean
ewith_std
paraFalse
/True
, forneci uma resposta aqui: StandardScaler diferença entre “with_std = False or True” e “with_mean = False or True”fonte
[1.15, 1.15]
quando calculo como um pandas dfpd.DataFrame(scaled_data).std(0)
:?pd.DataFrame(scaled_data)[0]
, obtenho uma série com osName: 0, dtype: float64
valores e[-1.0, 1.0, -1.0, 1.0]
. Desculpe pela formataçãoStandardScaler
, isso torna o algoritmo de aprendizado de máquina mais rápido ou ajuda a tomar decisões mais precisas, ou algo mais?Como calcular:
Você pode ler mais aqui:
fonte
StandardScaler executa a tarefa de padronização . Normalmente, um conjunto de dados contém variáveis que são diferentes em escala. Por exemplo, um conjunto de dados de funcionários conterá a coluna AGE com valores na escala 20-70 e a coluna SALARY com valores na escala 10000-80000 .
Como essas duas colunas são diferentes em escala, elas são padronizadas para ter uma escala comum durante a construção do modelo de aprendizado de máquina.
fonte
Isso é útil quando você deseja comparar dados que correspondem a unidades diferentes. Nesse caso, você deseja remover as unidades. Para fazer isso de forma consistente com todos os dados, você transforma os dados de forma que a variância seja unitária e que a média da série seja 0.
fonte
As respostas acima são ótimas, mas eu precisava de um exemplo simples para aliviar algumas preocupações que tive no passado. Eu queria ter certeza de que ele estava tratando cada coluna separadamente. Agora estou tranquilo e não consigo descobrir que exemplo me preocupou. Todas as colunas SÃO dimensionadas separadamente, conforme descrito acima.
CÓDIGO
RESULTADO
fonte
A seguir está um exemplo simples de trabalho para explicar como funciona o cálculo de padronização. A parte teórica já está bem explicada em outras respostas.
Cálculo
Como você pode ver na saída, a média é [6. , 2,5] e o desvio padrão é [1,41421356, 0,8660254]
Os dados são (0,1) a posição é 2 Padronização = (2 - 2,5) / 0,8660254 = -0,57735027
Os dados na posição (1,0) são 4 Padronização = (4-6) / 1,41421356 = -1,414
Resultado após padronização
Verifique a média e o desvio padrão após a padronização
Nota: -2,77555756e-17 é muito próximo de 0.
Referências
Compare o efeito de diferentes scalers em dados com outliers
Qual é a diferença entre normalização e padronização?
A média dos dados escalados com sklearn StandardScaler não é zero
fonte
Após a aplicação
StandardScaler()
, cada coluna em X terá média 0 e desvio padrão 1.As fórmulas são listadas por outras pessoas nesta página.
Justificativa: alguns algoritmos requerem que os dados tenham a seguinte aparência (consulte a documentação do sklearn ).
fonte