Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

Na aprendizagem mecânica, é possível resolver a modelação preditiva através de problemas de classificação. Para cada observação no modelo, é necessário prever a etiqueta da classe. Os dados de entrada conterão qualquer uma das seguintes variáveis: variáveis categóricas ou variáveis contínuas. No entanto, a saída conterá sempre uma variável categórica. Podemos compreender este conceito com o seguinte exemplo. Digamos que estamos a prever o tempo na vizinhança. Consideraremos a época do ano e a informação meteorológica como características de entrada. A informação meteorológica incluirá temperatura, velocidade do vento, humidade, nublado/solário. Geraremos resultados sobre se vai chover ou não. Num outro exemplo, podemos prever se o e-mail é ou não spam, considerando a informação do remetente e o conteúdo do e-mail como a saída.

Compreender a perda de registo

A perda de registo é uma métrica de classificação essencial para previsões baseadas em probabilidades. Embora a interpretação dos valores de perda de registo em bruto seja uma tarefa complicada, encontrará uma técnica eficaz para comparar um modelo de aprendizagem de uma máquina com outro. Tenha em mente que para encontrar boas previsões para qualquer problema, deve considerar o valor mais baixo de perda de registo. Também pode referir-se à Perda de registo como perda de centro-cruzado ou perda logística.
A função de perda é útil para modelos multinominais como a regressão logística e as suas extensões. As extensões incluem redes neuronais e outros tipos de modelos. Por outras palavras, a função de perda é a probabilidade logística negativa de um modelo logístico. Desde que o modelo devolva (y_pred) probabilidades para a formação dos dados (y_true).
Só se pode definir a perda logarítmica para duas etiquetas e mais. A equação de perda logarítmica, considerando a primeira amostra com estimativa de probabilidade p=Pr (y=1) e rótulo verdadeiro y∈{0,1} seria:
Llog(y,p)=-(ylog(p)+(1-y)log(1-p))

Exemplos de perda de registo

Suponha-se que as probabilidades previstas do modelo para três casas como [0,8, 0,4, 0,1]. Apenas a última de todas estas casas não foi vendida. Portanto, representará numericamente o resultado final destas entradas como [1, 1, 0].

Perda de registo e Python

Abaixo, discutiremos vários tipos de funções de perda para a função de perda concreta. Utilizaremos o Python para o cálculo:

– Perda Média de Erro Quadrático

A Perda Média de Erro Quadrático é uma função de regressão de perda. Calcula-se a MSE como a média da variância quadrática entre os valores previstos e os valores reais. Não importa o sinal que os valores previstos e os valores reais contenham, receberá sempre um resultado positivo. O valor perfeito seria 0,0. Apesar do facto de poder fazer uma pontuação negativa e utilizar o valor de perda para o processo de optimização da maximização, o resultado será o mínimo. A seguinte função Python calculará o erro quadrático dos meios. Além disso, é possível fazer uma lista de quantidades previstas e reais avaliadas.
# calcular o erro médio ao quadrado
def mean_squared_error(real, previsto):
sum_squadrado_error = 0.0
para i no intervalo(len(real)):
sum_square_error += (real[i] – previsto[i])**2,0
média_squadrado_erro = 1,0 / len(real) * sum_squadrado_erro
return mean_square_error
Deverá utilizar a função erro médio ao quadrado() para implementar a perda do erro de forma eficiente.

– Perda de Encruzilhada (ou Perda de Registo)

Pode referir-se à perda de cross-entropy como uma perda logarítmica, cross-entropy, perda logística, ou perda logística. Indica que cada probabilidade que prevê se compara com o valor real de saída da classe como 0 ou 1. Esta técnica calcula a pontuação. Esta pontuação penalizará a probabilidade devido à distância entre o valor de saída e o valor esperado. A natureza da penalização será logarítmica. A grande diferença conterá uma pontuação enorme, tal como 0,9 ou 10. Contudo, as diferenças menores incluirão pequenas pontuações, tais como 0,1 ou 0,2.
O modelo com probabilidades precisas conterá uma perda de logaritmo ou uma centralidade cruzada de 0,0. Indica que a perda de centralidade cruzada está no mínimo, e valores mais pequenos representarão um bom modelo em vez de valores maiores. Entre todos os exemplos, a centropia cruzada para previsão de duas classes ou problemas binários calculará a centropia cruzada média.
As seguintes funções Python irão ajudá-lo a calcular a perda de registo. Tem de implementar este pseudo-código e comparar os valores 0 e 1 e prever as probabilidades para a classe 1. Portanto, poderá calcular a Perda de Registo:
a partir do registo de importação matemática

# calcular a entropia cruzada binária
def binary_cross_entropy(real, previsto):
sum_score = 0.0
para i no intervalo(len(real)):
sum_score += real[i] * log(1e-15 + previsto[i])
média_sum_score = 1.0 / len(real) * som_score
retorno -mean_sum_score
Para evitar o erro, temos de acrescentar um pequeno valor nas probabilidades previstas. Isto significa que a melhor perda possível será o valor mais próximo de zero, mas não deve ser exactamente zero. É possível calcular a centralidade cruzada para a classificação de múltiplas classes. Com base em cada classe, as previsões devem incluir as possibilidades previstas e conter características binárias. Então, a centralidade cruzada será a soma da média e das características binárias de todos os exemplos no conjunto de dados.
A seguinte função Python irá ajudá-lo a calcular a centralidade cruzada da lista de valores codificados. Ajudará a comparar as possibilidades previstas e os valores codificados para cada classe:
a partir do registo de importação matemática

# calcular a entropia cruzada categórica
def categorical_cross_entropy(real, previsto):
sum_score = 0.0
para i no intervalo(len(real)):
para j no intervalo(len(actual[i]))):
sum_score += actual[i][j] * log(1e-15 + previsto[i][j])
média_sum_score = 1.0 / len(real) * som_score
retorno -mean_sum_score
Deve utilizar a função log_loss() para implementar a centralidade cruzada de forma eficiente.

Conclusão

Deve interpretar cuidadosamente as competências do modelo utilizando o conjunto de dados de log-losses devido ao baixo valor de log-losses e desequilíbrio. Ao criar um modelo estatístico, deve atingir a pontuação de log-losses de base, dependendo do conjunto de dados dado. Se não atingir a pontuação logarítmica, o modelo estatístico treinado é impreciso e não ajuda. Nesse caso, deve utilizar um modelo melhor para encontrar a perda de registo de uma probabilidade.

línguas

Weekly newsletter

No spam. Just the latest releases and tips, interesting articles, and exclusive interviews in your inbox every week.