O que significa métrica de qualidade no aprendizado de máquina. Treinamento de classificação

No processo de preparação da tarefa para o teste de entrada para a escola de verão GoTo, descobrimos que em russo praticamente não há descrição qualitativa das principais métricas de classificação (a tarefa dizia respeito a um caso especial do problema de classificação - construindo um algoritmo de recomendação) . Nós da E-Contenta usamos ativamente várias métricas de classificação, por isso decidimos corrigir esse mal-entendido escrevendo este artigo.

A tarefa de classificar agora surge em todos os lugares: classificar páginas da web de acordo com uma determinada consulta de pesquisa, personalizar o feed de notícias, recomendar vídeos, mercadorias, músicas ... Em uma palavra, o assunto é quente. Existe até uma área especial em aprendizado de máquina que trata do estudo de algoritmos de classificação capazes de autoaprendizagem - aprender a classificar. Para escolher o melhor de toda a variedade de algoritmos e abordagens, é necessário ser capaz de quantificar sua qualidade. As métricas de qualidade de classificação mais comuns serão discutidas abaixo.

Brevemente sobre o problema de classificação

Ranking - a tarefa de ordenar um conjunto elementos pare eles relevância. Na maioria das vezes, a relevância é entendida em relação a alguém. objeto. Por exemplo, na tarefa de recuperação de informações, o objeto é uma consulta, os elementos são todos os tipos de documentos (links para eles), e a relevância é a correspondência do documento com a solicitação, na tarefa de recomendações, o objeto é o usuário, os elementos são um ou outro conteúdo recomendado (produtos, vídeos, música), e a relevância é a probabilidade de o usuário usar (comprar/curtir/visualizar) o conteúdo fornecido.

Formalmente, considere N objetos e M elementos. A saída do algoritmo de classificação de elementos para um objeto é um mapeamento que atribui a cada elemento um peso que caracteriza o grau de relevância do elemento para o objeto (quanto maior o peso, mais relevante o objeto). Ao mesmo tempo, o conjunto de pesos especifica uma permutação no conjunto de elementos de elementos (assumimos que o conjunto de elementos é ordenado) com base em sua classificação em ordem decrescente de peso .

Para avaliar a qualidade do ranking, é necessário ter alguma "referência" com a qual os resultados do algoritmo possam ser comparados. Considere - a função de referência de relevância, caracterizando a relevância "real" dos elementos para um determinado objeto ( - o elemento é idealmente adequado, - completamente irrelevante), bem como a permutação correspondente a ele (em ordem decrescente).

Existem duas maneiras principais de obter:
1. Com base em dados históricos. Por exemplo, no caso de recomendações de conteúdo, você pode pegar as visualizações (curtidas, compras) do usuário e atribuir os pesos visualizados dos elementos relevantes a 1 () e todo o resto a 0.
2. Com base na revisão por pares. Por exemplo, em uma tarefa de pesquisa, para cada consulta, você pode envolver uma equipe de avaliadores que avaliam manualmente a relevância dos documentos para a consulta.

Vale a pena notar que quando leva apenas valores extremos: 0 e 1, então a permutação geralmente não é considerada e apenas o conjunto de elementos relevantes é levado em consideração, para o qual .

Objetivo de classificar a métrica de qualidade- determinar como as estimativas de relevância obtidas pelo algoritmo e a permutação correspondente correspondem a verdadeiro valores de relevância. Considere as principais métricas.

Precisão média média

Precisão média média em K ( [e-mail protegido]) é uma das métricas de qualidade de classificação mais usadas. Para entender como funciona, vamos começar com o "básico".

Nota: A métrica "*precision" é usada em problemas binários, onde leva apenas dois valores: 0 e 1.

Precisão em K

Precisão em K ( [e-mail protegido]) - precisão em elementos K - a métrica básica de qualidade de classificação para um objeto. Digamos que nosso algoritmo de classificação produziu pontuações de relevância para cada item. Tendo selecionado os primeiros elementos com o maior entre eles, podemos calcular a proporção dos relevantes. Isso é exatamente o que a precisão em K faz:

Nota: um elemento é entendido como estando na posição -th como resultado da permutação. Então, é o elemento com o maior , é o elemento com o segundo maior, e assim por diante.

Precisão média em K

A precisão em K é uma métrica fácil de entender e implementar, mas tem uma desvantagem importante - não leva em consideração a ordem dos elementos no "topo". Então, se adivinharmos apenas um dos dez elementos, não importa onde ele estava: no primeiro ou no último, em qualquer caso. É óbvio que a primeira opção é muito melhor.

Essa deficiência é compensada pela métrica de classificação precisão média em K ( [e-mail protegido]) , que é igual à soma [e-mail protegido] por índices k de 1 a K apenas para itens relevantes dividido por K:

Portanto, se dos três elementos apenas o que está em último lugar for relevante, se apenas o primeiro foi adivinhado, então , e se todos foram adivinhados, então .

agora e [e-mail protegido] nós nos dentes.

Precisão média média em K

Precisão média média em K ( [e-mail protegido]) é uma das métricas de qualidade de classificação mais usadas. V [e-mail protegido] e [e-mail protegido] a qualidade da classificação é avaliada para um único objeto (usuário, consulta de pesquisa). Na prática, existem muitos objetos: estamos lidando com centenas de milhares de usuários, milhões de consultas de pesquisa e assim por diante. Idéia [e-mail protegido]é calcular [e-mail protegido] para cada objeto e média:

Nota: esta ideia é bastante lógica, assumindo que todos os usuários são igualmente necessários e igualmente importantes. Se esse não for o caso, em vez de uma média simples, você pode usar uma ponderada, multiplicando [e-mail protegido] cada objeto pelo seu peso de “importância” correspondente.

Ganho Acumulado Descontado Normalizado

Ganho cumulativo descontado normalizado (nDCG)é outra métrica de qualidade de classificação comum. Como no caso com [e-mail protegido] Vamos começar com o básico.

Ganho Acumulado em K

Considere novamente um objeto e os elementos com o maior . Ganho cumulativo em K ( [e-mail protegido]) - uma métrica básica de classificação que usa uma ideia simples: quanto mais itens relevantes neste topo, melhor:

Essa métrica tem desvantagens óbvias: não é normalizada e não leva em consideração a posição dos elementos relevantes.

Observe que, ao contrário de [e-mail protegido], [e-mail protegido] também pode ser usado no caso de valores de relevância de referência não binários.

Ganho Acumulado Descontado em K

Ganho cumulativo descontado em K ( [e-mail protegido]) - modificação do ganho acumulado em K, levando em consideração a ordem dos elementos na lista, multiplicando a relevância do elemento pelo peso igual ao logaritmo inverso do número de posição:

Nota: se leva apenas os valores 0 e 1, então , e a fórmula assume uma forma mais simples:

O uso do logaritmo como função de desconto pode ser explicado pelas seguintes considerações intuitivas: em termos de classificação, as posições no início da lista diferem muito mais do que as posições no final dela. Assim, no caso de um buscador, há todo um abismo entre as posições 1 e 11 (apenas em alguns casos em cem o usuário vai além da primeira página dos resultados da busca), e não há muita diferença entre posições 101 e 111 - poucas pessoas as alcançam. Essas considerações subjetivas são lindamente expressas usando o logaritmo:

O ganho cumulativo descontado resolve o problema de levar em conta a posição dos elementos relevantes, mas só agrava o problema com a falta de normalização: se variar dentro de , já leva valores em um segmento que não está totalmente claro. A métrica a seguir foi projetada para resolver esse problema.

Ganho Acumulado Descontado Normalizado em K

Como você pode imaginar pelo título, ganho cumulativo descontado normalizado em K ( [e-mail protegido]) - nada além de uma versão normalizada [e-mail protegido]:

onde é o valor máximo (I - ideal) de . Já que concordamos que leva valores em , então .

Assim, herda de levar em conta a posição dos elementos na lista e, ao mesmo tempo, assume valores na faixa de 0 a 1.

Nota: Semelhante a [e-mail protegido] pode ser calculado, calculado a média de todos os objetos.

Classificação de significância recíproca

Classificação recíproca média (MRR)é outra métrica de qualidade de classificação comumente usada. É dado pela seguinte fórmula:

Onde - classificação recíproca para o -th objeto - um valor muito simples em sua essência, igual a ordem inversa do primeiro elemento adivinhado corretamente.

A classificação recíproca média varia em alcance e leva em consideração a posição dos elementos. Infelizmente, ele faz isso apenas para um elemento - o primeiro previsto corretamente, ignorando todos os subsequentes.

Métricas com base na correlação de classificação

Separadamente, vale destacar as métricas de qualidade do ranking com base em um dos coeficientes correlação de classificação. Nas estatísticas, o coeficiente de correlação de classificação é um coeficiente de correlação que não leva em consideração os valores em si, mas apenas sua classificação (ordem). Considere os dois coeficientes de correlação de posto mais comuns: os coeficientes de Spearman e Kendall.

Coeficiente de correlação de classificação de Kendall

O primeiro deles é o coeficiente de correlação de Kendall, que se baseia na contagem dos
(e inconsistentes) pares de permutações - pares de elementos aos quais as permutações atribuíram a mesma ordem (diferente):

Coeficiente de correlação de posto de Spearman

O segundo - o coeficiente de correlação de posto de Spearman - é essencialmente nada mais do que a correlação de Pearson calculada em valores de posto. Existe uma fórmula bastante conveniente que expressa isso diretamente das fileiras:

onde é o coeficiente de correlação de Pearson.

Métricas baseadas em correlação de ranks têm uma desvantagem que já conhecemos: elas não levam em conta a posição dos elementos (ainda pior do que [e-mail protegido], Porque a correlação é calculada sobre todos os elementos, e não sobre os K elementos com a classificação mais alta). Portanto, eles raramente são usados ​​na prática.

Métricas baseadas no modelo de comportamento em cascata

Até este ponto, não nos aprofundamos em como o usuário (mais tarde consideraremos um caso especial do objeto - o usuário) examina os elementos oferecidos a ele. Na verdade, implicitamente assumimos a suposição de que a visualização de cada elemento independente de pontos de vista de outros elementos - uma espécie de "ingenuidade". Na prática, os elementos são frequentemente visualizados pelo usuário por sua vez, e se o usuário visualiza o próximo elemento depende de sua satisfação com os anteriores. Considere um exemplo: em resposta a uma consulta de pesquisa, o algoritmo de classificação ofereceu ao usuário vários documentos. Se os documentos nas posições 1 e 2 forem extremamente relevantes, a probabilidade de o usuário visualizar o documento na posição 3 é baixa, porque ele ficará bastante satisfeito com os dois primeiros.

Modelos semelhantes de comportamento do usuário, onde o estudo dos elementos oferecidos a ele ocorre sequencialmente e a probabilidade de visualização do elemento depende da relevância dos anteriores são chamados cascata.

Classificação recíproca esperada

Classificação recíproca esperada (ERR)é um exemplo de métrica de qualidade de classificação com base em um modelo em cascata. É dado pela seguinte fórmula:

onde a classificação é entendida em ordem decrescente. A coisa mais interessante sobre essa métrica são as probabilidades. Ao calculá-los, as premissas do modelo em cascata são usadas:

onde é a probabilidade de o usuário ficar satisfeito com o objeto com classificação . Essas probabilidades são calculadas com base nos valores de . Como no nosso caso, podemos considerar uma opção simples:

que pode ser lido como: a verdadeira relevância do item em posição Finalmente, aqui estão alguns links úteis.

Nos elementos dentro de cada lista. A ordem parcial geralmente é dada especificando uma pontuação para cada item (por exemplo, "relevante" ou "não relevante"; mais de duas gradações são possíveis). O objetivo de um modelo de classificação é melhor (em certo sentido) aproximar e generalizar a maneira como as classificações no conjunto de treinamento se ajustam aos novos dados.

O aprendizado de classificação ainda é um campo de pesquisa bastante jovem e em rápido desenvolvimento, que surgiu nos anos 2000 com o surgimento do interesse no campo de recuperação de informações na aplicação de métodos de aprendizado de máquina para problemas de classificação.

YouTube enciclopédico

  • 1 / 5

    Durante o treinamento do modelo de classificação e durante sua operação, cada par documento-requisição é traduzido em um vetor numérico de características de classificação (também chamadas de fatores ou sinais de classificação) que caracterizam as propriedades do documento, da consulta e seu relacionamento. Esses sinais podem ser divididos em três grupos:

    A seguir estão alguns exemplos de recursos de classificação usados ​​no conhecido conjunto de dados LETOR no campo:

    • Valores das medidas TF, TF-IDF, BM25, e o modelo de idioma de correspondência da solicitação de várias zonas do documento (título, URL, corpo do texto, texto do link);
    • Comprimentos e somas IDF de zonas de documentos;
    • Classificações de documentos obtidas por várias variações de algoritmos de classificação de links, como PageRank e HITS.

    Classificar métricas de qualidade

    Existem várias métricas que avaliam e comparam o desempenho de algoritmos de classificação em uma amostra com revisões por pares. Muitas vezes os parâmetros do modelo de classificação tendem a ser ajustados de forma a maximizar o valor de uma dessas métricas.

    Exemplos de métricas:

    Classificação de algoritmos

    Em seu artigo "Learning to Rank for Information Retrieval" e discursos em conferências temáticas, Tai-Yan Liu da Microsoft Research Asia analisou os métodos atualmente disponíveis para resolver o problema de aprender a classificar e propôs sua classificação em três abordagens, dependendo da entrada representação usada dados e função bem:

    Abordagem pontual

    Notas

    1. Tie Yan Liu (2009) Aprendendo para Classificar para Informações Recuperação, Fundamentos e Tendências em Recuperação de Informação: Vol. 3: Nº 3, pág. 225-331, ISBN 978-1-60198-244-5, DOI 10.1561/1500000016. Slides do discurso de T. Lew na conferência WWW 2009 estão disponíveis.

    Oi Habr!

    Nas tarefas de aprendizado de máquina, as métricas são usadas para avaliar a qualidade dos modelos e comparar vários algoritmos, e sua seleção e análise é parte indispensável do trabalho de um cientista de dados.

    Neste artigo, veremos alguns critérios de qualidade em problemas de classificação, discutiremos o que é importante na hora de escolher uma métrica e o que pode dar errado.

    Métricas em problemas de classificação

    Para demonstrar recursos úteis aprender e uma representação visual das métricas, usaremos o conjunto de dados de rotatividade de clientes da nossa operadora de telecomunicações, que conhecemos no primeiro artigo do curso.

    Baixe as bibliotecas necessárias e veja os dados

    Importar pandas como pd import matplotlib.pyplot como plt de matplotlib.pylab import rc, plot import seaborn como sns de sklearn.preprocessing import LabelEncoder, OneHotEncoder de sklearn.model_selection import cross_val_score de sklearn.linear_model import LogisticRegression de sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier de sklearn.metrics importe precision_recall_curve, classificação_report de sklearn.model_selection import train_test_split df = pd.read_csv("../../data/telecom_churn.csv")

    Cabeçalho(5)

    Pré-processamento de dados

    # Mapeie as colunas binárias # e codifique o estado (para simplificar, é melhor não fazer isso para modelos de madeira) d = ("Sim" : 1, "Não" : 0) df["Plano internacional"] = df ["Plano internacional"].map(d) df["Plano de correio de voz"] = df["Plano de correio de voz"].map(d) df["Churn"] = df["Churn"].astype(" int64" ) le = LabelEncoder() df["State"] = le.fit_transform(df["State"]) ohe = OneHotEncoder(sparse=False) encoded_state = ohe.fit_transform(df["State"].values.reshape (- 1, 1)) tmp = pd.DataFrame(encoded_state, columns=["state " + str(i) for i in range(encoded_state.shape)]) df = pd.concat(, axis=1)

    Exatidão, precisão e recall

    Antes de passar para as métricas em si, um conceito importante precisa ser introduzido para descrever essas métricas em termos de erros de classificação - matriz de confusão(matriz de erro).
    Suponha que temos duas classes e um algoritmo que prevê se cada objeto pertence a uma das classes, então a matriz de erro de classificação ficará assim:

    Verdadeiro Positivo (TP) Falso Positivo (FP)
    Falso Negativo (FN) Verdadeiro Negativo (TN)

    é a resposta do algoritmo no objeto, e

    O rótulo de classe verdadeiro neste objeto.
    Assim, existem dois tipos de erros de classificação: Falso Negativo (FN) e Falso Positivo (FP).

    Treinamento de algoritmos e construção de matrizes de erros

    X = df.drop("Churn", axis=1) y = df["Churn"] # Divida a amostra em treinar e testar, todas as métricas serão avaliadas no conjunto de dados de teste X_train, X_test, y_train, y_test = train_test_split( X, y , stratify=y, test_size=0.33, random_state=42) # Treine a regressão logística nativa lr = LogisticRegression(random_state=42) lr.fit(X_train, y_train) # Use a função para construir a matriz de erros do sklearn documentação def plot_confusion_matrix(cm, classes , normalize=False, title="(!LANG:Confusion matrix", cmap=plt.cm.Blues): """ This function prints and plots the confusion matrix. Normalization can be applied by setting `normalize=True`. """ plt.imshow(cm, interpolation="nearest", cmap=cmap) plt.title(title) plt.colorbar() tick_marks = np.arange(len(classes)) plt.xticks(tick_marks, classes, rotation=45) plt.yticks(tick_marks, classes) if normalize: cm = cm.astype("float") / cm.sum(axis=1)[:, np.newaxis] print("Normalized confusion matrix") else: print("Confusion matrix, without normalization") print(cm) thresh = cm.max() / 2. for i, j in itertools.product(range(cm.shape), range(cm.shape)): plt.text(j, i, cm, horizontalalignment="center", color="white" if cm > thresh else "black") plt.tight_layout() plt.ylabel("True label") plt.xlabel("Predicted label") font = {"size" : 15} plt.rc("font", **font) cnf_matrix = confusion_matrix(y_test, lr.predict(X_test)) plt.figure(figsize=(10, 8)) plot_confusion_matrix(cnf_matrix, classes=["Non-churned", "Churned"], title="Matriz de confusão") plt.savefig("conf_matrix.png") plt.show()!}

    Precisão

    Uma métrica intuitiva, óbvia e quase não utilizada é a precisão - a porcentagem de respostas corretas do algoritmo:

    Essa métrica é inútil em problemas com classes desiguais e é fácil de mostrar com um exemplo.

    Digamos que queremos avaliar o desempenho de um filtro de spam de e-mail. Temos 100 emails não spam, 90 dos quais nosso classificador determinou corretamente (True Negative = 90, False Positive = 10) e 10 emails spam, 5 dos quais também foram determinados corretamente pelo classificador (True Positive = 5, False Negative = 5).
    Então precisão:

    No entanto, se apenas prevermos todos os e-mails como não-spam, obteremos uma precisão maior:

    Ao mesmo tempo, nosso modelo não tem nenhum poder preditivo, pois inicialmente queríamos identificar e-mails de spam. A transição de uma métrica comum para todas as classes para indicadores individuais de qualidade de classe nos ajudará a superar isso.

    Precisão, recall e F-measure

    Para avaliar a qualidade do algoritmo em cada uma das classes separadamente, introduzimos as métricas de precisão (exatidão) e recall (completude).

    A precisão pode ser interpretada como a proporção de objetos chamados positivos pelo classificador e, ao mesmo tempo, realmente positivos, e o recall mostra qual proporção de objetos de uma classe positiva dentre todos os objetos de uma classe positiva o algoritmo encontrou.

    É a introdução da precisão que não nos permite escrever todos os objetos em uma classe, pois neste caso obtemos um aumento no nível de Falso Positivo. Recall demonstra a capacidade do algoritmo de detectar uma determinada classe, enquanto a precisão demonstra a capacidade de distinguir essa classe de outras classes.

    Como observamos anteriormente, existem dois tipos de erros de classificação: Falso Positivo e Falso Negativo. Em estatística, o primeiro tipo de erro é chamado de erro tipo I e o segundo tipo é chamado de erro tipo II. Em nossa tarefa de determinar a saída de assinantes, o erro do primeiro tipo será o erro de um assinante fiel por um de saída, pois nossa hipótese nula é que nenhum dos assinantes está saindo, e rejeitamos essa hipótese. Nesse sentido, um erro de segunda espécie será o “passe” do assinante de saída e a aceitação errônea da hipótese nula.

    A precisão e o recall não dependem, ao contrário da exatidão, da razão de classes e, portanto, são aplicáveis ​​em condições de amostras não balanceadas.
    Muitas vezes, na prática real, a tarefa é encontrar o equilíbrio ideal (para o cliente) entre essas duas métricas. Um exemplo clássico é o problema de determinar a saída de clientes.
    É claro que não podemos encontrar tudo clientes em movimento e seus. Mas, tendo determinado a estratégia e o recurso para retenção de clientes, podemos selecionar os limites necessários para precisão e recall. Por exemplo, podemos nos concentrar em reter apenas clientes de alta margem ou aqueles com maior probabilidade de churn, pois somos limitados pelos recursos do call center.

    Normalmente, ao otimizar os hiperparâmetros de um algoritmo (por exemplo, no caso de iteração sobre uma grade GridSearchCV) usa uma métrica, cuja melhoria esperamos ver na amostra de teste.
    Existem várias maneiras diferentes de combinar precisão e recall em uma medida de qualidade agregada. F-medida (geralmente

    ) - precisão harmônica média e recall:

    neste caso determina o peso da precisão na métrica e, quando

    esta é a média harmônica (com um fator de 2, de modo que no caso de precisão = 1 e recall = 1 temos

    )
    A medida F atinge seu máximo em recall e precisão igual a um e está próximo de zero se um dos argumentos estiver próximo de zero.
    sklearn tem uma função útil _metrics.classification relatório que retorna o recall, precisão e F-measure para cada uma das classes, bem como o número de instâncias de cada classe.

    Relatório = rating_report(y_test, lr.predict(X_test), target_names=["Non-churned", "Churned"]) print(report)

    classe precisão lembrar pontuação f1 Apoio, suporte
    Não agitado 0.88 0.97 0.93 941
    Agitado 0.60 0.25 0.35 159
    média/total 0.84 0.87 0.84 1100

    Deve-se notar aqui que no caso de tarefas com classes desequilibradas que prevalecem na prática real, muitas vezes é necessário recorrer a técnicas de modificação artificial do conjunto de dados para equalizar a proporção de classes. Existem muitos deles e não vamos tocá-los, você pode ver alguns métodos e escolher aquele que se adapta à sua tarefa.

    AUC-ROC e AUC-PR

    Ao converter a resposta real do algoritmo (geralmente a probabilidade de pertencer a uma classe, veja SVM separadamente) em um rótulo binário, devemos escolher algum limite no qual 0 se torne 1. Um limite de 0,5 parece natural e próximo, mas é nem sempre acaba sendo o ideal, por exemplo, na já mencionada falta de equilíbrio de classes.

    Uma forma de avaliar o modelo como um todo, sem estar vinculado a um limite específico, é AUC-ROC (ou ROC AUC) - área ( UMA real você nder C urve) sob a curva de erro ( R receptor O operando C curva característica). Esta curva é uma linha de (0,0) a (1,1) nas coordenadas True Positive Rate (TPR) e False Positive Rate (FPR):

    Já conhecemos o TPR, isso é completude, e o FPR mostra qual proporção de objetos da classe negativa o algoritmo previu incorretamente. No caso ideal, quando o classificador não cometer erros (FPR = 0, TPR = 1), obteremos a área sob a curva igual a um, caso contrário, quando o classificador produzir probabilidades de classe aleatoriamente, o AUC-ROC tenderá a 0,5, pois o classificador emitirá a mesma quantidade de TP e FP.
    Cada ponto no gráfico corresponde à escolha de algum limiar. A área sob a curva neste caso mostra a qualidade do algoritmo (mais é melhor), além disso, a inclinação da curva em si é importante - queremos maximizar o TPR enquanto minimizamos o FPR, o que significa que nossa curva deve tender a o ponto (0,1).

    Código de desenho da curva ROC

    sns.set(font_scale=1.5) sns.set_color_codes("silenciado") plt.figure(figsize=(10, 8)) fpr, tpr, thresholds = roc_curve(y_test, lr.predict_proba(X_test)[:,1], pos_label=1) lw = 2 plt.plot(fpr, tpr, lw=lw, label="curva ROC ") plt.plot(, ) plt.xlim() plt.ylim() plt.xlabel("Taxa de falso positivo ") plt.ylabel("True Positive Rate") plt.title("ROC curve") plt.savefig("ROC.png") plt.show()

    O critério AUC-ROC é resistente a classes desbalanceadas (spoiler: infelizmente, nem tudo é tão simples) e pode ser interpretado como a probabilidade de que um objeto positivo selecionado aleatoriamente seja classificado mais alto pelo classificador (terá maior probabilidade de ser positivo) do que um objeto negativo selecionado aleatoriamente.

    Considere o seguinte problema: precisamos selecionar 100 documentos relevantes de 1 milhão de documentos. Aprendemos dois algoritmos de máquina:

    • Algoritmo 1 retorna 100 documentos, 90 dos quais são relevantes. Desta maneira,
    • Algoritmo 2 retorna 2.000 documentos, 90 dos quais são relevantes. Desta maneira,

    Muito provavelmente, escolheríamos o primeiro algoritmo, que produz muito poucos falsos positivos em comparação com seu concorrente. Mas a diferença na taxa de falsos positivos entre esses dois algoritmos extremamente pequeno - apenas 0,0019. Isso é uma consequência do fato de que o AUC-ROC mede a proporção de Falso Positivo em relação ao Verdadeiro Negativo, e em tarefas onde a segunda classe (maior) não é tão importante para nós, pode não fornecer uma imagem totalmente adequada ao comparar algoritmos .

    Para corrigir a situação, voltemos à completude e precisão:

    • Algoritmo 1
    • Algoritmo 2

    Já existe uma diferença significativa entre os dois algoritmos - 0,855 em precisão!

    Precisão e recall também são usados ​​para traçar a curva e, semelhante ao AUC-ROC, encontrar a área abaixo dela.

    Pode-se notar aqui que em pequenos conjuntos de dados, a área sob a curva PR pode ser excessivamente otimista, porque é calculada usando o método trapezoidal, mas geralmente há dados suficientes em tais tarefas. Para detalhes sobre a relação entre AUC-ROC e AUC-PR, veja aqui.

    Perda Logística

    Destacando-se está a função de perda logística, definida como:

    é a resposta do algoritmo para

    ohm objeto,

    rótulo de classe verdadeiro em

    objeto ohm, e

    tamanho da amostra.

    Detalhes sobre a interpretação matemática da função de perda logística já foram escritos no post sobre modelos lineares.
    Essa métrica geralmente não aparece em requisitos de negócios, mas geralmente em tarefas do kaggle.
    Intuitivamente, pode-se pensar em minimizar o logloss como um problema de maximizar a precisão penalizando as previsões erradas. No entanto, deve-se notar que o logloss penaliza severamente a confiança do classificador na resposta errada.

    Considere um exemplo:

    Def logloss_crutch(y_true, y_pred, eps=1e-15): return - (y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred)) print("Logloss com classificação incerta %f " % logloss_crutch(1, 0.5)) >> Logloss com classificação incerta 0.693147 print("Logloss com classificação confiável e resposta correta %f" % logloss_crutch(1, 0.9)) >> Logloss com classificação confiável e resposta correta 0.105361 print(" Logloss para classificação certa e resposta errada %f" % logloss_crutch(1, 0.1)) >> Logloss para classificação certa e resposta errada 2.302585

    Observe como o logloss aumentou drasticamente com a resposta errada e a classificação confiável!
    Portanto, o erro em um objeto pode causar uma deterioração significativa no erro geral da amostra. Esses objetos geralmente são discrepantes que devem ser lembrados para filtrar ou considerar separadamente.
    Tudo se encaixa se você desenhar um gráfico logloss:

    Pode-se observar que quanto mais próximo de zero a resposta do algoritmo para a verdade do terreno = 1, maior o valor do erro e mais inclinada a curva cresce.

    Resumindo:

    • No caso de classificação multiclasse, é preciso monitorar cuidadosamente as métricas de cada uma das classes e seguir a lógica da decisão tarefas, em vez de otimizar a métrica
    • No caso de turmas desiguais, é necessário selecionar um equilíbrio de turmas para treinamento e uma métrica que reflita corretamente a qualidade da classificação
    • A escolha da métrica deve ser feita com foco na área temática, pré-processando os dados e, eventualmente, segmentando (como no caso de dividir em clientes ricos e pobres)

    Links Úteis

    1. Curso de Evgeny Sokolov: Seminário sobre a escolha de modelos (há informações sobre as métricas de problemas de regressão)
    2. Problemas para AUC-ROC por A.G. Dyakonova
    3. Você pode ler mais sobre outras métricas no kaggle. Um link para a competição onde foi usado foi adicionado à descrição de cada métrica
    4. Apresentação de Bogdan Melnyk aka ld86 sobre aprendizado em amostras desbalanceadas

    UDC 519.816

    S. V. SEMENIKHIN L. A. DENISOVA

    Universidade Técnica Estadual de Omsk

    MÉTODO DE APRENDIZAGEM DA MÁQUINA PARA CLASSIFICAÇÃO

    BASEADO EM UM ALGORITMO GENÉTICO MODIFICADO PARA A MÉTRICA URCO

    O problema de classificação de documentos na página de resultados de pesquisa de informações e questões de classificação de aprendizado de máquina são considerados. Uma abordagem é proposta para otimizar a função de classificação usando a métrica de qualidade LOCO baseada em um algoritmo genético modificado. Os algoritmos desenvolvidos foram estudados (em coleções de teste de LETO^) e sua eficácia para aprendizado de máquina no ranking foi demonstrada.

    Palavras-chave: recuperação de informação, classificação de aprendizado de máquina, relevância, otimização, algoritmos genéticos.

    1. Introdução. Nos modernos sistemas de recuperação de informações (IRS), o volume de dados em que o sistema opera é tão grande que a principal tarefa é classificar documentos relevantes em resposta à consulta de pesquisa de um usuário. Nesta fase do desenvolvimento do IPS, o aprendizado de máquina (ML) para classificação é de maior interesse. As abordagens existentes de ML baseadas em métodos numéricos (em particular, em métodos de gradiente) ou em cálculos analíticos apresentam várias deficiências que afetam significativamente a qualidade da recuperação da informação e o tempo necessário para classificar documentos relevantes.

    No início da pesquisa, foram consideradas abordagens de lista para classificação de aprendizado de máquina, a maioria das quais usa o método gradiente descendente. Nos trabalhos considerados, ML é reduzido à otimização de métricas de qualidade de busca (QM), mas apenas métricas representadas por funções contínuas são usadas. Essa limitação geralmente leva ao fato de que, como resultado da otimização, a função de classificação tem pontuações mais baixas para muitos indicadores aceitos importantes (DCG, nDCG, Graded Mean Reciprocal Rank, etc.), que são funções discretas. O artigo propõe o uso de algoritmos genéticos (AG) no aprendizado de ranking para minimizar a função de perda de Huber usando estimativas de relevância de especialistas como valores de referência. Uma abordagem para ML baseada na otimização de métricas de qualidade de recuperação de informação discreta também foi proposta.

    2. Apresentação do problema de classificação de aprendizado de máquina. Na maioria dos sistemas modernos de recuperação de informações, a função de classificação é construída com base em n funções de classificação simples (PRF) e pode ser escrita como:

    onde SRF¡ é a ¡ª função de classificação simples para o documento d e a consulta d, WCi é o fator de ponderação da ¡ª função de classificação simples, n é o número de FRPs no sistema de classificação.

    No decorrer do aprendizado de máquina para classificação, foi utilizado um conjunto de documentos de busca B e consultas O da coleção de testes LBTOT. Para todas as requisições deO, um par é formado com cada documento deD. Para cada um desses pares, o IPS determina os valores de relevância que são usados ​​para classificar a SERP. Para avaliar a qualidade do ranking, o sistema precisa de valores de referência de relevância E para cada par de documento-requisição t, e). Para isso, são utilizadas avaliações de relevância de especialistas.

    Para o estudo, foi utilizado um IPS, no qual a classificação é baseada em N = 5 funções de classificação simples SRFi(WC)l r = 1, N, que formam um critério de otimalidade vetorial:

    onde WCå (WC) - vetor de parâmetros variáveis; (SHS), (YB) são os espaços de parâmetros e critérios vetoriais, respectivamente.

    O uso de algoritmos genéticos para classificação de MO possibilita maximizar métricas de qualidade discretas, como nDCG. A métrica nDCG para classificar documentos em um mecanismo de pesquisa é determinada de acordo com a expressão:

    DCG@n=X2---

    RF(q, d)=XWC. ■ SRF., i=1 1 1

    onde grade(p) é a pontuação média de relevância atribuída pelos especialistas ao documento na posição p na lista de resultados, gradee ; 1/log2(2 + p) - coeficiente dependendo das posições do documento (os primeiros documentos têm mais peso).

    Em seguida, a versão normalizada do NDCG será escrita na forma

    N000 @ n = RSD @ n / r,

    onde r é o fator de normalização, que é igual ao valor máximo possível de 0C [e-mail protegido] n para a consulta fornecida (ou seja, é igual ao OOO da classificação ideal).

    Assim, para otimizar (maximizar) as métricas do SFR, a função objetivo (JM) será escrita da seguinte forma

    3. Métricas de qualidade de classificação dos resultados de pesquisa. Ao classificar documentos nos resultados da pesquisa, as métricas de qualidade atuam como critérios. Da lista de métricas geralmente aceitas para avaliar a qualidade dos sistemas de recuperação da informação, foram selecionadas três principais que avaliam a precisão, relevância e completude da recuperação da informação.

    1. Critério de precisão para recuperação de informações

    onde a é o número de documentos relevantes encontrados, b é o número de documentos identificados erroneamente como relevantes.

    2. O critério Bpref, que avalia a relevância da recuperação da informação, é utilizado para processar uma tarefa com R documentos relevantes e é calculado pela fórmula

    Bpref = - ^ (1 - Não Re ¡Antes(r)/R). (4)

    Aqui, r denota um documento relevante conhecido e NonRelBefore(r) é o número de documentos irrelevantes conhecidos classificados acima de r (somente os primeiros documentos irrelevantes avaliados por R da execução são considerados no cálculo).

    3. O critério para a integridade dos resultados da pesquisa

    r = a/(a + c),

    onde a é o número de documentos relevantes encontrados, c é o número de documentos relevantes não encontrados.

    4. Coleções de teste. Em uma tarefa de aprendizado de máquina, a classificação requer um conjunto de documentos e consultas com pontuações de relevância correspondentes determinadas por especialistas. Esses dados são usados ​​para aprendizado de máquina da função de classificação, bem como para avaliação de qualidade.

    classificação dos resultados da pesquisa pelo sistema. No processo de ML, as coleções de teste são usadas como conjunto de treinamento e, portanto, têm um impacto significativo nos resultados. Uma coleção de teste de documentos LETOR e consultas foi usada para pesquisa. Esta coleção é usada na pesquisa de recuperação de informações pela Microsoft Research. Na tabela. 1 mostra as características das coleções de teste LETOR.

    5. Algoritmo genético modificado. Para usar algoritmos genéticos em aprendizado de máquina para classificação, o problema deve ser formulado de tal forma que a solução seja codificada como um vetor (genótipo), onde cada gene pode ser um bit, um número ou outro objeto. Neste caso, o genótipo é representado por um vetor de pesos para os respectivos fatores de classificação. A condição para parar a execução do algoritmo genético é encontrar a solução ótima, esgotando o número de gerações ou o tempo alocado para a evolução.

    Deve-se notar que os AGs são mais eficientes em encontrar a área do extremo global, porém, podem ser lentos quando é necessário encontrar um mínimo local nesta área. A maneira proposta de evitar essa deficiência é criar um algoritmo genético modificado (MGA) que mudará para um algoritmo de otimização local (rápido) após encontrar a área ótima global usando o AG base. O MGA proposto no artigo é um método híbrido baseado no AG clássico e no método de Nelder-Mead (algoritmo simplex). O método Nelder-Mead, um algoritmo de otimização não linear comumente usado, é um método numérico para encontrar o mínimo de uma função objetivo em um espaço multidimensional. O algoritmo híbrido MGA proposto neste artigo muda para o método Nelder-Mead após as condições para parar o AG serem atendidas. O diagrama de blocos do algoritmo MGA é mostrado na fig. 1.

    Ao realizar a pesquisa, foi adotado um limite no número de cálculos da função objetivo (Nrf = 16.000) na busca por uma área global extrema e uma condição para mudar para um algoritmo de otimização local baseado no método Nelder-Mead (após o algoritmo genético básico executa 75% das operações Nrf).

    6. Resultados. Como resultado da pesquisa realizada usando o algoritmo de aprendizado de máquina

    tabela 1

    Número de documentos e consultas em coleções de teste

    Nome da coleção de teste Nome do subsistema Número de consultas Número de documentos

    LETOR 4.0 MQ2007 1692 69623

    LETOR 4.0 MQ2008 784 15211

    LETOR 3.0 OHSUMED 106 16140

    LETOR 3.0 Gov03td 50 49058

    LETOR 3.0 Gov03np 150 148657

    LETOR 3.0 Gov03hp 150 147606

    LETOR 3.0 Gov04td 75 74146

    LETOR 3.0 Gov04np 75 73834

    LETOR 3.0 Gov04hp 75 74409

    Arroz. 1. Diagrama de blocos do algoritmo MVL híbrido baseado em algoritmos genéticos e no método Nelder-Mead

    A classificação LTR-MGA recebeu um vetor de coeficientes de peso WC* para a função de classificação. Além disso, com base nos dados da coleção de testes LETOY, a qualidade do ranking foi avaliada, para a qual foram calculadas as métricas de qualidade. Métrica de qualidade de classificação discreta [e-mail protegido] avalia a qualidade dos primeiros n documentos de resposta do sistema. As métricas geralmente aceitas para avaliar a qualidade de um ranking são [e-mail protegido], [e-mail protegido] e [e-mail protegido] No entanto, para uma consideração mais detalhada das mudanças na métrica em função dos valores foram considerados [e-mail protegido] para todos os n de 1 a 10. Para comparar a eficácia do algoritmo desenvolvido com as soluções existentes, foi realizada uma análise comparativa usando os algoritmos de classificação fornecidos nas coleções LETOM 3.0. Os resultados da execução dos algoritmos para as coleções de teste TB2003 e TB2004 para a métrica NDCG são mostrados na fig. 2. Os resultados mostram que o algoritmo LTR-MGA supera os algoritmos de teste, com os valores mais altos tendo

    são para [e-mail protegido](ao nível do primeiro documento). A superioridade do algoritmo LTR-MGA deve-se ao fato de que, ao contrário das funções de ordenação de teste consideradas nos experimentos, na abordagem proposta para otimizar a função de ordenação, é a métrica NDCG que é utilizada como função objetivo.

    Para avaliar a qualidade da classificação ao utilizar o algoritmo LTR-MGA proposto, foram calculados os valores das métricas de qualidade para classificação de documentos nos resultados da pesquisa (Fig. 3). A comparação dos resultados de classificação (Tabela 2) usando a função de classificação básica, o algoritmo LTR-GA básico e o algoritmo LTR-MGA modificado indica a vantagem deste último.

    Além disso, o estudo realizou uma estimativa do tempo necessário para a classificação do MO. Isso é necessário para confirmar que o método LTR-MGA proposto é superior neste indicador à abordagem baseada no uso de métodos tradicionais.

    Arroz. 2. Comparação de algoritmos de aprendizado de máquina para classificação

    por métrica NDCG para coletas de teste: à esquerda - conjunto de dados Gov03td, à direita - conjunto de dados Gov04td

    Arroz. 3. Avaliação de métricas de qualidade de classificação para a fórmula básica de classificação e algoritmos de aprendizado LTR-GA e LTR-MGA

    Métricas de qualidade de classificação para diferentes algoritmos de aprendizado de máquina de classificação

    mesa 2

    Métrica de qualidade de variação Função de classificação básica LTR-GA LTR-MGA Aumento da métrica, %

    Precisão 0,201 0,251 0,267 26,81

    [e-mail protegido](primeiros 5 documentos) 0,149 0,31 0,339 90,47

    [e-mail protegido](primeiros 10 documentos) 0,265 0,342 0,362 29,14

    Bpref 0,303 0,316 0,446 51,49

    Completude 0,524 0,542 0,732 39,03

    * Os melhores valores para a métrica correspondente são destacados em cinza

    algoritmo genético (NTL-OL). Os resultados da comparação do tempo gasto na execução dos algoritmos LTN-OL e LTN-MOL são apresentados na Tabela. 3.

    7. Conclusão. Assim, os estudos realizados mostraram que ao utilizar a abordagem proposta, os valores das métricas de classificação consideradas no IRS aumentam (em média 19,55% em relação ao algoritmo LTR-OL). Isso confirma que o LTR-MOL funciona corretamente e melhora significativamente a função de classificação, ou seja, resolve com sucesso o problema de otimização. Com um algoritmo modificado

    devido à aplicação do método de otimização local e às restrições introduzidas no número de cálculo da função objetivo, o tempo de aprendizado de máquina diminuiu (em média 17,71% em relação ao uso do algoritmo genético tradicional LTNOL).

    O algoritmo de aprendizado de máquina desenvolvido para classificar LTN-MOL pode ser usado em ISs usando um modelo de classificação baseado em uma combinação de funções de classificação simples. No entanto, algumas limitações da abordagem proposta devem ser levadas em consideração. Com base

    Estimando o tempo de execução do ranking de aprendizado de máquina dependendo do tamanho da amostra de treinamento

    Tabela 3

    Tamanho da coleção de texto do documento

    Tempo de execução LTR-GA

    Tempo de execução LTR-MGA

    Diminuição do tempo de execução, %

    Significar

    *Os melhores valores para o respectivo tamanho de coleta de teste estão destacados em cinza.

    resultados obtidos, foi revelado que após o MO o maior aumento é na métrica de qualidade do ranking, cujo valor foi tomado como função objetivo. Ao mesmo tempo, outras métricas podem não ter uma melhora significativa, e em alguns casos até piorar seus valores. Como uma das abordagens possíveis para eliminar essa deficiência, supõe-se resolver o problema de otimização como multi-objetivo: melhorar uniformemente várias métricas principais de classificação dos resultados de pesquisa, em vez de otimizar uma. Além disso, em pesquisas futuras, está previsto o desenvolvimento de uma metodologia para construção de uma função objetivo baseada em uma convolução linear das principais métricas de qualidade do ranking para melhorar o processo de recuperação de informações.

    Lista bibliográfica

    1. Tie-Yan Liu. Aprendendo a classificar para recuperação de informações // Fundamentos de periódicos e tendências em recuperação de informações. Vol. 3, número 3. Março 2009. P. 225-331.

    2. Christopher J. C. Burges, Tal Shaked, Erin Renshaw. Learning to Rank using Gradient Descent // Proceeding ICML "05 Proceedings of the 22nd international conference on machine learning. 2005. P. 89-96.

    3. Semenikhin, S. V. Pesquisa de abordagens de aprendizado de máquina para classificação de documentos por um sistema de busca baseado em algoritmos genéticos / S. V. Semenikhin // Jovem Rússia: tecnologias avançadas para a indústria. - 2013. - Nº 2. - S. 82 - 85.

    4. Otimização multicritério baseada em algoritmos genéticos na síntese de sistemas de controle: monografia. / L. A. Denisova. - Omsk: Editora da OmGTU, 2014. - 170 p. - ISBN 978-5-8149-1822-2.

    5. Denisova, L. A. Automação da síntese paramétrica de um sistema de controle usando um algoritmo genético / L. A. Denisova, V. A. Meshcheryakov // Automação na indústria. - 2012. - Nº 7. - S. 34 - 38.

    6. Huber, Peter J. Estimativa robusta de um parâmetro de localização // Annals of Statistics. - 1964. - Nº 53. - P. 73-101.

    7. Semenikhin, S. V. Automação da recuperação da informação baseada em otimização multicritério e algoritmos genéticos / S. V. Semenikhin, L. A. Denisova // Dinâmica de sistemas, mecanismos e máquinas. - 2014. - Nº 3. - S. 224 - 227.

    8. Tie-Yan Liu, Jun Xu, Tao Qin, Wenying Xiong e Hang Li. LETOR: Conjunto de Dados de Referência para Pesquisa em Aprender a Classificar para Recuperação de Informação // Workshop SIGIR 2007 sobre Aprender a Classificar para Recuperação de Informação. - 2007. - S. 3-10.

    9. Ageev, M. S. Métricas oficiais R0MIP "2004 / M. S. Ageev, I. E Kuralenok // II seminário russo sobre a avaliação de métodos de recuperação de informação (ROMIP 2004), Pushchino, 2004: tr. ; ed. I S. Nekrestyanova, St Petersburg: Instituto de Pesquisa de Química, Universidade Estadual de São Petersburgo, pp. 142-150.

    10. J. A. Nelder, R. Mead, A simplex method for function minimization, The Computer Journal 7 (1965). 308-313.

    SEMENIKHIN Svyatoslav Vitalievich, estudante de pós-graduação do departamento "Sistemas automatizados de processamento e controle de informações". Endereço de correspondência: [e-mail protegido] DENISOVA Lyudmila Albertovna, Doutora em Ciências Técnicas, Professora Associada do Departamento de Processamento Automatizado de Informação e Sistemas de Controle. Endereço de correspondência: [e-mail protegido]

    Este capítulo apresenta métodos populares para avaliar a qualidade de um modelo de classificação, que também são usados ​​em outros trabalhos sobre o tema. A descrição e fundamentação das métricas utilizadas para esta avaliação são fornecidas.

    Métricas de avaliação de qualidade

    Precisão total (precisão)

    Essa métrica é uma das métricas mais simples e ao mesmo tempo universais para avaliar a qualidade de algoritmos de classificação. O valor desse coeficiente é calculado como a proporção de objetos classificados corretamente do número total de objetos na amostra. Essa métrica é popular devido à sua simplicidade e à capacidade de se estender a qualquer número de classes. A principal desvantagem dessa métrica é que ela atribui o mesmo peso a todos os documentos, o que pode ser incorreto no caso de um forte viés dos documentos da amostra de treinamento para uma ou mais classes. Essa métrica pode ter um valor alto, mas o classificador dentro da mesma classe pode apresentar uma qualidade de trabalho extremamente baixa. Ao mesmo tempo, a métrica não sinaliza isso de forma alguma.

    Precisão, recall e F-measure

    Métricas como precisão (precisão) e recall (recall) pela primeira vez passaram a ser amplamente utilizadas na avaliação da qualidade dos sistemas que resolvem o problema de recuperação de informações. A precisão do sistema dentro de uma classe é a proporção de objetos que realmente pertencem a uma determinada classe em relação a todos os objetos atribuídos pelo sistema a essa classe. A completude é expressa como a proporção de objetos encontrados pelo classificador pertencentes à classe em relação a todos os objetos desta classe. A Tabela 4 é uma tabela de contingência de uma classe separada, onde TP (verdadeiro positivo) é uma solução verdadeiro positivo, TN (verdadeiro negativo) é uma solução verdadeiro negativo, FP (falso positivo) é uma solução falso positivo e FN (falso negativo) é uma decisão falso-negativa.

    Tabela 1 - Tabela de contingência de classe de objeto

    Portanto, precisão e recall são calculados como:

    A F-measure combina informações sobre a precisão e integridade do algoritmo que está sendo avaliado. É calculado como a média harmônica dos indicadores de precisão e recuperação:

    Devido ao fato de que a medida F é calculada separadamente para cada classe, é conveniente usá-la para buscar e analisar erros de algoritmos específicos, para avaliar uma classificação com várias classes. Ao mesmo tempo, no caso de um grande número de classes, é necessária uma característica que agregue a completude e precisão sobre todas as classes e caracterize o comportamento geral do sistema. Neste artigo, os seguintes valores agregados são usados ​​para este fim: macro precisão (macro precisão), que é calculada como a média aritmética de precisão para todas as classes, macro recall (macro recall), que é calculada como a média aritmética de rechamada para todas as classes, e macro F-medida (Macro F-score), que é a média harmônica entre elas.

    Validação cruzada

    Um dos métodos mais comuns para realizar testes completos e avaliar o desempenho de vários algoritmos de aprendizado de máquina é a validação cruzada. Para uma amostra independente, esse método permite obter uma estimativa imparcial da probabilidade de erro, em contraste com o erro médio na amostra de treinamento, que pode ser uma estimativa tendenciosa da probabilidade de erro devido ao sobreajuste do algoritmo. Outra vantagem deste procedimento é a capacidade de obter uma estimativa da probabilidade de um erro de algoritmo, na ausência de uma amostra de controle especialmente projetada para teste.

    Vamos supor que é um conjunto de descrições de características de objetos, no qual uma amostra finita de precedentes é especificada, onde é um conjunto finito de classes. É fornecido um mapeamento que associa uma amostra arbitrária de precedentes a um algoritmo. Então o desempenho do algoritmo para uma amostra arbitrária de precedentes é estimado usando o funcional de qualidade:

    onde é alguma função não negativa que retorna o valor de erro do algoritmo dado o rótulo de classe correto.