Lidando com conjuntos de dados com um número variável de recursos

14

Quais são algumas abordagens para classificar dados com um número variável de recursos?

Como exemplo, considere um problema em que cada ponto de dados é um vetor de pontos xey, e não temos o mesmo número de pontos para cada instância. Podemos tratar cada par de pontos xey como uma característica? Ou devemos resumir os pontos de alguma forma, para que cada ponto de dados tenha um número fixo de recursos?

jergason
fonte
7
A presença ou ausência de um determinado ponto ajuda na classificação dos dados?
jonsca

Respostas:

5

Você pode tratar esses pontos como ausentes - ie. vamos supor que o vetor tenha no máximo 20 (x, y) pares e um ponto específico tenha 5 (x, y) pares; nesse caso, trate o restante dos pares como ausentes e, em seguida, aplique procedimentos padrão para parâmetros ausentes:

Esses procedimentos padrão podem ser:

  • Use um modelo que lide com parâmetros ausentes de maneira natural, por exemplo, modelos de árvore de decisão devem ser capazes de lidar com isso.
  • Substitua ausente pelo valor médio da coluna apropriada.
  • Use um modelo fácil para 'prever' valores ausentes.

Mas como @jonsca aponta --- se a presença de ausência de um determinado ponto ajuda a classificar os dados, você deve, por exemplo, criar dois modelos, cada um deles modela instâncias com um número específico de pontos.

jb.
fonte
10

Pelo que entendi sua pergunta, os pontos nos dados são intercambiáveis ​​e não vêm com nenhuma ordem, ou seja, você tem um conjunto de pontos para cada exemplo. Essa configuração é diferente da configuração "Valor ausente" que jb. descrito.

Conheço dois métodos comumente usados ​​para esse problema, que são realmente baseados em suas idéias. Uma boa linha de base provavelmente seria calcular a média de todos os pontos em um exemplo, mas isso geralmente não funciona bem.

  • Para agregar vários pontos em um único recurso, são comumente usadas representações de conjunto de palavras (ou conjunto de recursos), por exemplo, na visão computacional. A idéia é agrupar todos os pontos em seu conjunto de treinamento (usando, por exemplo, k-means) e depois descrever cada ponto por seu cluster. Para cada exemplo, você obtém um histograma sobre quais clusters ocorrem com que frequência.

  • Para usar todos os pares de pontos, você pode usar kernels definidos. Isso pode funcionar melhor com o uso de SVMs, mas provavelmente também funcionará com qualquer algoritmo de aprendizado que possa ser kernelizado ou fazer uso de uma função de compatibilidade entre entradas. Os kernels de conjunto são basicamente uma maneira de calcular a semelhança de dois conjuntos de recursos, como na sua configuração.

Andreas Mueller
fonte