Eu tenho dados de treinamento rotulados com valores binários. Eu também coletei a confiança de cada um desses rótulos, ou seja, 0,8 de confiança significaria que 80% das etiquetadoras humanas concordam com esse rótulo.
É possível usar esses dados de confiança para melhorar a precisão do meu classificador?
O seguinte trabalho?
1a) Se o rótulo for 0 e os dados de confiança para esse rótulo forem 0,8, forneça aos dados de treinamento um novo rótulo de 0,2
1b) Se o rótulo for 1 e os dados de confiança para esse rótulo forem 0,8, forneça aos dados de treinamento um novo rótulo de 0,8
2) Calcule o novo rótulo usando este método para todas as entradas no conjunto de treinamento
3) Trate o problema como um problema de regressão (onde os rótulos variam entre 0 e 1)
4) Classifique os dados não rotulados com base em se os novos rótulos estão acima ou abaixo de um valor específico. ou seja, dê a todos os rótulos previstos classe 0 se abaixo de X e classe 1 se acima de X.
Atualmente, estou usando um SVM com um kernel RBF para o meu modelo.
Desde já, obrigado!
fonte
Respostas:
Sim, é possível usar esses dados de confiança. No entanto, eu não recomendaria a abordagem que você mencionou. Em vez disso, deixe-me sugerir uma abordagem diferente. Na verdade, vou sugerir dois. O primeiro é conceitualmente limpo; o segundo é provavelmente mais fácil de implementar; e provavelmente serão aproximadamente equivalentes na prática.
Ajuste a função de perda
Você pode ajustar a função de perda para refletir as pontuações de confiança que possui nos dados de treinamento.
Em particular, se você estiver usando a perda de entropia cruzada , há uma maneira particularmente limpa de fazer isso. Deixe-me explicar alguns antecedentes da perda de entropia cruzada e depois explicar como. Pensamos no rótulo na instância de treinamento como uma distribuição de probabilidade nos rótulos. Na classificação binária, essa distribuição pode ser representada como um vetor que representa a probabilidade de o rótulo ser 0 e a probabilidade de o rótulo ser 1. Normalmente, recebemos "rótulos físicos": se saiba que o rótulo correto na instância é 0, então isso corresponde à distribuição de probabilidade ; se o rótulo correto for 1, essa é a distribuição(p0 0,p1) p0 0 p1 x ( 1 , 0 ) ( 0 , 1 ) . A perda de entropia cruzada compara a previsão do classificador a essa distribuição.
O bom da perda de entropia cruzada é que ela gera prontamente a comparação de duas distribuições. Portanto, se você tem confiança de que o rótulo correto, por exemplo, é 0, isso corresponde a uma distribuição de probabilidade . Agora, você pode calcular a entropia cruzada da previsão do classificador em relação à distribuição , e essa é a contribuição para a perda da instância de treinamento . Soma isso em todas as instâncias do conjunto de treinamento e você obtém uma função de perda ajustada.0,8 x ( 0,8 , 0,2 ) ( 0,8 , 0,2 ) x
Agora você pode treinar um classificador minimizando essa função de perda ajustada, que incorporará diretamente todas as informações em suas pontuações de confiança.
Use pesos
Como alternativa, você pode usar pesos para refletir as informações de confiança.
Alguns classificadores permitem especificar um peso para cada instância no conjunto de treinamento. A ideia é que uma imprevisibilidade para uma instância específica seja penalizada pela proporcionalidade ao seu peso; portanto, instâncias com um peso alto são mais importantes para acertar e instâncias com um peso baixo são menos importantes. Ou, de forma equivalente, o procedimento de treinamento se esforça mais para evitar erros em instâncias com um alto peso.
Você pode usar pesos para refletir informações de confiança. Suponha que você tenha um instanciado no conjunto de treinamento que acha que deveria ter o rótulo 0, com confiança . Você adicionaria uma cópia de ao conjunto de treinamento com peso (ou seja, a instância é rótulo é 0) e uma cópia de ao conjunto de treinamento com peso (ou seja, instância é e label é 1). Crie o conjunto de treinamento dessa maneira. Isso dobra o tamanho do seu conjunto de treinamento. Agora treine um classificador, usando esses pesos.x 0,8 ( x , 0 ) 0,8 x ( x , 1 ) 0,2 x
Para classificadores que suportam pesos, isso deve ser fácil de implementar.
Pode-se também mostrar que é eficaz e razoável. Por exemplo, ao usar a perda de entropia cruzada para treinar um classificador, essa abordagem usando pesos é equivalente a ajustar a função de perda, conforme destacado acima. Portanto, nesse contexto específico, as duas abordagens são realmente equivalentes.
fonte