Aprendizado de Máquina - Escala
Hoje estamos cobrindo a escala Python ML com alguns tipos de exemplos na esperança de atender às necessidades dos alunos.
Características de escala
Você pode ter dificuldade em comparar dados se eles tiverem valores e medidas diferentes.
Como libras (lbs) se comparam a quilos (km)?
Que tal altitude versus tempo?
Escalar é a solução para esse problema. O escalonamento de dados nos permite comparar novos valores com mais facilidade.
Confira a tabela abaixo, onde Passivos e Desempenho são representados em USD.
Empresa | partir | funcionários | passivos | Desempenho |
Amazon Inc | armazém | 30000 | 90000000 | 89 |
Amazon Inc | ISTO | 5000 | 45000000 | 200 |
Amazon Inc | Apoiar | 10000 | 25000000 | 400 |
Apple Inc | Departamento de design | 1000 | 11000000 | 80 |
Apple Inc | auditoria | 500 | 1750000 | 90 |
Apple Inc | tecnologia | 25000 | 187500000 | 130 |
BlackRock Inc | Conselheiros | 5000 | 91500000 | 90 |
BlackRock Inc | Analistas | 2000 | 56300000 | 134 |
BlackRock Inc | tecnologia | 7500 | 18000000 | 100 |
BlackRock Inc | Vendas | 10000 | 34500000 | 66 |
BlackRock Inc | Consultores | 22000 | 97680000 | 76 |
China Petroleum & Chemical Corp. (SNP) | mecânico | 75000 | 166500000 | 68 |
China Petroleum & Chemical Corp. (SNP) | Pesquisar | 2500 | 12500000 | 30 |
China Petroleum & Chemical Corp. (SNP) | Fornecer | 110000 | 220000000 | 240 |
CVS Health Corp | Pesquisar | 10000 | 92300000 | 30 |
CVS Health Corp | manutenção | 5000 | 8390000 | 69 |
CVS Health Corp | PharmD | 2500 | 8500000 | 508 |
Google Inc | IA | 25000 | 49975000 | 157 |
Google Inc | Advertir | 40000 | 180000000 | 782 |
Google Inc | Pesquisar | 10000 | 134300000 | 52 |
Google Inc | Finança | 5000 | 14000000 | 89 |
Microsoft Inc | Pesquisar | 24000 | 244800000 | 50 |
Microsoft Inc | IA | 5000 | 468000000 | 29 |
Microsoft Inc | SO | 27000 | 151200000 | 1130 |
Royal Dutch Shell PLC | Pesquisar | 15000 | 184500000 | 40 |
Royal Dutch Shell PLC | Finança | 10000 | 43800000 | 78 |
Tesla Inc | Engenheiro | 8000 | 48000000 | 210 |
Tesla Inc | Montar | 17000 | 81600000 | 330 |
Tesla Inc | Finança | 3000 | 10500000 | 99 |
Tesla Inc | Conselheiros | 1000 | 18860000 | 40 |
Tesla Inc | auditoria | 1300 | 6501300 | 94 |
Wallmart Inc | Fornecer | 134000 | 368500000 | 566 |
Wallmart Inc | Finança | 100000 | 335700000 | 79 |
Wallmart Inc | armazém | 155000 | 376960000 | 198 |
Wallmart Inc | tecnologia | 200000 | 800000000 | 164 |
Wallmart Inc | Apoiar | 360000 | 1620000000 | 303 |
Usando valores comparáveis, podemos ver facilmente quanto um valor é comparado a outro se escalarmos o passivo 9.000.000 com os funcionários 30.000.
O escalonamento de dados pode ser obtido de várias maneiras. Usaremos um método chamado padronização neste tutorial.
Esta fórmula é usada no método de padronização:
z = (x - u) / s
Nesta equação, z representa o novo valor, x representa o valor original, u representa a média e s representa o desvio padrão.
Com base no conjunto de dados acima, o primeiro valor do passivo é 90000000 e o valor escalado é:
(90000000 - 175100452.77) / 293691058.741973 = -0.28976181
De acordo com o conjunto de dados acima, o primeiro valor da coluna de funcionários é 3000 e o valor escalado é:
(30000 - 40647.222222222) / 72005.90441111 = -0.147865961
Em vez de comparar 9.000.000 com 30.000, agora você pode comparar -0,28 com -0,14.
Existem várias funções utilitárias comuns e classes transformadoras no pacote sklearn.preprocessing para converter vetores de recursos brutos em um formato adequado para estimativa downstream.
A padronização de conjuntos de dados geralmente beneficia os algoritmos de aprendizado.
O módulo Python sklearn possui um método chamado StandardScaler() que retorna um objeto Scaling com métodos para transformar conjuntos de dados.
O escalonamento deve ser feito da seguinte forma:
Example
Resultado:
Como você pode ver, os dois primeiros valores correspondem aos nossos cálculos: -0,28 e -0,14.
[[-0.28976181 -0.14786596] [-0.44298404 -0.49505971] [-0.51108281 -0.42562096] [-0.55875195 -0.55061071] [-0.59024763 -0.55755459] [ 0.0422197 -0.21730471] [-0.2846544 -0.49505971] [-0.40450824 -0.53672296] [-0.53491738 -0.46034034] [-0.4787359 -0.42562096] [-0.26361188 -0.25896796] [-0.02928401 0.47708279] [-0.55364455 -0.52977909] [ 0.1528802 0.96315404] [-0.28193045 -0.42562096] [-0.56763884 -0.49505971] [-0.5672643 -0.52977909] [-0.42604447 -0.21730471] [ 0.01668266 -0.00898846] [-0.13892303 -0.42562096] [-0.54853714 -0.49505971] [ 0.23732267 -0.23119246] [ 0.99730495 -0.49505971] [-0.08137957 -0.18952921] [ 0.03200488 -0.35618221] [-0.44706997 -0.42562096] [-0.43276923 -0.45339646] [-0.31836329 -0.32840671] [-0.56045442 -0.52283521] [-0.53198914 -0.55061071] [-0.57406975 -0.54644439] [ 0.65851357 1.29646004] [ 0.54683159 0.82427654] [ 0.68731935 1.58810279] [ 2.12774454 2.21305154] [ 4.91979413 4.43509154]]
Prever Desempenho
Dimensionar o conjunto de dados exigirá que você use a escala ao prever valores:
Preveja os resultados de desempenho de 10 funcionários cujos passivos são de 100.000 dólares
Example
Resultado:
Agora você sabe:
- Ao trabalhar com muitos algoritmos de aprendizado de máquina , o escalonamento de dados é recomendado como uma etapa de pré-processamento.
- As variáveis de entrada e saída podem ser normalizadas ou padronizadas para alcançar o escalonamento de dados.
- Padronização e normalização podem ser aplicadas para melhorar o desempenho de algoritmos de modelagem preditiva.