Aprendizado de máquina monótono

8

Eu tenho um problema de classificação binária (aprendizado supervisionado), onde todos os meus recursos são booleanos, com o seguinte toque: Eu quero aprender um classificador que é monótono . Em outras palavras, alterar qualquer subconjunto de recursos de 0 para 1 nunca deve alterar a saída do classificador de 1 para 0.f:{0,1}n{0,1}

Como posso aprender um classificador monótono ? Posso adaptar métodos de classificação padrão de alguma forma, para impor a restrição de monotonicidade?

Eu posso ver como adaptar a regressão logística de uma forma que garanta que ele aprenda um modelo monotônico: podemos exigir que o coeficiente de cada recurso seja não negativo e, em seguida, aplique um algoritmo de otimização restrito para inferir os coeficientes do modelo. Existe uma maneira razoável de adaptar outros esquemas de aprendizado supervisionado (por exemplo, florestas aleatórias, aumento de gradiente, redes neurais)? Ou existem algoritmos dedicados que são apropriados para esta situação?


Infelizmente, apenas a aplicação de um classificador de florestas aleatórias padrão não garante um classificador monótono, mesmo que o conjunto de treinamento seja monótono (vem de um cenário monótono e não apresenta ruídos ou violações da monotonicidade). Consulte https://cs.stackexchange.com/q/69220/755 para obter um exemplo explícito, isto é, um exemplo de um conjunto de treinamento monótono, em que florestas aleatórias podem aprender um classificador não monótono - mesmo que exista um classificador monótono isso é igualmente bom. Isso sugere que podemos precisar de alguma técnica mais sofisticada se quisermos aprender um classificador monótono.

DW
fonte
11
Apenas uma pergunta: seus dados vêm de configurações monótonas ou também contêm alguns exemplos de contra-exemplo? Se não houver exemplos contrários, por exemplo, florestas aleatórias funcionarão bem. Se houver alguns, você pode simplesmente removê-los do conjunto de treinamento.
precisa saber é o seguinte
@KarelMacek, cool! Como estou procurando um ponto de entrada na literatura ou nas técnicas, estou bem em supor que os dados no conjunto de treinamento sejam monótonos. É garantido que um classificador de florestas aleatórias treinado em um conjunto de dados monótonos produzirá um classificador monótono?
DW
@KarelMacek, obrigado pela sugestão! Infelizmente, parece que apenas a aplicação de florestas aleatórias padrão pode falhar - consulte o último parágrafo da pergunta editada para obter explicações e um link para um exemplo explícito. Não é evidente para mim como reparar o problema. Alguma ideia?
DW
11
Uma rede neural MLP com pesos maiores ou iguais a 1 e funções de ativação não-negativas e não decrescentes (por exemplo, ReLU) atende ao requisito de monotonicidade. Isso ocorre porque as somas de números não-negativos são não-negativas e um número positivo multiplicado por um número maior que 1 é maior que . pp
Sycorax diz Reinstate Monica

Respostas:

2

Embora seja uma pergunta antiga, acabei de descobrir que as árvores com gradiente aumentado suportam essa funcionalidade e ela já está implementada no XGBoost. Verifique aqui para mais detalhes

geompalik
fonte