Entendendo os parâmetros da função da Base Gaussiana a serem usados ​​na regressão linear

12

Eu gostaria de aplicar a função de base gaussiana em uma implementação de regressão linear. Infelizmente, estou tendo dificuldade para entender alguns parâmetros na função base. Especificamente μ e σ .

Meu conjunto de dados é uma matriz de 10.000 x 31. 10.000 amostras e 31 recursos. Eu li que "Cada função básica converte o vetor de entrada x em um valor escalar". Então, eu suponho que x é 1 amostra para um vetor 1 x 31. A partir daqui estou confuso. Qual é exatamente o parâmetro μj ? Eu li que isso governa os locais das funções básicas. Então não é isso que significa alguma coisa? Também estou impressionado com o índice j ( μ e ϕ ), isso me faz pensar na jª linha. Mas isso não parece fazer sentido. O μj um vetor? Agora para o σque "governa a escala espacial". O que exatamente é isso? Eu já vi algumas implementações que tentam valores como .1, .5, 2.5 para esse parâmetro. Como esses valores são calculados? Tenho pesquisado e procurado exemplos para aprender, mas ainda não consegui encontrar nenhum. Qualquer ajuda ou direção é muito apreciada! Obrigado.

user2743
fonte

Respostas:

11

Como você está confuso, deixe-me começar relatando o problema e respondendo suas perguntas uma a uma. Você tem um tamanho de amostra de 10.000 e cada amostra é descrita por um vetor de recurso . Se você deseja executar a regressão usando funções de base radial gaussiana, procura uma função da forma f ( x ) = j w jg j ( x ; μ j , σ j ) , j = 1 .. m onde g euxR31

f(x)=jwjgj(x;μj,σj),j=1..m
gi são o seu funções básicas. Especificamente, você precisa encontrar os pesosm modo que, para os parâmetros determinados μ j e σ j você minimiza o erro entre ywjμjσjy e o correspondente predição y = f ( x ) - tipicamente vai minimizar o erro de mínimos quadrados.y^f(x^)

O que exatamente é o parâmetro Mu subscrito j?

Você precisa encontrar funções básicas g j . (Você ainda precisa determinar o número m ) Cada função básica terá um µ j e um σ jmgjmμjσj (também desconhecido). O índice varia de 1 a m .j1m

O um vetor?μj

Sim, é um ponto em . Em outras palavras, é um ponto em seu espaço de recurso e umµdeve ser determinado para cada uma dasmfunções básicas.R31μm

Eu li que isso governa os locais das funções básicas. Então não é isso que significa alguma coisa?

O função base t h está centrada em µ j . Você precisará decidir onde esses locais estão. Portanto, não, não é necessariamente o meio de nada (mas veja mais abaixo maneiras de determiná-lo)jthμj

Agora, o sigma que "governa a escala espacial". O que exatamente é isso?

é mais fácil de entender se recorrermos às funções básicas.σ

Ela ajuda a pensar nas funções de base radial de Gauss em dimensons mais baixos, dizem ou R 2 . Em R 1 a função de base radial Gaussiana é apenas a curva de sino conhecido. O sino pode, é claro, ser estreito ou largo. A largura é determinada por σ - quanto maior σ, mais estreita é a forma do sino. Em outras palavras, σR1R2R1σσσ escala a largura da forma do sino. Portanto, para = 1, não temos escala. Para grandesσ , temos escala substancial.σ

Você pode perguntar qual é o objetivo disso. Se você pensar na campainha cobrindo uma parte do espaço (uma linha em ) - uma campainha estreita cobrirá apenas uma pequena parte da linha *. Os pontos x próximos ao centro do sino terão um valor maior de g j ( x ) . Os pontos distantes do centro terão um valor menor de g j ( x ) . A escala tem o efeito de empurrar pontos para mais longe do centro - à medida que a campainha estreita, os pontos serão localizados mais longe do centro - reduzindo o valor deR1xgj(x)gj(x)gj(x)

Cada função base converte o vetor de entrada x em um valor escalar

Sim, você está avaliando as funções básicas em algum momento xR31 .

exp(xμj222σj2)

Você obtém um escalar como resultado. O resultado escalar depende da distância do ponto do centro μ jxμj dado por e do escalar σ j .xμjσj

Eu já vi algumas implementações que tentam valores como .1, .5, 2.5 para esse parâmetro. Como esses valores são calculados?

É claro que esse é um dos aspectos interessantes e difíceis do uso de funções de base radial gaussiana. se você pesquisar na web, encontrará muitas sugestões sobre como esses parâmetros são determinados. Descreverei em termos muito simples uma possibilidade baseada no agrupamento. Você pode encontrar essa e várias outras sugestões online.

Comece agrupando suas 10000 amostras (você pode primeiro usar o PCA para reduzir as dimensões seguidas pelo armazenamento em cluster k-Means). Você pode permitir que seja o número de clusters encontrados (normalmente empregando validação cruzada para determinar o melhor m ). Agora, crie uma função de base radial g j para cada cluster. Para cada função de base radial, μ jmmgjμj é o centro (por exemplo, média, centróide, etc.) do cluster. Deixe refletir a largura do cluster (por exemplo, raio ...) Agora vá em frente e faça sua regressão (esta descrição simples é apenas uma visão geral - ele precisa de muito trabalho a cada etapa!)σj

* Obviamente, a curva de sino é definida de - a portanto terá um valor em qualquer lugar da linha. No entanto, os valores longe do centro são insignificantes

martino
fonte
Boa resposta! No entanto, procurando por , não terminamos com a regressão da máquina de vetores de suporte (com kernel gaussiano)? μ
O_Devinyak
@ O_Devinyak- Muitos métodos de expansão de base exigirão algum tipo de estimativa de parâmetro. Existem muitas maneiras de encontrar então eu não acho que isso significa necessariamente que estamos reduzindo o problema ao SVR. Para ser sincero, não sou especialista em SVR, mas a função de perda minimizada é certamente diferente e tenho certeza de que muitos dos recursos são ignorados - é o caminho do vetor de suporte. Com funções básicas, usamos todas as funções para avaliação, mas, felizmente, o suporte compacto significa que muitas das funções básicas retornam valores nulos ou nulos. Enfim, seria uma boa pergunta sobre este fórumμ
martino 15/10
Por que precisamos de uma escala em vez de uma matriz de covariância que fazer a função de base parece que a parte exponencial de um Gaussian multivariada?σj
stackunderflow
1

Deixe-me tentar dar uma explicação simples. Em tal notação, pode ser o número da linha, mas também pode ser o número da característica. Se escrevermos y = β 0 + j = 1 : 31 β j ϕ j ( x ), então j indica o número da característica, y é o vetor da coluna , y é o vetor da coluna, β j é escalar e ϕ j ( x ) é o vetor da coluna. Se escrevermos y j = β ϕ j (jy=β0+j=1:31βjϕj(x)jyβjϕj(x) entãoyj=βϕj(x) indica o número da linha, y j é escalar, βé o vetor da linha. A notação em que i denota linha e j denota coluna é mais comum, portanto, vamos usar a primeira variante.jyjβé vetor de coluna e ϕj(x)ij

Apresentando função gaussiana base em regressão linear, (escalar) já não depende dos valores numéricos das características x i (vector), mas sobre as distâncias entre x i e o centro de todos os outros pontos u i . Em tal forma y i não depende de se j valor característica -ésimo de i observação -ésimo é alta ou pequena, mas depende de se j valor característica -ésimo está perto ou longe da média para que j -feature μ i j . entãoyixixiμiyijijjμijμjnão é um parâmetro, pois não pode ser ajustado. É apenas uma propriedade de um conjunto de dados. O parâmetro é um valor escalar, controla a suavidade e pode ser ajustado. Se for pequena, as pequenas mudanças na distância terão um grande efeito (lembre-se de uma gaussiana acentuada: todos os pontos já localizados a uma pequena distância do centro têm valores y minúsculos ). Se for grande, as pequenas mudanças na distância terão um efeito baixo (lembre-se de gaussiano plano: a diminuição de y com o aumento da distância do centro é lenta). O valor ideal de σ 2 deve ser procurado (geralmente é encontrado com validação cruzada).σ2yyσ2

O_Devinyak
fonte
0

xR31μjR31e(xμj)Σj1(xμj)ΣjR31×31jj vetor de th. Similarmente,Σjj

Karel Macek
fonte