Lidando com vetores de características de comprimento variável

8

Como lidar com um vetor de recurso que pode variar em tamanho?

Digamos que por objeto, eu calculo 4 recursos. Para resolver um certo problema de regressão, posso ter 1, 2 ou mais desses objetos (não mais que 10). Assim, o vetor de característica tem 4 * N de comprimento. Como isso é normalmente abordado?

Os objetos representam objetos físicos (por exemplo, outras pessoas) por um observador. Para um intervalo de tempo, um objeto pode ser colocado lateralmente, longitudinalmente, ter alguma velocidade e algum rumo (4 características). Tentando resolver: onde uma pessoa deve se sentir mais confortável. Em alguns casos, existe apenas 1 objeto, mas pode haver 2 ou mais.

Disclaimer : Eu tenho conhecimento limitado sobre abordagens de ML. Tive aulas na faculdade há alguns anos e fiz o curso de ML de Andrew Ng on-line como uma atualização, mas, de outra forma, não estava atualizado. Um ponto de partida para procurar é apreciado.

Otto Nahmee
fonte
Você pode nos contar um pouco mais sobre quais são seus objetos e qual é o problema de regressão? Isso pode influenciar a forma como pensamos que você deve lidar com a codificação de recursos.
21918 Imran
@Imran Os objetos representam objetos físicos (por exemplo, outras pessoas) por um observador. Para uma fatia de tempo, um objeto pode ser colocado lateralmente, longitudinalmente, ter alguma velocidade e alguma direção (4 recursos). Tentando resolver: onde uma pessoa deve se sentir mais confortável. Em alguns casos, existe apenas 1 objeto, mas pode haver 2 ou mais.
Otto Nahmee
@Emre Atualizou a pergunta original com o exemplo
Otto Nahmee
Obrigado pelo esclarecimento. Você tem um conjunto de treinamento rotulado, por exemplo, uma lista de cenários em que alguém está cercado por esses objetos e você marcou o local correto onde eles devem se sentir mais confortáveis?
Imran
@Imran Ainda não é um conjunto completo - isto é algo que eu ainda estou no processo de coleta
Otto Nahmee

Respostas:

3

Antes de tudo, seja bem-vindo à comunidade!

Sobre a pergunta, eu diria que existem mal-entendidos. Você diz que calcula 4 recursos "por objetos". Isso significa que cada ponto de dados (objeto) é descrito com 4 recursos. Portanto, o comprimento dos recursos não é diferente. Observe que eu digo isso porque "você calcula recursos para suas amostras / pontos de dados / objetos"; portanto, cada objeto aqui é um ponto no espaço 4-dimensional. Se você quer dizer algo mais, por favor me corrija.

Em outras palavras, você tem uma matriz de dados com algumas linhas (número de objetos) e 4 colunas.

Mais geral sobre todo o conceito. Não, essa não é uma abordagem válida para criar dados padrão. Nos dados padrão, o número de colunas é sempre o mesmo, porque você não pode estudar objetos se eles estiverem definidos em espaços diferentes. Muitos algoritmos de ML também funcionam com dados padrão, o que significa que você não pode usá-los se o tamanho dos vetores de características variar. Mais conceitual, por assim dizer, o tamanho dos recursos que você calcula para os objetos não pode variar. Quão? Eu quero extrair recursos de rostos. Eu digo cor dos olhos , distância entre os olhos e distância entre os ouvidos . Eu tenho três recursos e para qualquer pessoa que venha ao meu estudo eu calculo o mesmo conjunto de recursos. Como o tamanho pode ser diferente se o processo de extração de recursos for padrão?

Mas em dados não padrão, você pode acabar com esse caso. Nesse caso, você pode padronizar os recursos. Por exemplo, como um exemplo de bebê, imagine gráficos diferentes com diferentes números de nós e arestas. Você pode descrever cada gráfico com seu grau médio , comprimento médio do caminho e número de nós . Cada gráfico é descrito com três recursos e você pode alimentá-lo em um algoritmo.

Mas se você não deseja padronizar os dados (porque geralmente há perda de informações), você precisa encontrar métodos analíticos personalizados para os quais precisa explicar mais sobre seus dados.

Espero que tenha ajudado!

Boa sorte!

Kasra Manshaei
fonte
Obrigado! Você mencionou que, nos dados padrão, o número de colunas é sempre o mesmo , posso dizer que isso também se aplica às linhas; portanto, seria lido como Nos dados padrão, o número de colunas e linhas é sempre o mesmo ?
Otto Nahmee 23/08/18
11
Não Não Não ... O número de colunas é um recurso, portanto deve ser o mesmo. mas o número de linhas é o tamanho dos seus dados. Você pode extrair 3 recursos de 10 pessoas ou de 20 pessoas ou de apenas 1 pessoa. Em outras palavras, quando você estiver mostrando pontos nas coordenadas X, Y, Z, poderá mostrar 3 ou 10 pontos. Eles podem variar, mas o X, Y e Z são coordenadas fixas.
Kasra Manshaei 23/08/18
Estou tendo esse cenário em que tenho um número diferente de interfaces para diferentes dispositivos de rede, aqui não consigo calcular a média de todas as interfaces, pois todas as interfaces são diferentes. Vou procurar "métodos analíticos personalizados", como você mencionou, caso não resolva, definitivamente explicarei meu problema com clareza e retornarei a você. @KasraManshaei
debaonline4u 18/01/19
11
@ debaonline4u sure! Será um prazer ajudar!
Kasra Manshaei 18/01/19
1

OK, parece que você está tentando codificar a posição e a velocidade de um número variável de objetos em cada exemplo de treinamento.

Uma maneira de fazer isso é com dois planos de recursos por exemplo de treinamento como entradas de canal para uma rede neural convolucional. O primeiro plano de recurso codifica o componente x da velocidade para cada objeto na posição desse objeto, e o segundo faz o mesmo para o componente y.

Como você disse que as posições são em relação ao observador, presumo que o observador esteja sempre no mesmo local, portanto não há necessidade de adicionar informações adicionais às entradas.

Também assumirei que dois objetos não podem estar no mesmo lugar.

Por exemplo, digamos que você esteja em um mundo 3x3 e tenha objetos em (0,1) e (2,2) com velocidades (3,2) e (1,7), respectivamente. Este exemplo de entrada pode ser codificado como:

[ 0 0 0
  3 0 0
  0 0 1 ]

[ 0 0 0
  2 0 0
  0 0 7 ]

Como você pode ver, o tamanho da entrada é sempre o mesmo, independentemente de quantos objetos estão presentes. Mais objetos apenas levarão a mais entradas diferentes de zero.

Sugeri uma rede conv, já que eles funcionam especialmente bem com problemas espaciais, mas se você quiser experimentar uma rede neural de baunilha primeiro, poderá nivelar sua forma de entrada de (m, 3,3,2) a (m, 12).

Imran
fonte
Obrigado, essa é uma abordagem bastante interessante. Existe a restrição que tenho para discretizar o intervalo das entradas? Com um problema de regressão, os valores podem ser contínuos, há algo que pode ser feito aqui para representar valores contínuos?
Otto Nahmee