Eu posso treinar uma regressão logística R
usando
glm(y ~ x, family=binomial(logit)))
mas, IIUC, isso otimiza a probabilidade do log.
Existe uma maneira de treinar o modelo usando a função de perda linear ( ) (que neste caso é igual à distância total da variação )?
Ou seja, dado um vetor numérico e um vetor bit (lógico) y , quero construir uma função monotônica (de fato, crescente) f de modo que ∑ | f ( x ) - y | é minimizado.
Veja também
Respostas:
O que você quer fazer não existe porque é, por falta de palavras melhores, matematicamente falho.
Mas primeiro, enfatizarei por que acho que as premissas da sua pergunta são sólidas. Tentarei então explicar por que acho que as conclusões que você tira delas se baseiam em um mal-entendido do modelo logístico e, finalmente, vou sugerir uma abordagem alternativa.
Vou denotar suasnobservações (as letras em negrito denotam vetores) que se encontram noespaço dimensionalp(a primeira entrada de x{(xxi,yi)}ni=1 n p xxi p<n yi∈[0,1] f(xxi)=f(xx′iββ) xx′iββ n p
Você está certo de que, se pretende usar o TVD como critério para avaliar o modelo ajustado, é razoável esperar que seu ajuste otimize o mesmo critério entre todos os candidatos possíveis em seus dados. Conseqüentemente
Essas considerações em conjunto implicam que:
Uma solução, como fica claro na exposição acima, é abandonar a exigência de imparcialidade. Uma maneira popular de influenciar o estimador (com alguma interpretação bayesiana anexada) é incluir um termo de encolhimento. Se redimensionarmos a resposta:
fonte
Não sei por que você desejaria usar a perda L1 para algo restrito entre 0 e 1. Dependendo do seu objetivo, considere algo como perda de dobradiça, que é semelhante à perda L1 em uma direção e horizontalmente. no outro.
De qualquer forma, o código abaixo deve fazer o que você pediu. Observe que a resposta ideal é basicamente uma função de etapa.
fonte
Você pode usar o pacote glmnet para ajustar os modelos L1, L2. Não se limita à regressão logística, mas a inclui.
Aqui está a vinheta: http://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html
Há também um webminar: https://www.youtube.com/watch?v=BU2gjoLPfDc
Liblinear é bom, mas achei o glmnet mais fácil de começar. O Glmnet inclui uma função que faz validação cruzada e seleciona um parâmetro de regularização para você com base em diferentes métricas, como a AUC.
Em relação à teoria, eu lia o artigo tibshiarini sobre o laço (regularização de L1) e o capítulo sobre elementos do aprendizado estatístico. http://statweb.stanford.edu/~tibs/lasso/lasso.pdf
Sobre a perda de log, é apenas para avaliar modelos. Não é uma função de perda para o ajuste do modelo.
fonte