Qual é a seleção de variável / recurso que você prefere para a classificação binária quando há muito mais variáveis / recurso do que observações no conjunto de aprendizado? O objetivo aqui é discutir qual é o procedimento de seleção de recurso que reduz melhor o erro de classificação.
Podemos corrigir as notações de consistência: para , seja o conjunto de observações de aprendizado do grupo . Então é o tamanho do conjunto de aprendizado. Definimos como o número de recursos (ou seja, a dimensão do espaço do recurso). Deixe denotar a ésima coordenada de .
Por favor, forneça referências completas se você não puder fornecer os detalhes.
EDIT (atualizado continuamente): Procedimentos propostos nas respostas abaixo
- Seleção para frente gananciosa Procedimento de seleção variável para classificação binária
- Eliminação reversa Procedimento de seleção variável para classificação binária
- Metropolis scan / MCMC Procedimento de seleção variável para classificação binária
- regressão logística penalizada Procedimento de seleção variável para classificação binária
Como este é um wiki da comunidade, pode haver mais discussão e atualização
Eu tenho uma observação: em certo sentido, todos vocês dão um procedimento que permite a ordenação de variáveis, mas não a seleção de variáveis (você é bastante evasivo sobre como selecionar o número de recursos, acho que todos usam validação cruzada?) as respostas nessa direção? (como este é um wiki da comunidade, você não precisa ser o responsável pela resposta para adicionar informações sobre como selecionar o número de variáveis? Abri uma pergunta nessa direção aqui Validação cruzada em dimensão muito alta (para selecionar o número de variáveis variáveis usadas em classificação dimensional muito alta) )
fonte
Respostas:
Uma abordagem muito popular é a regressão logística penalizada, na qual se maximiza a soma da probabilidade logarítmica e um termo de penalização que consiste na norma L1 ("laço"), na norma L2 ("cume"), uma combinação das duas ("elástico") ou uma penalidade associada a grupos de variáveis ("laço de grupo"). Esta abordagem tem várias vantagens:
fonte
Tenho uma ligeira preferência por florestas aleatórias de Leo Breiman & Adele Cutleer por vários motivos:
Alguns autores argumentaram que o desempenho foi tão bom quanto o SVM ou o Gradient Boosting Machines (veja, por exemplo, Cutler et al., 2009, para o último ponto).
Uma cobertura completa de suas aplicações ou vantagens pode estar fora do tópico, por isso sugiro os Elementos de Aprendizagem Estatística de Hastie et al. (cap. 15) e Sayes et al. (2007) para leituras adicionais.
Por último, mas não menos importante, ele possui uma boa implementação em R, com o pacote randomForest . Outros pacotes R também o estendem ou usam, por exemplo, parte e sinal de intercalação .
Referências:
Cutler, A., Cutler, DR, e Stevens, JR (2009). Tree-Based Methods, in High-Dimensional Data Analysis in Cancer Research , Li, X. e Xu, R. (eds.), Pp. 83-101, Springer.
Saeys, Y., Inza, I. e Larrañaga, P. (2007). Uma revisão das técnicas de seleção de recursos em bioinformática. Bioinformatics , 23 (19) : 2507-2517.
fonte
Digitalização de metrópoles / MCMC
dE
diferença o erro no novo conjunto menos o erro no conjunto anterior.min(1;exp(-beta*dE))
aceite essa alteração, caso contrário, rejeite-a e tente outra alteração aleatória.Você pode estendê-lo com algum controle mais sábio do
beta
parâmetro. A maneira mais simples é usar o recozimento simulado quando você aumentabeta
(abaixa a temperatura na analogia física) ao longo do tempo para reduzir as flutuações e conduzir o algoritmo ao mínimo. Mais difícil é usar a troca de réplicas .fonte
Se você está interessado apenas no desempenho da generalização, provavelmente é melhor não executar nenhuma seleção de recurso e usar a regularização (por exemplo, regressão de crista). Houve vários desafios abertos na comunidade de aprendizado de máquina na seleção de recursos, e os métodos que se baseiam na regularização e não na seleção de recursos geralmente têm um desempenho tão bom quanto, se não melhor.
fonte
Seleção para frente gananciosa.
Os passos para este método são:
fonte
Eliminação para trás.
Comece com o conjunto completo, treine iterativamente o classificador nos recursos restantes e remova-o com a menor importância; pare quando o erro do classificador aumentar rapidamente / se tornar inaceitável.
A importância pode ser obtida removendo iterativamente cada recurso e verifique o aumento de erro ou adaptado do classificador, se ele o produzir (como no caso da Floresta Aleatória).
fonte
(n - k - p) / (k - 1) * ...
comn
o número de observações,k
o número de classes (2 aqui) ep
o número de variáveis.n - 2 - p < 0
quandon < p + 2
(qual é o caso aqui) que leva aF < 0
. Isso não seria um problema?