O que você acha da aplicação de técnicas de aprendizado de máquina, como florestas aleatórias ou regressão penalizada (com pena de L1 ou L2 ou uma combinação delas) em pequenos estudos clínicos de amostra quando o objetivo é isolar preditores interessantes em um contexto de classificação? Não é uma pergunta sobre seleção de modelos, nem estou perguntando sobre como encontrar estimativas ideais de efeito / importância variável. Não pretendo fazer inferência forte, mas apenas usar modelagem multivariada, evitando testar cada preditor contra o resultado do interesse, um de cada vez, e levando em consideração suas inter-relações.
Eu estava pensando se essa abordagem já foi aplicada nesse caso extremo, digamos 20 a 30 indivíduos com dados em 10 a 15 variáveis categóricas ou contínuas. Não é exatamente o caso e acho que o problema aqui está relacionado ao número de classes que tentamos explicar (que geralmente não são bem equilibradas) e ao (muito) pequeno n. Estou ciente da enorme literatura sobre esse tópico no contexto da bioinformática, mas não encontrei nenhuma referência relacionada a estudos biomédicos com fenótipos psicometricamente medidos (por exemplo, em questionários neuropsicológicos).
Alguma dica ou indicação de papéis relevantes?
Atualizar
Estou aberto a outras soluções para analisar esse tipo de dados, por exemplo, o algoritmo C4.5 ou seus derivados, métodos de regras de associação e quaisquer técnicas de mineração de dados para classificação supervisionada ou semi-supervisionada.
Respostas:
Também não vi isso usado fora da bioinformática / aprendizado de máquina, mas talvez você possa ser o primeiro :)
Como um bom representante do método do método de amostra pequena da bioinformática, a regressão logística com regularização de L1 pode dar um bom ajuste quando o número de parâmetros é exponencial no número de observações, intervalos de confiança não assintóticos podem ser criados usando desigualdades do tipo Chernoff (ou seja, Dudik, (2004) por exemplo). Trevor Hastie fez algum trabalho aplicando esses métodos para identificar interações genéticas. No artigo abaixo, ele o usa para identificar efeitos significativos de um modelo com 310.637 parâmetros ajustáveis, ajustados a uma amostra de 2200 observações.
"Análise de associação em todo o genoma por regressão logística penalizada por laço". Autores: Hastie, T; Sobel, E; Wu, T.T; Chen, Y. F; Lange, K Bioinformatics Vol: 25 Edição: 6 ISSN: 1367-4803 Data: 03/2009 Páginas: 714 - 721
Apresentação relacionada de Victoria Stodden ( seleção de modelos com muito mais variáveis que observações )
fonte
Eu teria muito pouca confiança na generalização dos resultados de uma análise exploratória com 15 preditores e um tamanho amostral de 20.
Em tais circunstâncias, meu conselho seria geralmente limitar as análises a relacionamentos bivariados. Se você adotar uma perspectiva bayesiana, diria que suas expectativas anteriores são igualmente senão mais importantes que os dados.
fonte
Uma regra prática comum é ter pelo menos 10 vezes o número de instâncias de dados de treinamento (para não falar de dados de teste / validação etc.), pois existem parâmetros ajustáveis no classificador. Lembre-se de que você tem um problema no qual precisa não apenas dados adequados, mas também dados representativos . No final, não há regra sistemática porque existem muitas variáveis ao tomar essa decisão. Como Hastie, Tibshirani e Friedman dizem em The Elements of Statistical Learning (veja o Capítulo 7):
Se você é novo neste campo, recomendo a leitura deste pequeno artigo sobre "Reconhecimento de Padrões" da Enciclopédia de Engenharia Biomédica, que fornece um breve resumo de alguns problemas de dados.
fonte
Posso garantir que a RF funcionaria nesse caso e sua medida de importância seria bastante perspicaz (porque não haverá uma grande cauda de atributos sem importância enganosos, como no padrão (n << p) s). Não me lembro agora de nenhum artigo que lide com um problema semelhante, mas vou procurá-lo.
fonte
Se você tiver entradas discretas, estou escrevendo um programa para prever valores ausentes de uma entrada binária, dadas as entradas anteriores. Quaisquer categorias, por exemplo, "1 de 6", podem ser convertidas em bits binários e funcionarão perfeitamente; isso não afetará.
O objetivo do algoritmo que estou escrevendo é aprender o mais rápido possível matematicamente. Conseqüentemente, possui uma complexidade muito pequena de tempo e espaço (complexidade de espaço em torno de O (4 ^ N) !.
Mas, para isso, você obtém um aprendizado essencialmente único, para qualquer sistema cujo estado possa ser expresso como um vetor de bits. Por exemplo, um somador completo possui 8 estados de entrada distintos. O algoritmo aprenderá um somador completo perfeitamente após apenas 8 amostras de treinamento distintas. Não apenas isso, mas você pode dar a resposta e fazer com que ela preveja a pergunta, ou dar parte da resposta e parte da pergunta e preencher o restante.
Se os dados de entrada tiverem muitos bits, serão bastante intensivos em computação e memória. Mas se você tiver muito poucas amostras, ou mais ou menos o objetivo do projeto, ele fornecerá as melhores previsões possíveis.
Você apenas o treina com vetores de bits, incluindo um vetor de bits cujos bits são desconhecidos. Para obter uma previsão, você também alimenta um vetor de bits, quais bits são desconhecidos e quais bits você deseja que ele preveja.
Código fonte disponível aqui: https://sourceforge.net/p/aithroughlogiccompression/code/HEAD/tree/BayesianInferenceEngine/src/_version2/
fonte