Tem sido difícil tirar um tempinho para blogar. Estes dias estou lendo um livro que o Israel me emprestou, e finalmente de alguma forma me convenci a criar uma conta no Twitter. Não para ficar perdendo meu tempo falando onde estou, ou que a pizza chegou atrasada, ou que isso ou aquilo. O interesse é apenas "educacional", já que a plataforma é de fato interessante.
É claro, entrar no jogo nesta altura do campeonato não é nada fácil... Opções como "rhcarvalho" ou "rodolfocarvalho" já foram tomadas meses ou anos atrás. E já que iria ficar com um nome de usuário pouco significativo, resolvi que este nome deveria ser curto.
Foi fácil perceber que todos os nomes com apenas 1 caracter já existiam. Com exceção do "i", mas mesmo assim não consegui criar um conta com o nome de usuário "i".
Ontem acabei desistindo de criar a tal conta. E hoje, sábado, escrevi um pequeno script em python para verificar todos os nomes possíveis com 2 ou 3 letras que ainda estivessem disponíveis.
Descobri que nada seria possível com 2 letras, e existiam 3112 opções com 3 letras. Destas, 1 era composta apenas por dígitos, e 5 eram compostas apenas por letras.
As contas compostas apenas por letras eram: ['xjv', 'txp', 'dzz', 'qfw', 'hqc']
Destas, nenhuma me interessa...
Mas o número... o número com 3 dígitos é a minha nova conta no Twitter! @201
201 é um número bacana!
Quanto ao script, usei meu conhecimento adquirido com web crawling multithread para viabilizar um "ataque de força bruta" a API do Twitter usada na verificação de disponibilidades de nomes.
Páginas
Saturday, November 20, 2010
Saturday, October 16, 2010
Aprendizado de máquina
Curso da Faculdade de Engenharia de Standford sobre Aprendizado de Máquina:
http://see.stanford.edu/see/lecturelist.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1
http://see.stanford.edu/see/lecturelist.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1
É possível aprender com os dados?
Tudo começou com a leitura de um post num blog, sobre Online Learning [1], sugestão de um amigo do estágio.
Nos comentários tinha um link para um site com vídeo aulas [2].
Chegando lá, já no primeiro link no topo da página [3] me interessei e comecei a assistir uma aula de uma hora sobre aprendizado semi-supervisionado.
Existem métodos de inferir/formular modelos a partir de um conjunto de dados no qual temos como entrada pares de entrada+saída. São os chamados métodos supervisionados.
Por exemplo, podemos ter como entrada 1000 emails e saber se cada um deles é um spam ou não.
Seria interessante agora inferir coisas a partir dos dados não classificados, classificação não-supervisionada.
Este é o caso quando queremos por exemplo encontrar grupos através de uma função de similaridade.
O aprendizado semi-supervisionado é quando temos alguns dados classificados, e outros não classificados. Ou seja, temos 1000 emails que sabemos distinguir entre spam e não-spam, mais digamos 9000 emails que não sabemos a classificação.
Esses 9000 emails podem ajudar substancialmente a desenvolver um modelo que dado um novo email ele seja classificado corretamente como spam ou não-spam.
Na aula são mostradas duas categorias de problemas, e que tipo de conjunto de dados funcionam bem usando as técnicas apresentadas.
Fica a sugestão a todos para visitar o videolectures.net e passar algumas horas assistindo a aulas muito interessantes.
[1] http://mark.reid.name/sap/online-learning-in-clojure.html
[2] http://videolectures.net
[3] http://videolectures.net/mlas06_mitchell_sla/
[4] http://en.wikipedia.org/wiki/Expectation-maximization_algorithm
[5] http://en.wikipedia.org/wiki/Co-training
[6] http://www.eleitorando.com.br
Nos comentários tinha um link para um site com vídeo aulas [2].
Chegando lá, já no primeiro link no topo da página [3] me interessei e comecei a assistir uma aula de uma hora sobre aprendizado semi-supervisionado.
Existem métodos de inferir/formular modelos a partir de um conjunto de dados no qual temos como entrada pares de entrada+saída. São os chamados métodos supervisionados.
Por exemplo, podemos ter como entrada 1000 emails e saber se cada um deles é um spam ou não.
Seria interessante agora inferir coisas a partir dos dados não classificados, classificação não-supervisionada.
Este é o caso quando queremos por exemplo encontrar grupos através de uma função de similaridade.
O aprendizado semi-supervisionado é quando temos alguns dados classificados, e outros não classificados. Ou seja, temos 1000 emails que sabemos distinguir entre spam e não-spam, mais digamos 9000 emails que não sabemos a classificação.
Esses 9000 emails podem ajudar substancialmente a desenvolver um modelo que dado um novo email ele seja classificado corretamente como spam ou não-spam.
Na aula são mostradas duas categorias de problemas, e que tipo de conjunto de dados funcionam bem usando as técnicas apresentadas.
- Expectation Maximization (EM) [4]
- Co-training [5]
Fica a sugestão a todos para visitar o videolectures.net e passar algumas horas assistindo a aulas muito interessantes.
[1] http://mark.reid.name/sap/online-learning-in-clojure.html
[2] http://videolectures.net
[3] http://videolectures.net/mlas06_mitchell_sla/
[4] http://en.wikipedia.org/wiki/Expectation-maximization_algorithm
[5] http://en.wikipedia.org/wiki/Co-training
[6] http://www.eleitorando.com.br
Friday, October 8, 2010
Dicionários recursivos
Só por curiosidade, alguém além de mim já fez isso aqui?
Digite no seu interpretador de Python:
d = dict()
d['d'] = d
d
d['d']
d['d']['d']
d = dict()
e = dict()
d['e'] = e
d
e['d'] = d
e
d
d['e']['e']
d['e']['d']
É bem interessante ver:
In [17]: d['e']['d']
Out[17]: {'e': {'d': <Recursion on dict with id=4321969824>}
Tuesday, September 21, 2010
De volta ao Brasil, e de volta a ativa...
Depois de 11 meses em Portugal e 1,5 no Brasil como guia turístico, estou de volta.
Ontem comecei a trabalhar na Intelie, que certamente será fonte de grande aprendizado e diversão.
Na universidade (UFRJ) estou fazendo disciplinas interessantes, e pretendo fazer alguns posts sobre elas.
Também estou de volta ao DojoRio, evento que dei início e participei sempre até minha ida para o exterior.
E o dojo me trouxe muita satisfação. Ele cresceu para além de minhas expectativas, vários amigos estão fazendo palestras sobre o mesmo, e outras pessoas tem nos seguido e iniciado outros dojos pelo Brasil (e também pelo Rio, onde tivemos uma grande multiplicação).
Amanhã estarei lá na Lapa para mais um! O endereço é Rua Teotônio Regadas 26 sala 603 - Lapa, ao lado da Sala Cecília Meireles, próximo ao Metrô.
Ontem comecei a trabalhar na Intelie, que certamente será fonte de grande aprendizado e diversão.
Na universidade (UFRJ) estou fazendo disciplinas interessantes, e pretendo fazer alguns posts sobre elas.
Também estou de volta ao DojoRio, evento que dei início e participei sempre até minha ida para o exterior.
E o dojo me trouxe muita satisfação. Ele cresceu para além de minhas expectativas, vários amigos estão fazendo palestras sobre o mesmo, e outras pessoas tem nos seguido e iniciado outros dojos pelo Brasil (e também pelo Rio, onde tivemos uma grande multiplicação).
Amanhã estarei lá na Lapa para mais um! O endereço é Rua Teotônio Regadas 26 sala 603 - Lapa, ao lado da Sala Cecília Meireles, próximo ao Metrô.
Subscribe to:
Posts (Atom)