Eu tenho características esparsas que são preditivas, também tenho algumas características densas que também são preditivas. Preciso combinar esses recursos para melhorar o desempenho geral do classificador.
Agora, quando tento combiná-los, os recursos densos tendem a dominar mais sobre os recursos esparsos, oferecendo, portanto, apenas 1% de melhoria na AUC em comparação com o modelo com apenas recursos densos.
Alguém já se deparou com problemas semelhantes? Realmente aprecio as entradas, meio que presas. Eu já tentei muitos classificadores diferentes, combinação de classificadores, transformações de recursos e processamento com algoritmos diferentes.
Obrigado antecipadamente pela ajuda.
Editar :
Eu já tentei as sugestões que são dadas nos comentários. O que eu observei é que, para quase 45% dos dados, recursos esparsos têm um desempenho muito bom, eu recebo a AUC de cerca de 0,9 com apenas recursos esparsos, mas para os demais, os recursos densos têm um desempenho bem com AUC de cerca de 0,75. Eu meio que tentei separar esses conjuntos de dados, mas recebo a AUC de 0,6; portanto, não posso simplesmente treinar um modelo e decidir quais recursos usar.
Em relação ao snippet de código, experimentei tantas coisas que não sei exatamente o que compartilhar :(
fonte
Respostas:
Parece um trabalho para a Análise de componentes principais. No Scikit, o PCA é bem implementado e me ajudou muitas vezes.
O PCA, de certa maneira, combina seus recursos. Ao limitar o número de componentes, você busca seu modelo com dados sem ruído (na melhor das hipóteses). Porque seu modelo é tão bom quanto seus dados.
Considere abaixo um exemplo simples.
Por que eu escolhi 80? Quando planto a variação cumulativa, obtive isso abaixo, o que me diz que, com ~ 80 componentes, alcanço quase toda a variação.
Então, eu diria que tente, use em seus modelos. Isso deve ajudar.
fonte
A melhor maneira de combinar recursos é através de métodos de conjunto. Basicamente, existem três métodos diferentes: ensacamento, reforço e empilhamento. Você pode usar o Adabbost aumentado com a seleção de recursos (considere recursos esparsos e densos) ou com base em empilhamento (recurso aleatório - subespaço aleatório). Prefiro a segunda opção: você pode treinar um conjunto de alunos básicos (decisões. Árvores) usando aleatoriamente subconjuntos e recurso aleatório (mantenha os alunos da base de treinamento até cobrir todo o conjunto de recursos) O próximo passo é testar o conjunto de treinamento para gerar os metadados. Use esses metadados para treinar um meta classificador. O meta classificador descobrirá qual recurso é mais importante e que tipo de relacionamento deve ser utilizado
fonte
Os grupos de variáveis podem ser multicolineares ou a conversão entre esparsos e densos pode dar errado. Você já pensou em usar um classificador / classificação de votação? http://scikit-learn.org/stable/modules/ensemble.html Dessa forma, você pode lidar com os dois problemas acima.
fonte
Além de algumas das sugestões acima, eu recomendaria o uso de uma abordagem de modelagem em duas etapas .
fonte
Experimente o PCA apenas em recursos esparsos e combine a saída PCA com recursos densos.
Assim, você terá um conjunto denso de recursos (originais) + conjunto denso de recursos (originalmente escassos).
+1 para a pergunta. Por favor, atualize-nos com os resultados.
fonte