Tweet Share

Atualizada por Último sobre 9 de agosto de 2019

Matriz decompositions são uma ferramenta útil para reduzir uma matriz para suas partes constituintes, a fim de simplificar uma série de operações mais complexas.

talvez o tipo mais usado de decomposição de matriz é a composição de eigendecomposição que decompõe uma matriz em autovetores e autovalores. Esta decomposição também desempenha um papel em métodos usados na aprendizagem de máquinas, como no principal método de Análise de componentes ou PCA.

neste tutorial, você irá descobrir a eigendecomposição, autovectores e autovalores em álgebra linear.

Depois de completar este tutorial, você saberá:

  • o que é uma eigendecomposição e o papel dos autovectores e autovalores.
  • Como calcular uma eigendecomposição em Python com NumPy.
  • Como confirmar um vetor é um autovetor e como reconstruir uma matriz a partir de autovetores e autovalores.

kick-start o seu projecto com o meu novo livro Álgebra Linear para a aprendizagem de máquinas, incluindo tutoriais passo-a-passo e os ficheiros de código Python para todos os exemplos.vamos começar.

Gentle Introduction to Eigendecomposition, Eigenvalues, and Eigenvectors for Machine Learning
Photo by Mathias Appel, some rights reserved.

tutorial Overview

este tutorial é dividido em 5 partes; eles são:

  1. Eigendecomposition de uma Matriz
  2. Autovetores e Autovalores
  3. Cálculo de Eigendecomposition
  4. Confirmar uma Eigenvector e Eigenvalue
  5. Reconstruir a Matriz Original

Precisa de ajuda com a Álgebra Linear para Aprendizado de Máquina?

tome o meu curso livre de estoiro de e-mail de 7 dias agora (com o código de exemplo).

Clique para se inscrever e também obter uma versão ebook PDF livre do curso.

faça O Download GRATUITO do Mini-Curso

Eigendecomposition de uma Matriz

Eigendecomposition de uma matriz é um tipo de decomposição que envolve a decomposição de uma matriz quadrada em um conjunto de autovetores e autovalores.

um dos tipos mais amplamente utilizados de decomposição matricial é chamado de eigendecomposição, na qual nós decompomos uma matriz em um conjunto de autovetores e autovalores.

— Page 42, Deep Learning, 2016.

A vector is an eigenvector of a matrix if it satisfies the following equation.

1
A . v = lambda . v

Este é o chamado ” eigenvalue equação, onde a é o principal matriz quadrada que estamos em decomposição, v é o eigenvector da matriz, e lambda é a letra grega minúscula e representa o eigenvalue escalar.

ou sem a notação do ponto.

1
Av = lambdav

A matrix could have one eigenvector and eigenvalue for each dimension of the parent matriz. Nem todas as matrizes quadradas podem ser decompostas em autovetores e autovalores, e algumas só podem ser decompostas de uma forma que requer números complexos. A matriz-mãe pode ser mostrada como um produto dos autovetores e autovalores.

1
A = Q . diag(V) . Q^-1

Or, without the dot notation.

1
A = Qdiag(V)Q^-1

Where Q is a matrix comprised of the eigenvectors, diag(V) is a diagonal matrix comprised of the eigenvalues along the diagonal( sometimes represented with a capital lambda), and Q^-1 is the inverse of the matrix composed of the eigenvectors.

No entanto, muitas vezes queremos decompor matrizes em seus autovectores e autovectores. Fazer isso pode nos ajudar a analisar certas propriedades da matriz, assim como decompor um inteiro em seus fatores primos pode nos ajudar a entender o comportamento desse inteiro.

— Page 43, Deep Learning, 2016.

Eigen não é um nome, por exemplo, o método não é nomeado após “Eigen”; eigen (pronuncia-se eye-gan) é uma palavra alemã que significa “próprio” ou “inato”, como em pertencer à matriz mãe.

uma operação de decomposição não resulta em uma compressão da matriz; em vez disso, ela a divide em partes constituintes para tornar certas operações na matriz mais fáceis de executar. Como outros métodos de decomposição matricial, a Eigendecomposição é usada como um elemento para simplificar o cálculo de outras operações matriciais mais complexas.

quase todos os vectores mudam de direcção, quando são multiplicados por A. Certos vetores excepcionais x estão na mesma direcção que o Ax. Esses são os “autovectores”. Multiplicar um eigenvector por Um, e o vetor Ax é o número lambda vezes o original x. O eigenvalue lambda indica se o especial do vetor x é aumentado ou reduzido ou invertida ou deixado inalterado quando é multiplicado por A.

— Página 289, Introdução à Álgebra Linear, Quinta Edição, em 2016.

Eigendecomposition também pode ser usado para calcular as componentes principais de uma matriz na Análise de Componentes Principais método ou PCA, que pode ser utilizada para reduzir a dimensionalidade dos dados em aprendizado de máquina.

autovetores e autovalores

autovetores são vetores unitários, o que significa que seu comprimento ou magnitude é igual a 1,0. Eles são muitas vezes referidos como vetores da direita, o que significa simplesmente um vetor coluna (em oposição a um vetor linha ou um vetor da esquerda). Um vetor-direito é um vetor tal como os entendemos.

autovalores são coeficientes aplicados a autovectores que dão aos vetores o seu comprimento ou magnitude. Por exemplo, um autovetor negativo pode reverter a direção do autovetor como parte da escala.

uma matriz que tem apenas autovalores positivos é referida como uma matriz positiva definida, enquanto que se os autovalores são todos negativos, é referida como uma matriz negativa definida.

decompondo uma matriz em termos dos seus autovectores e autovectores, fornece informações valiosas sobre as propriedades da matriz. Certos cálculos de matriz, como a computação da potência da matriz, tornam-se muito mais fáceis quando usamos a eigendecomposição da matriz.

— Página 262, Sem Bobagens, Guia de Álgebra Linear, 2017

Cálculo de Eigendecomposition

Um eigendecomposition é calculado sobre uma matriz quadrada utilizando um eficiente algoritmo iterativo, de que não vamos entrar em detalhes.

muitas vezes um autovalor é encontrado primeiro, então um autovetor é encontrado para resolver a equação como um conjunto de coeficientes.

A eigendecomposição pode ser calculada em NumPy usando a função eig ().

o exemplo abaixo define primeiro uma matriz quadrada de 3×3. A composição de eigendecomposição é calculada na matriz retornando os autovalores e autovetores.

executando o exemplo primeiro imprime a matriz definida, seguida dos autovalores e dos autovectores. Mais especificamente, os autovetores são os autovetores do lado direito e são normalizados para o comprimento de unidade.

confirme um autovetor e autovalor

podemos confirmar que um vetor é de fato um autovetor de uma matriz.

fazemos isto multiplicando o autovetor candidato pelo autovetor próprio e comparando o resultado com o autovalor.

Primeiro, vamos definir uma matriz, em seguida, calcular os autovalores e autovectores. Vamos então testar se o primeiro vetor e valor são de fato um autovalor e um autovetor para a matriz. Sabemos que são, mas é um bom exercício.

os autovectores são devolvidos como uma matriz com as mesmas dimensões que a matriz-mãe, onde cada coluna é um autovetor, por exemplo, o primeiro autovetor é vetores. Os autovalores são devolvidos como uma lista, onde os índices de valores na matriz devolvida são emparelhados com autovetores por índice de coluna, por exemplo, o primeiro autovalor em valores é emparelhado com o primeiro autovetor em vetores.

o exemplo multiplica a matriz original com o primeiro autovetor e compara-a com o primeiro autovetor multiplicado pelo primeiro autovalor.

executando o exemplo imprime os resultados destas duas multiplicações que mostram o mesmo vetor resultante, como seria de esperar.

1
2
3

Reconstruct Original Matrix

We pode reverter o processo e reconstruir a matriz original dado apenas os autovectores e autovalores.

Em primeiro lugar, a lista de autovetores deve ser convertida em uma matriz, onde cada Vetor se torna uma linha. Os autovalores de eigen precisam ser dispostos em uma matriz diagonal. A função NumPy diag() pode ser usada para isso.

em seguida, precisamos calcular o inverso da matriz de autovetor, que podemos alcançar com a função inv() NumPy. Finalmente, estes elementos precisam ser multiplicados juntamente com a função dot ().

o exemplo calcula os autovalores e autovectores de novo e usa-os para reconstruir a matriz original.

executando o exemplo primeiro imprime a matriz original, em seguida, a matriz reconstruída a partir de autovalores e autovectores correspondentes à matriz original.

1
2
3
4
5
6
7

]
]

extensões

Esta secção lista algumas ideias para alargar o tutorial que poderá querer explorar.

  • crie 5 exemplos usando cada operação com os seus próprios dados.
  • Implemente cada operação de matriz manualmente para matrizes definidas como listas de listas.Pesquisar papéis de aprendizagem por máquina e encontrar 1 Exemplo de cada operação a ser utilizada.se explorar alguma destas extensões, gostaria de saber.

    Leitura Adicional

    Esta secção fornece mais recursos sobre o tópico se você está procurando ir mais fundo.

    livros

    • Secção 6. 1 autovalores e autovectores. Sem Guia Da Treta Da Álgebra Linear, 2017.
    • Chapter 6 Eigenvalues and Eigenvectors, Introduction to Linear Algebra, 5th Edition, 2016.secção 2.7 Eigendecomposition, Deep Learning, 2016.
    • Chapter 5 Eigenvalues, Eigenvectors, and Invariant Subspaces, Linear Algebra Done Right, Third Edition, 2015.
    • Lecture 24, Eigenvalue Problems, Numerical Linear Algebra, 1997.

    API

    • numpy.linalg.eig () API
    • numpy.diag () API
    • numpy.dot () API
    • numpy.linalg.inv() API

    Artigos

    • eigen no Wikcionário
    • Autovalores e autovetores
    • Eigendecomposition de uma matriz
    • Eigenvalue algoritmo
    • a decomposição da Matriz

    Resumo

    neste tutorial, você descobriu o eigendecomposition, autovetores, e autovalores em álgebra linear.

    especificamente, você aprendeu:

    • o que é uma eigendecomposição e o papel dos autovectores e autovalores.
    • Como calcular uma eigendecomposição em Python com NumPy.
    • Como confirmar um vetor é um autovetor e como reconstruir uma matriz a partir de autovetores e autovalores.tem alguma pergunta?Faça suas perguntas nos comentários abaixo e farei o meu melhor para responder.

      Get a Handle on Linear Algebra for Machine Learning!

      Desenvolver um trabalho entender de álgebra linear

      …escrevendo linhas de código em python

      Descubra como no meu novo e-Book:
      Álgebra Linear for Machine Learning

      it provides self-study tutoriais on topics like:
      Vector Norms, Matrix Multiplication, Tensors, Eigendecomposition, SVD, PCA and much more…

      finalmente entender a matemática dos dados

      saltar os acadêmicos. Apenas Resultados.

      ver o que está dentro de

      Tweet Share

Deixe uma resposta

O seu endereço de email não será publicado.