Quais são os métodos / implementação disponíveis no R / Python para descartar / selecionar recursos importantes / sem importância nos dados? Meus dados não têm rótulos (não supervisionados).
Os dados têm ~ 100 recursos com tipos mistos. Alguns são numéricos, enquanto outros são binários (0/1).
r
feature-selection
python
aprendiz
fonte
fonte
Respostas:
Ele tem um ano, mas eu ainda sinto que é relevante, então eu só queria compartilhar minha implementação em python da Principal Feature Analysis (PFA), conforme proposto no artigo ao qual Charles vinculou em sua resposta.
Você pode usá-lo assim:
Isso segue rigorosamente o algoritmo descrito no artigo. Acho que o método tem promessas, mas sinceramente não acho que seja a abordagem mais robusta para a seleção de recursos não supervisionados. Vou postar uma atualização se tiver algo melhor.
fonte
fit
função ignora a Etapa 1 e executa a PCA no conjunto de dados original .O pacote sparcl no R executa agrupamentos hierárquicos e esparsos de K-means esparsos. Isso pode ser útil. http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2930825/
fonte
A Análise de recursos principais parece ser uma solução para a seleção de recursos não supervisionados. Está descrito neste artigo .
fonte
Eu encontrei um link que poderia ser útil, essas são implementações do matlab, elas podem funcionar para você http://www.cad.zju.edu.cn/home/dengcai/Data/MCFS.html é uma seleção de recursos multicluster método, você pode encontrar uma base sólida sobre isso em artigos recentes. Deixe-me saber se funciona para você
fonte
Existem muitas opções disponíveis no
R
. Um bom lugar para procurar é ocaret
pacote que fornece uma boa interface para muitos outros pacotes e opções. Você pode dar uma olhada no site aqui . Existem muitas opções por aí, mas vou ilustrar uma.Aqui está um exemplo de uso de um filtro simples usando os
R
conjuntos de dados "mtcars" integrados (mostrados abaixo).Agora, algumas configurações de código (carregamento de pacotes etc.):
E podemos ajustar um modelo simples para selecionar variáveis:
Visualizando os resultados, obtemos:
Finalmente, podemos plotar as variáveis selecionadas (in
fit1$optVariables
) em relação ao resultadompg
:Resultando neste gráfico:
fonte
mpg
como resultado. Existe uma maneira de usar métodos como estes em modelos não supervisionados?O
nsprcomp
pacote R fornece métodos para análises esparsas de componentes principais, que podem atender às suas necessidades.Por exemplo, se você acredita que seus recursos são geralmente correlacionados linearmente e deseja selecionar os cinco principais, você pode executar um PCA escasso com um máximo de cinco recursos e limitar o primeiro componente principal:
Como alternativa, se você deseja capturar a natureza ortogonal dos recursos, pode selecionar o recurso principal de cada um dos cinco principais PCs, limitando cada PC a um recurso:
Um conjunto desses também pode ser útil; ou seja, os recursos que chegam ao topo de maneira consistente em diferentes métodos provavelmente explicam uma grande quantidade de variação no espaço do recurso. Tendo brincado
nsprcomp
um pouco, parece que os dois primeiros métodos aumentam ~ 1/2 dos mesmos recursos para o topo. Dito isto, otimizar esse processo pode ser um esforço empírico.fonte