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

1
2
3
4
5
6
7
8
9
10
import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
vardf = pandas.read_csv("dataset.csv")
mrx = vardf[['liabilities', 'employees']]
scaledmrx = scale.fit_transform(mrx)
print(scaledmrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
df = pandas.read_csv("dataset.csv")
mrx = df[['liabilities', 'employees']]
ample = df['Performance']
scaledmrx = scale.fit_transform(mrx)
regr = linear_model.LinearRegression()
regr.fit(scaledmrx, ample)
scaled = scale.transform([[100000, 10]])
predictedPerformance = regr.predict([scaled[0]])
print(predictedPerformance)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Resultado:

resultado de previsão de escala


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.

 

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone