domingo, 27 de dezembro de 2015

Como começar a aprender bioinformática.

Existem muitas maneiras para se começar a aprender sobre um tema. A dica aqui do blog é fazer cursos online e ler bastante. No Coursera você encontra cursos de várias áreas. Olhem só a lista dos cursos em Bioinformática no link: https://www.coursera.org/courses/?query=bioinformatics

Eventos






domingo, 13 de dezembro de 2015

Continuando o post sobre os Top 10 classificadores


3. Support vector machines


O que ele faz?  A máquina de vetores de suporte (SVM) aprende um hiperplano para classificar dados em duas classes. Em alto nível, SVM funciona similarmente ao C4.5, exceto pelo fato que a SVM não usa arvores de decisão em tudo.

Hiperplano: É uma função como a equação da reta, y= mx +b. De fato, para uma tarefa de classificação simples com 2 características, o hiperplano pode ser uma linha.

SVM pode projetar os dados para dimensões superiores. Uma vez projetado para dimensões superiores.

SVM descobre qual o melhor hiperplano para separar os dados em duas classes.

Exemplo: Tem um conjunto de bolas vermelhas e bolas azuis em uma mesa. Se as bolas não estão misturadas é possível separá-las com uma vareta sem movê-las.
Quando uma nova bola é adicionada na mesa, sabendo de qual lado da vareta a bola esta, é possível predizer a cor da nova bola.

O que as bolas, a mesa e a vareta representam? As bolas representam os pontos (que são os dados), a cor azul representa uma classe e a cor vermelha outra classe. A vareta representa o  hiperplano mais simples, que é uma linha.
O mais interessante:  O SVM descobre a função para o hiperplano.

E se as coisas ficam mais complicadas? Elas frequentemente ficam mais complicadas. Por exemplo, se as bolas estão misturadas juntas, uma vareta reta não vai funcionar.

Alternativa:  Jogue as bolas da mesa no ar. Enquanto as bolas estão no ar use uma folha de papel para separá-las no ar.  Jogar as bolas no ar é equivalente a mapear os dados em outras dimensões. Neste caso nós vamos de 2 dimensões(bolas na superfície da mesa) para 3 dimensões (bolas no ar).

Como o SVM faz isso?  Usando um kernel nós temos um caminho para operar em altas dimensões.  A folha de papel é um hiperplano, mas agora é uma função para um plano ao invés de ser uma linha. Quando estamos em 3 dimensões, o hiperplano precisa ser um plano e não uma linha.

Este vídeo ajuda a entender um pouco:


Como as bolas em uma mesa ou no ar são na vida real dos dados? Uma bola na mesa tem uma localização que pode ser especificada pelas coordenadas. Por exemplo, uma bola pode ter  20 cm de borda esquerda e 50 de borda inferior. Ou em coordenadas (x,y) que seria (20,50). x e y são as 2 dimensões da bola.

Por exemplo:  Se existe um conjunto de pacientes, cada paciente pode ser descrito por várias medidas, como pulse, colesterol, pressão sanguinea, etc. Cada uma destas medidas e uma dimensão.
O SVM mapeia estas medidas em dimensões maiores e encontra o hiperplano para separar as classes.
Margens são frequentemente associadas com SVM?  O que são elas? A margem é a distancia entre o hiperplano e 2 pontos mais próximos de cada classe. No exemplo da bola e da mesa, a distancia entre a vareta e a bola azul e a bola vermelha que estão mais próximas é a margem.
SVM tenta maximizar a margem, então o hiperplano é tão longe da bola azul quanto da bola vermelha. Assim a probabilidade de erro na classificação diminui.

Porque o SVM tem esse nome?  Usando as bolas e a mesa do exemplo, o hiperplano é equidistante de uma bola vermelha e de uma bola azul. Estas bolas ou pontos são chamados vetores de suporte, porque eles são o suporte do hiperplano.

É supervisionado ou não-supervisionado? Este  é um aprendizado supervisionado, dado que um conjunto de dados é usado para ensinar o SVM sobre as classes. Apenas assim o SVM é capaz de classificar novos dados.
Porque usar SVM?  SVM e C4.5 são os dois algoritmos de classificação para se tentar primeiro. Nenhum classificador será o melhor em todos os casos, graças ao teorema Não existe Almoço grátis. Alem disso, a seleção do kernel e a interpretabilidade são algumas fraquezas do SVM.



















quinta-feira, 10 de dezembro de 2015

Aprendizado de Máquina - Top 10 algoritmos



FONTE: http://www.kdnuggets.com (este site é incrível)

Esta é um série de posts sobre os seguintes algoritmos:

  • C4.5
  •  k-means
  • Support vector machines
  • Apriori
  • EM
  • PageRank
  • AdaBoost
  • kNN
  • Naive Bayes
  • CART


1. C4.5

O que ele faz?   Constrói um classificador em forma de arvore de decisão.  Para isto é dado ao C4.5 um conjunto de dados já classificados (com classe conhecida).

Mas, o que é um classificador? Um classificador é uma ferramenta de mineração de dados (ou data mining em inglês), que possuí várias informações representando o que nós queremos classificar e tenta predizer a que classe pertence um novo dado. 

Um exemplo: Suponha um conjunto de dados contendo um grupo de pacientes. Nós conhecemos várias coisas sobre cada paciente, como idade, pressão sanguínea, histórico familiar, etc. Estas coisas são os atributos.

Agora, dados estes atributos, nós queremos predizer se o paciente irá ter câncer. O paciente pode estar em uma das duas classes: terá câncer ou não terá câncer. C4.5 irá nos dizer a classe de cada paciente.

Então nós temos o seguinte: Usando um conjunto de atributos de pacientes e as classes correspondentes destes pacientes, o C4.5 constrói uma arvore de decisão que pode predizer as classes para novos pacientes baseados neste atributos.

Mas o que é uma arvore de decisão? A árvore de decisão cria algo similar a um fluxograma para classificar novos dados. Usando o exemplo do paciente, um caminho do fluxograma poderia ser:
  • O paciente tem um histórico de câncer
  • O paciente está expressando um gene altamente correlacionado com casos de câncer em outros pacientes
  • O paciente tem tumores
  • O tamanho do tumor é maior que 5cm.
Cada passo do fluxograma é uma questão sobre o valor de algum atributo. O paciente será classificado de acordo com estes valores.


Ele é supervisionado ou não supervisionado? Este é um algoritmo de aprendizado supervisionado, dado que o conjunto de treinamento tem as classes conhecidas. Por exemplo, no caso do paciente, mostrado acima, o C4.5 não aprende por conta própria se um paciente terá câncer ou não. Nós dizemos a ele em uma primeira fase, então ele gera uma árvore de decisão, e agora ele usa esta arvore de decisão para classificar.

Quais as diferenças do C4.5 e outras árvores de decisão? 
  • Primeiro, C4.5 usa ganho de informação quando gera uma árvore de decisão
  • Segundo, embora outros algoritmos usem o processo de poda, o C4.5 usa um processo de poda única para evitar o sobre ajuste. 
  • Terceiro, C4.5 pode trabalhar com dados contínuos ou discretos. 
  • Por último, dados incompletos são tratados de maneira própria.
Porque usar o C4.5? O ponto forte deste algoritmo é que ele é muito fácil de ser interpretado e explicado. Ele também é rápido, popular e tem uma saída legível para humanos.



2. k-means


O que ele faz? O k-médias cria k grupos de um conjunto de objetos, de modo que os membros de um grupo são mais similares entre si. Esta é uma técnica de clusterização popular para explorar um conjunto de dados.

O que é uma análise de cluster?  É uma família de algoritmos desenhados para formar grupos de modo que os membros do grupo sejam mais similares entre si do que com os membros que não estão neste grupo. Clusters e grupos são sinônimos no mundo de análises de clusters.

Por exemplo: Suponha que tenhamos um conjunto de pacientes. Em análise de cluster, eles podem ser chamados de observações. Nós sabemos várias coisas sobre cada paciente, como idade, pulso, pressão sanguínea, colesterol, etc. Este é um vetor representando o paciente. 

Agora: Você pode pensar que um vetor é uma lista de números que nós conhecemos sobre o paciente. Esta lista pode ser interpretada como coordenadas em um espaço multidimensional. Pulso pode ser uma dimensão, pressão sanguínea outra dimensão e assim por diante.

Algumas perguntas: Dados estes vetores de atributos, como podemos clusterizar os pacientes que tem idade similar, pulso, pressão sanguínea, etc?

Você diz quantos grupos quer (o k). E o k-médias cuida do resto!

Como ele cuida do resto?  Existem muitas variações para otimizar tipos de dados específicos. 

Pode ser resumido da seguinte da seguinte maneira:

  1. São colocados k-pontos no espaço multidimensional, representando cada um dos k-clusters. Eles são chamados de centróides.
  2. Cada paciente ser colocado perto de um dos k-centróides. Espera-se que nem todos estejam mais próximos do mesmo centróide, assim eles irão formar um cluster perto do centróide mais próximo.
  3.  Temos k-clusters, e cada paciente é agora membro de um cluster.
  4. k-médias então encontra o centro para cada um dos k-clusters baseado nos membros do cluster (cada centróide é recalculado com base nos membros de cada grupo). 
  5. Este centro é agora o novo centróide
  6. Dado que o centróide agora está em um lugar diferente, os pacientes agora podem estar mais próximos de outros centróides. Em outras palavras, eles podem mudar de cluster.  
  7. Os passos de 2 a 6 são repetidos até que os centróides não mudem, e os membros dos clusters estabilizem-se. Isto é chamado convergência.
Este é um algoritmo supervisionado ou não-supervisionado? Depende. Mas na maioria das vezes o classificador k-médias é não-supervisionado. 
Em algumas abordagens é possível que o k-médias calcule o número k. É possível também que ele seja semi-supervisionado.

Porque usar o k-médias? É simples! Esta simplicidade permite que ele geralmente seja mais rápido e mais eficiente do que outros algoritmos, especialmente em grandes conjuntos de dados.  Além disso o k-medias pode ser usado para pré-clusterizar um grande conjunto de dados, seguido de uma análise mais profunda dos sub-clusters.  E o k-medias pode também ser usado para rapidamente escolher um k e esplorar se existe relação ou padrões no conjunto de dados. 

Mas: o k-médias é sensível a outliers e a escolha inicial dos centróides (o k).  Além disso, o k-médias foi feito para operar com dados contínuos, são necessários ajustes para trabalhar com dados discretos.

CONTINUA...

domingo, 18 de maio de 2014

Promoção Amazon - Inteligência Artificial 3ª Edição por R$ 9,90


Olá pessoal, post rápido de sábado!

Está em promoção o livro Inteligência Artificial, 3ª Edição por R$ 9,90.


Cliquem no link e aproveitem

sexta-feira, 9 de maio de 2014

Dica rápida para dual boot em computadores com Windows 8


Recentemente necessitei instalar o Ubuntu em um notebook novo com Windows 8. Não consegui realizar o boot por USB e descobri que estava desabilitado o carregamento da USB pela BIOS. Depois de habilitado, ainda na BIOS foi necessário desativar o Security Boot.

Instalei o Ubuntu e testei o dual boot. Tudo ok com o Ubuntu, mas o Windows não carregava e apresentava o seguinte erro:

 invalid EFI file path                                 

Encontrei a solução instalando o rEFInd Boot Manager, basta baixar ele por este link e seguir os seguintes passos:

Descompacte e execute o comando pelo terminal:
./install.sh

Installing rEFInd on Linux....
ESP was found at /boot/efi using vfat
Installing driver for ext4 (ext4_x64.efi)
Copied rEFInd binary files

Copying sample configuration file as refind.conf; edit this file to configure
rEFInd.


Installation has completed successfully.

Ao término, reinicie o computador e verá uma tela de boot semelhante a está:


Lembrando que ao escolher o Ubuntu, carregará o GRUB e deverá escolher o Ubuntu novamente para utiliza-lo.


sábado, 26 de abril de 2014

Dicas de disciplinas para um computeiro ou um biologo que quer ser bioinformata [2]

Como citado no primeiro post Dicas de disciplinas para um computeiro ou um biologo que quer ser bioinformata, segue uma dica interessante para estudo de linguagens de programação.


É o Codecademy, um ótimo site que tem como objetivo de forma gratuita o estudo de Javascript, HTML/CSS, PHP, Python, Ruby e uso de APIs (Application Programming Interfaces). Ele funciona da seguinte maneira: através de explicações e exercícios você adquire pontos e medalhas que permite avançar para os próximos objetivos de ensino.



Você também poderá participar de grupos para discussão. Antes de começar cada curso, é apresentado a quantidade de alunos matriculados, tempo total estimado de estudo, conhecimento necessário e logo abaixo quais objetivos serão estudados.

Entre e lá comece a estudar, pois além disso ele tem um contador de dias consecutivos que você permanece estudando.

Bons estudos e até a próxima.

Extra

No codecademy permite também que você compartilhe seus conhecimentos, entre no link Ensinar e desenvolva novos objetivos a serem aprendidos nas linguagens oferecidas.