[R-br] Transformar Variáveis discretas em Numeros Binários -> Pre-processamento para Redes Neurais

Fernando Neto fernandoneto7 em gmail.com
Quarta Dezembro 14 18:19:32 BRST 2011


Luís, teu exemplo de repetir a coluna 5 várias vezes é pra testar a
complexidade, né? Pq pra o iris beleza, mas para essa base que eu to aqui
(adult, por exemplo), eu nao consegui substituir teu codigo pro meu. o
consumo de memória é muito grande (estorou 3GB) se eu só deixar isso dentro
do for:
...
for ( i in 1:4)
{
n<-decodeClassLabels(nom[,i])
m<-cbind(m,n)
}

...


Elias, que legal q existe essa funcao. só que nao entendi que parametros
são esses ~wool + tension. você poderia me ajudar? E sim, essa fucnao ja
converte todos os parametros discretos em colunas binárias?

Muito grato.
Me desculpe a demora, so pude responder agora.

Abraço!


### Considerando que um 'factor' é um inteiro, apenas retiramos os
'levels', e vc pode manipular
### Se ha 3 ou mais classes, o resultado nao é binário, é inteiro de 1 ao
número de classes
sapply(warpbreaks[,2:3], unclass)
sapply(warpbreaks[,2:3], unclass)-1


### converte em colunas binárias, como dummies em qualquer modelo regressão
### se há mais de duas classes, é criado mais de uma coluna
model.matrix(~wool + tension, warpbreaks)[,-1]


Em 13 de dezembro de 2011 11:30, Elias T. Krainski <
eliaskrainski em yahoo.com.br> escreveu:

> Fernando, talvez eu não tenha entendido exatamente o que você quer. Veja
> dois exemplos, considerando as colunas 2 e 3 de 'warpbreaks' (disponivel no
> 'datasets', como o 'iris').
>
> ### Considerando que um 'factor' é um inteiro, apenas retiramos os
> 'levels', e vc pode manipular
> ### Se ha 3 ou mais classes, o resultado nao é binário, é inteiro de 1 ao
> número de classes
> sapply(warpbreaks[,2:3], unclass)
> sapply(warpbreaks[,2:3], unclass)-1
>
>
> ### converte em colunas binárias, como dummies em qualquer modelo
> regressão
> ### se há mais de duas classes, é criado mais de uma coluna
> model.matrix(~wool + tension, warpbreaks)[,-1]
>
> Att.
> Elias T. Krainski
>
>   ------------------------------
> *De:* Fernando Neto <fernandoneto7 em gmail.com>
> *Para:* r-br em listas.c3sl.ufpr.br
> *Enviadas:* Segunda-feira, 12 de Dezembro de 2011 21:32
> *Assunto:* [R-br] Transformar Variáveis discretas em Numeros Binários ->
> Pre-processamento para Redes Neurais
>
> Boa noite, R-anos!
> Por favor, estou precisando ajustar os arquivos de uma base de dados para
> processamento de uma RNA.
> Estou usando a função decodeClassLabels(...) mas a operacao tá ficando
> muito custosa.
> Por exemplo
> __
> Masculino Programador
> Masculino Médico
> Feminino Programador
> __
> tem que ser
> __
> 0 1     0 1
> 1 0     1 0
> __
>
> Só que eu trato cada variável de cada vez. E acho que a operacao de
> concatenacao que eu uso:
> cbind(...) tá tornando a operacao custosa (além de que a memória passa de
> 2GB).
>
> PS.: eu faço o seguinte:
>
> *for (i in (VETOR COM AS COLUNAS A SEREM TRANSFORMADAS)){*
> *    colAux = decodeClassLabels(vector[,i])*
> *   vector = vector [,-i]*
> *   vector = cbind(vector, colAux) *
> *} *
>
> Alguém sugere algo?
>
> Muito grato!!!
> Fernando
>
> --
> ----------------------------------------------------------------
> *Fernando Neto*
> Twitter: @fernandompneto
> Facebook: facebook.com/fernandompneto
>
> Tecnologia de Ponte
> http://tecnologiadeponte.blogspot.com
> ----------------------------------------------------------------
> *fmpn2 @ CIn - UFPE*
> http://cin.ufpe.br/~fmpn2
>
> - Engenharia da Computação - Turma 2009.2 - CIn, UFPE.
> - Monitor de Estatistica e Probabilidade Para Engenharia da Computacao<http://www.cin.ufpe.br/%7Eet586/>
>
> <http://cin.ufpe.br/%7Eif672cc>
> ----------------------------------------------------------------
> Confidencialidade*: *A informação contida nesta mensagem de e-mail,
> incluindo quaisquer anexos, é confidencial e está reservada apenas à
> pessoa ou entidade para a qual foi endereçada. Se você não é o destinatário
> ou a pessoa responsável por encaminhar esta mensagem ao destinatário, você
> está, por meio desta, notificado que não deverá rever, retransmitir,
> imprimir, copiar, usar ou distribuir esta mensagem de e-mail ou quaisquer
> anexos. Caso você tenha recebido esta mensagem por engano, por favor,
> contate o remetente imediatamente e apague esta mensagem de seu computador
> ou de qualquer outro banco de dados. Muito obrigado.
> Confidentiality Notice: The information contained in this email
> message, including any attachment, is confidential and is intended only for
> the person or entity to which it is addressed. If you are neither the
> intended recipient nor the employee or agent responsible for delivering
> this message to the intended recipient, you are hereby notified that you
> may not review, retransmit, convert to hard copy, copy, use or distribute
> this email message or any attachments to it. If you have received this
> email in error, please contact the sender immediately and delete this
> message from any computer or other data bank. Thank you.
>
> --------
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>



-- 
----------------------------------------------------------------
*Fernando Neto*
Twitter: @fernandompneto
Facebook: facebook.com/fernandompneto

Tecnologia de Ponte
http://tecnologiadeponte.blogspot.com
----------------------------------------------------------------
*fmpn2 @ CIn - UFPE*
http://cin.ufpe.br/~fmpn2

- Engenharia da Computação - Turma 2009.2 - CIn, UFPE.
- Monitor de Estatistica e Probabilidade Para Engenharia da
Computacao<http://www.cin.ufpe.br/%7Eet586/>

<http://cin.ufpe.br/%7Eif672cc>
----------------------------------------------------------------
Confidencialidade*: *A informação contida nesta mensagem de e-mail,
incluindo quaisquer anexos, é confidencial e está reservada apenas à
pessoa ou entidade para a qual foi endereçada. Se você não é o destinatário
ou a pessoa responsável por encaminhar esta mensagem ao destinatário, você
está, por meio desta, notificado que não deverá rever, retransmitir,
imprimir, copiar, usar ou distribuir esta mensagem de e-mail ou quaisquer
anexos. Caso você tenha recebido esta mensagem por engano, por favor,
contate o remetente imediatamente e apague esta mensagem de seu computador
ou de qualquer outro banco de dados. Muito obrigado.
Confidentiality Notice: The information contained in this email
message, including any attachment, is confidential and is intended only for
the person or entity to which it is addressed. If you are neither the
intended recipient nor the employee or agent responsible for delivering
this message to the intended recipient, you are hereby notified that you
may not review, retransmit, convert to hard copy, copy, use or distribute
this email message or any attachments to it. If you have received this
email in error, please contact the sender immediately and delete this
message from any computer or other data bank. Thank you.

--------
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111214/b14ea8ac/attachment.html>


Mais detalhes sobre a lista de discussão R-br