Algoritmo de aprendizado de máquina para classificação

10

Eu tenho um conjunto de elementos que posso descrever de acordo com características. Portanto:Xn

xEu:{cEu1 1,cEu2,,cEun}xEuX

onde é a avaliação (numérica) do elemento acordo com as características . Portanto, meus elementos podem ser vistos como pontos em um espaço de dimensões.cEujEujn

De acordo com minhas leituras, existem algoritmos como o "Classificador Bayes" que podem me fornecer um tipo de resposta "sim" ou "não" em qualquer elemento do meu conjunto, desde que eu usei um "conjunto de treinamento" elementos do meu conjunto e o resultado esperado do algoritmo. Com base nesses dados, o algoritmo deve ser capaz de pegar qualquer outro elemento, que não faça parte do conjunto de treinamento, e fornecer uma resposta "sim" ou "não" com base no que aprendeu graças ao conjunto de treinamento. Isso é ótimo se você tiver algum tipo de idéia do que espera (conjunto de treinamento), mas não tiver certeza das regras específicas que rendem a esse resultado.

O que eu gostaria de fazer com meus dados não é obter um tipo de resposta "sim" ou "não", mas gostaria de introduzir uma classificação dentro dos elementos. Alguns deles são "melhores" que outros. Assim como no filtro Bayes, tenho uma idéia genérica do que espero. Assim, eu poderia gerar um "ranking de treinamento" retirado de um subconjunto de meus elementos, que eu alimentaria o MLA. Com base nesse treinamento, seria capaz de classificar todo o meu conjunto.

Para fazer isso, vejo duas abordagens:

  1. Cada elemento receberia uma pontuação pelo MLA e, em seguida, classificaria os elementos de acordo com a pontuação.
  2. O MLA seria capaz de pegar dois elementos e e determinar qual deles é melhor (comparações em pares). Use quicksort usando essa operação de comparação.xEuxj

Nota: com base em uma pontuação, a função em pares é trivial para implementar e, com base em uma função em pares, é trivial gerar uma pontuação; portanto, são apenas duas abordagens para produzir os mesmos resultados.

Existem exemplos de MLAs que podem fornecer uma função de pontuação ou uma função de comparação em pares?

EDIT: Para adicionar mais contexto: atualmente meus itens são classificados de acordo com um algoritmo que gera uma pontuação (número real) em cada item, fazendo cálculos no . Embora a classificação gerada esteja correta, geralmente tenho que modificar o algoritmo para ajustá-lo de alguma forma, porque posso ver claramente alguns itens que não estão classificados de acordo com o que eu esperava.cEuj

Atualmente, meu processo de design é:

  1. Tenha uma idéia de qual seria uma classificação perfeita
  2. Tente (manualmente) derivar um algoritmo que classifique os itens assim
  3. Observe os resultados
  4. Adapte o algoritmo

Então, pensei nos MLAs, pois o ponto de partida do meu processo é o que poderia ser usado como dados de treinamento. Eu provavelmente começaria assumindo a classificação atual, trocaria itens de acordo com minhas necessidades e alimentaria isso.

chl
fonte

Respostas:

3

Muitos algoritmos de classificação já fazem exatamente o que você está procurando, mas geralmente apresentam suas respostas aos usuários na forma de um julgamento binário (ou n-way). Por exemplo, o SVMLight é uma implementação do algoritmo de classificação da máquina de vetores de suporte; as pessoas geralmente usam isso para fazer julgamentos binários em alguns conjuntos de dados. O que acontece sob o capô, no entanto, é que o algoritmo está atribuindo julgamentos de confiança assinados aos dados. Eles estão limitados entre -1,0 e 1,0 e são o que você deve usar para classificar seus dados!

Kyle.
fonte
2

Parece que você pode usar a análise de regressão . Além disso, provavelmente você precisará atribuir pontuações (números reais) aos elementos do seu conjunto de treinamento, caso não os possua. Embora você possa usar apenas a classificação como seu valor-alvo, isso fará com que você tenha um modelo ruim se tiver apenas um pequeno conjunto de amostras de treinamento.

Peter H
fonte
0

Acho que você espera demais dos algoritmos de aprendizado de máquina. Um computador não pode decidir se o item 1 é melhor que o item 2 por si só. O que um algoritmo de Machine Learning pode fazer é se você der alguns exemplos em que você classificou algum item 1 como melhor que o item 2, então ele pode aprender a classificar os itens [1]. Mas você ainda precisa de dados de treinamento em que fornece exemplos de itens e informações sobre se o item 1 é maior que o item 2 para todos os itens nos dados de treinamento.

[1] http://www.cs.cornell.edu/people/tj/svm_light/svm_rank.html

TenaliRaman
fonte
Muito obrigado pelo link. E compreendo perfeitamente que precisarei fornecer um conjunto de treinamento ao algoritmo para que ele possa classificar os itens subseqüentes.