Existe um método oposto à redução de dimensionalidade?

9

Eu sou novo no campo de aprendizado de máquina, mas já fiz minha parte no processamento de sinais. Informe-me se esta pergunta foi classificada incorretamente.

Eu tenho dados bidimensionais que são definidos por pelo menos três variáveis, com um modelo altamente não linear muito complicado para simular.

Eu tive vários níveis de sucesso ao extrair os dois componentes principais dos dados usando métodos como PCA e ICA (da biblioteca python Scikit-Learn), mas parece que esse método (ou pelo menos essa implementação dos métodos) é limitado para extrair quantos componentes houver dimensões nos dados, por exemplo, 2 componentes de uma nuvem de pontos 2D.

Ao plotar os dados, fica claro para os olhos treinados que existem três tendências lineares diferentes, as três linhas de cores mostram as direções.

gráfico de dados

Ao usar o PCA, o componente principal é alinhado a uma das linhas de cores e o outro está a 90 °, conforme o esperado. Ao usar o ICA, o primeiro componente está alinhado com a linha azul e o segundo está entre os vermelhos e os verdes. Estou procurando uma ferramenta que possa reproduzir todos os três componentes no meu sinal.

EDIT, Informações adicionais: Estou aqui trabalhando em um pequeno subconjunto de um plano de fase maior. Nesse pequeno subconjunto, cada variável de entrada produz uma mudança linear no plano, mas a direção e a amplitude dessa mudança são não lineares e dependem de onde exatamente no plano maior eu estou trabalhando. Em alguns lugares, duas das variáveis ​​podem ser degeneradas: elas produzem mudanças na mesma direção. por exemplo, digamos que o modelo dependa de X, Y e Z. Uma mudança na variável X produzirá uma variação ao longo da linha azul; Y causa uma variação ao longo da linha verde; Z, ao longo do vermelho.

PhilMacKay
fonte
3
Se bem entendi, o conceito que você está procurando é incorporar . Consulte os métodos do kernel e, em particular, o PCA do kernel .
Emre
11
Não tenho certeza disso, por isso não estou postando como resposta. Em um modelo de rede neural, você pode manter a dimensionalidade da camada oculta> dimensionalidade da camada de entrada. Em seguida, você pode usar a camada oculta como entrada para outra rede / modelo. Mas fazer isso requer muitos dados.
Azrael 26/06
Quando você diz dados bidimensionais, definidos por pelo menos três variáveis, em que sentido você usa o termo 'variável'? As aulas seriam uma substituição adequada? Vale ressaltar que o PCA extrai dimensões máximas variantes dos dados, essa não é necessariamente a transformação mais discriminativa a ser aplicada. Você já olhou para agrupamentos?
Image_doctor 28/06
Você sabe alguma coisa sobre a não linearidade do modelo? Embora possa ser muito complexo para simular, saber que ele é composto no máximo por polinômios de grau 3 restringe significativamente a engenharia de recursos.
AN6U5 13/07/2015
Discuti com um amigo estatístico meu que sugeriu o uso do kernel PCA na derivada dos meus dados, pois estou procurando pistas. Tomar a derivada contaria como "engenharia de recursos"?
22415 PhilMacKay

Respostas:

8

A resposta curta é sim.

Essencialmente, você estará executando algum tipo de engenharia de recursos. Isso significa construir uma série de funções dos seus dados, geralmente:

ϕj(x):RpR ,  j=1 1,...,K

ϕ(x)K

Existem várias maneiras, melhores e piores, de fazer isso. Você pode procurar termos como:

  1. Splines e modelos aditivos generalizados.
  2. K
  3. x2
  4. Aprendizagem profunda, aprendizagem de representação

Como você pode imaginar, com uma variedade de técnicas tão variadas, essa é uma área grande. Escusado será dizer realmente, mas é preciso ter cuidado para evitar o excesso de ajuste.

Este artigo Representação de Aprendizagem: Uma Revisão e Novas Perspectivas trata de algumas das questões relacionadas ao que torna um conjunto de recursos 'bom', de uma perspectiva profunda de aprendizado.

conjecturas
fonte
-2

Eu acho que você está procurando recursos que extraem novos recursos. Um recurso que melhor representa o conjunto de dados. Se for esse o caso, chamamos esse método de "extração de recursos".

Apurv
fonte