O que é redução de dimensionalidade? Qual é a diferença entre seleção e extração de recursos?

58

Na wikipedia,

redução de dimensionalidade ou redução de dimensão é o processo de redução do número de variáveis ​​aleatórias em consideração e pode ser dividido em seleção e extração de recursos.

Qual é a diferença entre a seleção e extração de recursos?

Qual é um exemplo de redução de dimensionalidade em uma tarefa de Processamento de linguagem natural?

alvas
fonte

Respostas:

51

Simplificando:

  • seleção de recursos: você seleciona um subconjunto do conjunto de recursos original; enquanto
  • extração de recursos: você cria um novo conjunto de recursos a partir do conjunto de recursos original.

Exemplos de extração de recursos: extração de contornos em imagens, extração de digramas de um texto, extração de fonemas da gravação de texto falado, etc.

A extração de recursos envolve uma transformação dos recursos, o que geralmente não é reversível porque algumas informações são perdidas no processo de redução de dimensionalidade.

damienfrancois
fonte
2
Ambos se enquadram na categoria de engenharia de recursos, pois envolvem a criação ou seleção manual de recursos. Redução dimensionalidade envolve, tipicamente, uma mudança de base ou alguma outra re-representação matemática dos dados
ragingSloth
1
@ragingSloth, acho que o primeiro é definitivamente a seleção de recursos - e não a engenharia de recursos. Enquanto imagem e processamento de texto exemplos de fato parecem ser de engenharia recurso
Alexey Grigorev
Do jeito que eu achei, para algumas extrações de recursos, você ainda pode reconstruir as dimensões originais aproximadamente. Mas para a seleção de recursos, não há reconstrução, pois você removeu as dimensões inúteis.
Bob
17

A redução de dimensionalidade geralmente escolhe uma base ou representação matemática dentro da qual você pode descrever a maioria, mas não toda a variação em seus dados, mantendo assim as informações relevantes e reduzindo a quantidade de informações necessárias para representá-las. Há uma variedade de técnicas para fazer isto, incluindo mas não limitado a PCA, ICAe Matrix Feature Factorization. Isso usará os dados existentes e os reduzirá aos componentes mais discriminativos. Todos eles permitem que você represente a maioria das informações no seu conjunto de dados com menos recursos e mais discriminativos.

Seleção de recurso é selecionar manualmente recursos altamente discriminativos. Isso tem muito mais a ver com a engenharia de recursos do que com a análise e requer muito mais trabalho por parte do cientista de dados. Requer uma compreensão de quais aspectos do seu conjunto de dados são importantes em quaisquer previsões que você esteja fazendo e quais não. A extração de recursos geralmente envolve a geração de novos recursos que são compostos de recursos existentes. Ambas as técnicas se enquadram na categoria de engenharia de recursos. Geralmente, a engenharia de recursos é importante se você deseja obter os melhores resultados, pois envolve a criação de informações que podem não existir no seu conjunto de dados e o aumento da taxa de sinal para ruído.

ragingSloth
fonte
2
Concordo principalmente, com uma precisão: a seleção de recursos não precisa ser feita manualmente, pode ser automática. Veja, por exemplo, o método Lasso ( en.wikipedia.org/wiki/Least_squares#Lasso_method ).
jrouquie
Concordo com a sua Dimensionality Reductioncláusula, mas discordo um pouco sobre o Feature Engineeringuso - que, pelo que vi, é apenas Feature Extraction : Feature Selectioné considerado separadamente. É apenas uma diferença na terminologia.
Javadba
7

Como em @damienfrancois, a seleção de recursos de resposta é sobre como selecionar um subconjunto de recursos. Portanto, na PNL, você selecionaria um conjunto de palavras específicas (o típico na PNL é que cada palavra representa um recurso com valor igual à frequência da palavra ou algum outro peso baseado em TF / IDF ou similar).

A redução de dimensionalidade é a introdução de um novo espaço de recurso onde os recursos originais são representados. O novo espaço é de menor dimensão que o espaço original. No caso de texto, um exemplo seria o truque de hash, onde um pedaço de texto é reduzido a um vetor de poucos bits (digamos 16 ou 32) ou bytes. O incrível é que a geometria do espaço é preservada (com bits suficientes), para que as distâncias relativas entre os documentos permaneçam as mesmas do espaço original, para que você possa implantar técnicas padrão de aprendizado de máquina sem precisar lidar com o número ilimitado (e grande número) de) dimensões encontradas no texto.

iliasfl
fonte
5

A seleção de recursos trata da escolha de alguns recursos com base em alguma pontuação estatística, mas a extração de recursos está usando técnicas para extrair algumas informações da segunda camada dos dados, por exemplo, freqüências interessantes de um sinal usando a transformada de Fourier.

A redução da dimensionalidade tem a ver com transformar dados em um espaço de baixa dimensão, no qual os dados preservam sua estrutura euclidiana, mas não sofrem com a maldição da dimensionalidade. Por exemplo, suponha que você extraia alguns recursos de palavras de um conjunto de dados em que cada documento possa ser modelado como um ponto no espaço n-dimensional en seja muito grande (um exemplo de brinquedo). Nesse caso, muitos algoritmos não funcionam de acordo com a distorção da distância do espaço de alta dimensão. Agora você precisa reduzir a dimensionalidade selecionando os recursos mais informativos ou transformando-os em um coletor de baixa dimensão usando métodos de redução de dimensionalidade, por exemplo, PCA, LLE, etc.[x1,...,xn]

DanielWelke
fonte
Fora das respostas disponíveis este um melhores jogos que eu já vi em várias equipes Ciência de Dados e Plataforma ML
javadba
3

Para concluir a resposta de Damien, um exemplo de redução de dimensionalidade na PNL é um modelo de tópico , em que você representa o documento por um vetor que indica os pesos dos tópicos constituintes.

Emre
fonte
2

A1 O que é redução de dimensionalidade: se você pensa em dados em uma matriz, onde linhas são instâncias e colunas são atributos (ou recursos), a redução de dimensionalidade está mapeando essa matriz de dados para uma nova matriz com menos colunas. Para visualização, se você pensar em cada coluna de matriz (atributo) como uma dimensão no espaço de recurso, a redução de dimensionalidade é a projeção de instâncias do espaço dimensional mais alto (mais colunas) para um subespaço dimensional mais baixo (menos colunas). Redução de dimensionalidade é projeção no subespaço O objetivo típico dessa transformação é (1) preservar as informações na matriz de dados e reduzir a complexidade computacional; (2) melhorar a separabilidade de diferentes classes de dados.

A2 Redução de dimensionalidade como seleção ou extração de recursos: usarei o onipresente conjunto de dados Iris , que é sem dúvida o 'olá mundo' da ciência de dados. Resumidamente, o conjunto de dados Iris possui 3 classes e 4 atributos (colunas). Ilustrarei a seleção e extração de recursos para a tarefa de reduzir a dimensionalidade do conjunto de dados Iris de 4 para 2.

Eu computo a co-variação em pares deste conjunto de dados usando a biblioteca em Python chamada seaborn. O código é: sns.pairplot (íris, matiz = "espécie", marcadores = ["o", "s", "D"]). A figura que recebo é Par trama de íris que posso selecionar o par de atributos (2 dimensões) que fornecem me a maior separação entre as 3 classes (espécies) no conjunto de dados Iris. Este seria um caso de seleção de recurso.

O próximo passo é a extração de recursos. Aqui, estou projetando o espaço de característica quadridimensional do Iris para um novo subespaço bidimensional, que não é um eixo alinhado ao espaço original. Esses são novos atributos. Eles geralmente são baseados na distribuição no espaço dimensional de alta original. O método mais popular é a Análise de componentes principais, que calcula os vetores próprios no espaço original. PCA usando SVD Obviamente, não estamos restritos a usar apenas uma projeção linear e global para um subespaço baseado em vetores próprios. Também podemos usar métodos de projeção não linear. Aqui está um exemplo de PCA não linear usando redes neurais PCA não linear usando NN Os atributos (dimensões) no último exemplo são extraídosdos 4 atributos originais usando redes neurais. Você pode experimentar vários tipos de conjunto de dados do PCA para íris usando esse código de métodos pca .

Resumo: Embora os métodos de extração de recursos pareçam ter desempenho superior à seleção de recursos, a escolha é predicada pelo aplicativo. Os atributos da extração de recursos geralmente perdem a interpretação física, o que pode ou não ser um problema com base na tarefa em questão. Por exemplo, se você estiver projetando uma tarefa de coleta de dados muito cara com sensores caros e precisar economizar nos atributos (número de sensores diferentes), convém coletar uma pequena amostra piloto usando todos os sensores disponíveis e, em seguida, selecionar os que são mais informativos para a tarefa de coleta de big data.

Poeira Estelar Dinâmica
fonte
1

Extraído do aprendizado prático da máquina com o scikit-learn e o Tensorflow

  1. Limpeza de dados: corrija ou remova valores discrepantes (opcional). Preencha os valores ausentes (por exemplo, com zero, média, mediana ...) ou solte suas linhas (ou colunas).
  2. Seleção de recurso (opcional): descarte os atributos que não fornecem informações úteis para a tarefa.
  3. Engenharia de recursos, quando apropriado: Discretize recursos contínuos. Decomponha recursos (por exemplo, categóricos, data / hora, etc.). Adicione transformações promissoras de recursos (por exemplo, log (x), sqrt (x), x ^ 2, etc.). Agregue recursos em novos recursos promissores.
  4. Escala de recursos: padronize ou normalize recursos.
Hadi Askari
fonte
0

Várias ótimas respostas aqui, em particular, a resposta de @ damienfrancois captura muito sucintamente a idéia geral.

No entanto, não vejo exemplos de engenharia de recursos para dados relacionais ou de séries temporais. Nesse caso, os cientistas de dados geralmente extraem padrões estatísticos entre relacionamentos e ao longo do tempo. Por exemplo, para prever o que os clientes farão no futuro em um banco de dados de comércio eletrônico, é possível extrair quantidades como o valor médio histórico da compra ou a frequência das compras anteriores.

Eu escrevi um artigo sobre esse tópico que entra em muito mais detalhes com vários exemplos aqui: https://www.featurelabs.com/blog/feature-engineering-vs-feature-selection/

bschreck
fonte
0

Deixe-me começar com a ordem inversa, que extrai recursos e por que há necessidade de seleção de recursos e redução de dimensionalidade.

Começando com o uso da extração de recursos, que é principalmente para fins de classificação. A classificação é o processo de tomar uma decisão sobre qual categoria o objeto específico pertence. Possui duas fases: i) fase de treinamento, onde dados ou objetos são aprendidos com propriedades, usando algum processo (extração de recurso); ii) fase de teste, onde o objeto desconhecido é classificado usando os recursos aprendidos na fase anterior (treinamento).

A extração de recursos, como o nome sugere, dado que o objetivo dos dados é encontrar o padrão subjacente. Esse padrão subjacente, que é o termo como recurso correspondente aos dados respectivos. Existem várias metodologias para extração de recursos, como SVM (Support Vector Machine).

Agora, a extração de recursos deve gerar recursos que devem ser

  • robusto
  • discriminativo
  • conjunto ideal de recursos

Seleção de recurso: Um conjunto específico de dados pode ser representado por um único recurso ou conjunto de recursos. No processo de classificação, um sistema é treinado para pelo menos duas classes. Portanto, o sistema de treinamento irá gerar um único recurso ou conjunto de recursos. Esses recursos devem possuir as propriedades declaradas acima.

O problema ocorre quando há um conjunto de recursos para cada classe e existe correlação entre alguns dos recursos. Isso implica, entre os recursos correlatos, que um ou poucos são suficientes para representação e é aí que a seleção de recursos aparece. Além disso, esses recursos precisam ser armazenados com o aumento no requisito de memória do conjunto de recursos também aumenta.

Depois vem a redução de dimensionalidade, que nada mais é do que a parte do processo de seleção de recursos. É o processo de escolher o conjunto ideal de recursos que melhor descreve os dados. Existem muitas técnicas para o mesmo, como análise de componentes principais, análise de componentes independentes e fatoração de matrizes, etc.

Chirag Arora
fonte
-3

Por exemplo ... se você possui uma área agrícola, a seleção de uma área específica dessa área seria a seleção de características. em cada planta, a fim de encontrar as anormalidades ... para isso, você estaria considerando a extração de características. Neste exemplo, a terra agrícola original corresponde à redução da dimensionalidade.

Divya
fonte
Não, não tem nada a ver com dados espaciais em particular. É aplicável a dados temporais, espaço-temporais e outros tipos de dados.
Emre