Estou ficando um pouco confuso sobre a seleção de recursos e o aprendizado de máquina e fiquei imaginando se você poderia me ajudar. Eu tenho um conjunto de dados de microarray que é classificado em dois grupos e possui milhares de recursos. Meu objetivo é obter um pequeno número de genes (meus recursos) (10 a 20) em uma assinatura que, em teoria, poderei aplicar a outros conjuntos de dados para classificar otimamente essas amostras. Como não tenho muitas amostras (<100), não estou usando um conjunto de teste e treinamento, mas usando a validação cruzada Deixe um fora para ajudar a determinar a robustez. Eu li que é preciso executar a seleção de recursos para cada divisão das amostras, ou seja
- Selecione uma amostra como o conjunto de teste
- Nas amostras restantes, execute a seleção de recursos
- Aplique o algoritmo de aprendizado de máquina às amostras restantes usando os recursos selecionados
- Teste se o conjunto de testes está classificado corretamente
- Vá para 1.
Se você fizer isso, poderá obter genes diferentes a cada vez; então, como obter seu classificador genético ótimo "final"? ou seja, qual é o passo 6.
O que eu quero dizer com ótimo é a coleção de genes que qualquer outro estudo deve usar. Por exemplo, digamos que eu tenho um conjunto de dados de câncer / normal e desejo encontrar os 10 principais genes que classificarão o tipo de tumor de acordo com um SVM. Gostaria de conhecer o conjunto de genes mais os parâmetros SVM que poderiam ser usados em outras experiências para ver se poderiam ser usados como teste de diagnóstico.
fonte
Respostas:
Essa é uma pergunta muito boa que eu enfrentei ao trabalhar com dados de SNPs ... E não encontrei nenhuma resposta óbvia na literatura.
Independentemente de você usar o CV LOO ou K-fold, você terá recursos diferentes, pois a iteração de validação cruzada deve ser o loop mais externo, como você disse. Você pode pensar em algum tipo de esquema de votação que classificaria os n-vetores de recursos obtidos no seu LOO-CV (não se lembra do artigo, mas vale a pena conferir o trabalho de Harald Binder ou Antoine Cornuéjols ). Na ausência de uma nova amostra de teste, o que geralmente é feito é reaplicar o algoritmo ML a toda a amostra depois que você encontrar seus parâmetros validados cruzados ideais. Mas, procedendo dessa maneira, não é possível garantir que não haja ajuste excessivo (uma vez que a amostra já foi usada para otimização do modelo).
Como você está falando do SVM, pode procurar o SVM penalizado .
fonte
Em princípio:
Faça suas previsões usando um único modelo treinado em todo o conjunto de dados (para que haja apenas um conjunto de recursos). A validação cruzada é usada apenas para estimar o desempenho preditivo do modelo único treinado em todo o conjunto de dados. É VITAL ao usar a validação cruzada que, em cada dobra, você repete todo o procedimento usado para ajustar-se ao modelo principal; caso contrário, pode acabar com um viés otimista substancial no desempenho.
Para ver por que isso acontece, considere um problema de classificação binária com 1000 recursos binários, mas apenas 100 casos, onde os casos e os recursos são puramente aleatórios, para que não haja relação estatística entre os recursos e os casos. Se treinarmos um modelo primário no conjunto de dados completo, sempre podemos obter um erro zero no conjunto de treinamento, pois há mais recursos do que casos. Podemos até encontrar um subconjunto de recursos "informativos" (que são correlacionados por acaso). Se, em seguida, executarmos a validação cruzada usando apenas esses recursos, obteremos uma estimativa de desempenho melhor do que a adivinhação aleatória. O motivo é que, em cada dobra do procedimento de validação cruzada, há algumas informações sobre os casos retidos usados para teste, pois os recursos foram escolhidos porque eram bons para prever, todos eles, incluindo aqueles mantidos. Obviamente, a verdadeira taxa de erro será 0,5.
Se adotarmos o procedimento adequado e executar a seleção de recursos em cada dobra, não haverá mais informações sobre os casos retidos na escolha dos recursos usados nessa dobra. Se você usar o procedimento adequado, nesse caso, obterá uma taxa de erro de cerca de 0,5 (embora isso varie um pouco para diferentes realizações do conjunto de dados).
Bons papéis para ler são:
Christophe Ambroise, Geoffrey J. McLachlan, "Viés de seleção na extração de genes com base em dados de expressão de genes de microarray", PNAS http://www.pnas.org/content/99/10/6562.abstract
que é altamente relevante para o PO e
Gavin C. Cawley, Nicola LC Talbot, "Sobre adaptação na seleção de modelos e viés de seleção subsequente na avaliação de desempenho", JMLR 11 (Jul): 2079-2107, 2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html
o que demonstra que a mesma coisa pode ocorrer facilmente na seleção de modelos (por exemplo, ajustando os hiperparâmetros de um SVM, que também precisam ser repetidos em cada iteração do procedimento CV).
Na prática:
Eu recomendaria usar o Bagging e o erro fora da bolsa para estimar o desempenho. Você obterá um modelo de comitê usando muitos recursos, mas isso é realmente uma coisa boa. Se você usar apenas um único modelo, será provável que você ajuste demais o critério de seleção de recurso e termine com um modelo que fornece previsões mais ruins do que um modelo que usa um número maior de recursos.
O livro de Alan Millers sobre seleção de subconjuntos em regressão (monografias de Chapman e Hall sobre estatística e probabilidade aplicada, volume 95) fornece um bom conselho (página 221) de que se o desempenho preditivo é a coisa mais importante, não faça nenhuma seleção de recurso , basta usar a regressão de cumeeira. E isso está em um livro sobre seleção de subconjuntos !!! ; o)
fonte
Para adicionar ao chl: Ao usar máquinas de vetores de suporte, um método de penalização altamente recomendado é a rede elástica. Esse método reduzirá os coeficientes em direção a zero e, em teoria, retém os coeficientes mais estáveis do modelo. Inicialmente, era usado em uma estrutura de regressão, mas é facilmente estendido para uso com máquinas de vetores de suporte.
A publicação original : Zou e Hastie (2005): Regularização e seleção de variáveis via rede elástica. JRStatist.Soc. B, 67-2, pp. 301-320
Rede elástica para SVM : Zhu & Zou (2007): Seleção de Variáveis para a Máquina de Vetores de Suporte: Tendências em Computação Neural, capítulo 2 (Editores: Chen e Wang)
melhorias na rede elástica Jun-Tao e Ying-Min (2010): uma rede elástica aprimorada para classificação de câncer e seleção de genes: Acta Automatica Sinica, 36-7, pp.976-981
fonte
Na etapa 6 (ou 0), você executa o algoritmo de detecção de recurso em todo o conjunto de dados.
fonte
É assim que seleciono os recursos. Suponha que, com base em determinado conhecimento, existem dois modelos a serem comparados. O modelo A usa os recursos no.1 a não. 10. O modelo B usa no.11 a não. 20. Vou aplicar o LOO CV ao modelo A para obter seu desempenho fora da amostra. Faça o mesmo no modelo B e compare-os.
fonte
Não tenho certeza sobre problemas de classificação, mas, no caso de seleção de recursos para problemas de regressão, Jun Shao mostrou que o CV de licença individual é assintoticamente inconsistente , ou seja, a probabilidade de selecionar o subconjunto adequado de recursos não converge para 1, pois o número de amostras aumenta. Do ponto de vista prático, Shao recomenda uma validação cruzada de Monte-Carlo ou um procedimento de deixar muitos de fora.
fonte