Compressão de dados para a aprendizagem de máquina
Video: ENSINO - Aprendizado de Máquina e Mineração de dados
Conteúdo
Idealmente, na aprendizagem de máquina você pode obter os melhores resultados quando suas características não se correlacionam completamente uns com os outros e cada um tem algum poder de previsão com relação à resposta que você está modelando. Na realidade, as suas características muitas vezes se correlacionam com o outro, mostrando um alto grau de redundância na informação disponível para o conjunto de dados.
Ter dados redundantes significa que a mesma informação está espalhada por vários recursos. Se é exatamente a mesma informação, representa um colinearidade perfeita. Se, ao contrário, não é exatamente a mesma informação, mas varia de alguma forma, você tem colinearidade entre duas variáveis ou multicolinearidade entre mais de duas variáveis.
redundante de dados é um problema que a teoria criado soluções estatísticas para resolver há muito tempo (porque cálculos estatísticos podem sofrer muito com multicolinearidade). Você pode considerar o tema sob um ponto de vista estatístico, ilustrando utilizando os conceitos de variância, covariância e correlação. Você pode imaginar cada recurso como tendo diferentes componentes informativos, misturadas em diferentes proporções:
- variância única: A redundância é exclusivo para um determinado recurso, e quando correlacionados ou associados com a resposta, ele pode adicionar uma contribuição direta na previsão da própria resposta.
- variância compartilhada: A redundância é comum com outras características por causa de uma relação de causalidade entre eles. Neste caso, se a informação compartilhada é relevante para a resposta, o algoritmo de aprendizagem terá uma escolha momento difícil que apresentam para pegar. E quando um recurso é captado pela sua variância compartilhada, ele também traz ao longo de seu ruído aleatório específico.
- componente de ruído aleatório: Informações devido a problemas de medição ou aleatoriedade que não é útil no mapeamento da resposta, mas que, por vezes, por mero acaso (sim, sorte ou azar é parte de ser aleatório), podem aparecer relacionada com a resposta em si.
variância única, variância compartilhada, e se fundem ruído aleatório em conjunto e não podem ser separados facilmente. Usando seleção de recursos, a reduzir o impacto do ruído, selecionando o conjunto mínimo de recursos que funcionam melhor com o seu algoritmo de aprendizagem de máquina. Outra abordagem possível é baseada na idéia de que você pode fundir essa informação redundante em conjunto, utilizando uma média ponderada, criando assim um novo recurso cujo principal componente é a variância compartilhada de vários recursos, e seu ruído é uma média de ruído anterior e variância única.
Video: Vídeo do Curso Aprenda Mineração de Dados e Aprendizado de Máquina
Por exemplo, se A, B, e C compartilham a mesma variância, empregando compressão você pode obter um componente (por isso é chamado um novo recurso) composta pelo somatório ponderado dos três funcionalidades, tais como 0,5 * A + 0,3 * B + 0,2 * C. Você decide os pesos com base em uma técnica particular chamado decomposição em valores singulares (SVD).
SVD tem várias aplicações, não apenas em compressão de dados, mas também em encontrar fatores latentes (características escondidas em nossos dados) e em sistemas de recomendação, que são sistemas para descobrir o que alguém pode gostar em termos de produtos ou filmes baseados em seleções anteriores. Para fins de compressão, você pode considerar uma técnica chamada análise de componentes principais (PCA), que usa partes das saídas SVD.
PCA funciona de forma simples e direta: Leva como entrada um conjunto de dados e retorna um novo conjunto de dados, reconstruído da mesma forma. Neste novo conjunto de dados, todas as características, chamados de componentes, não estão correlacionados, e os componentes mais informativos aparecer no início do conjunto de dados.
PCA também oferece um relatório de como cada componente equivale ao conjunto de dados inicial. Pela soma do valor informativo dos novos componentes, você pode achar que alguns componentes expressar 90 por cento ou mesmo 95 por cento da informação original. Tomando apenas os poucos componentes é equivalente a usar os dados originais, alcançando assim uma compressão de seus dados através da remoção de redundâncias e reduzindo o número de recursos.
Como exemplo, o exemplo a seguir refere-se ao conjunto de dados Boston e usa a implementação Scikit do Python da PCA. R tem muitas funções equivalentes, sendo o mais popular PRINCOMP, que você pode aprender sobre usando o comando de ajuda (PRINCOMP) para obter mais informações e alguns exemplos de seu uso. Aqui está o trecho de código Python para testar a eficácia de um PCA:
de sklearn.datasets load_boston importação
de sklearn.decomposition PCA importação
em escala de importação sklearn.preprocessing
importar numpy como np
de sklearn.datasets load_boston importação
de sklearn.decomposition PCA importação
em escala de importação sklearn.preprocessing
importar numpy como np
Boston = load_boston ()
X, Y = boston.data, boston.target
PCA = PCA (). ajuste (X)
Depois de calcular o PCA, o exemplo passa a imprimir o poder informativo deste novo conjunto de dados reconstruído:
de impressão (`` .join ([ `% 5i` % (k + 1) para k na faixa (13)]))
print (`` .join ([ `-----`] * 13))
print (`` .join (["% 0.3f" % (Variância) para variância
em pca.explained_variance_ratio_]))
print (`` .join (["% 0.3f" % (Variância) para variância
em np.cumsum (pca.explained_variance_ratio_)]))
Video: Compressão de Dados
1 2 3 4 5 6 7 8 9 ...
----- ----- ----- ----- ----- ----- ----- ----- ----- ...
0,806 0,163 0,021 0,007 0,001 0,001 0,000 0,000 0,000 ...
0,806 0,969 0,990 0,997 0,998 0,999 1,000 1,000 1,000 ...
No relatório impresso, os treze componentes representam um conjunto de dados cumulativo que excede 85 por cento do original quando se leva em conta seis componentes de 13 e 95 por cento com nove componentes. Usando um conjunto de dados reconstruído com menos componentes do que o número das características originais, muitas vezes revela benéfico para os processos de aprendizado de máquina, reduzindo o uso de memória e tempo de computação e por que é a variância das estimativas, assegurando assim a estabilidade dos resultados.