Mapas auto-organizaveis

Visualizando 13 posts - 1 até 13 (de 13 do total)
  • Autor
    Posts
  • #35748
    Caio
    Participante

      Professor eu tenho 3 dúvidas

      -Os mapas autorganizaveis são melhores no geral que o KNN?

      -Quando achamos o BMU para cada registro,fazemos um raio entorno do BMU e transformamos os “nós” que não BMU em valores similares o do BMU,mas como que definimos o número de clusters?

      -Como eu faço pra pegar os ids,do registro conforme eles foram calssificadoas,por exemplo id 1 = cluster 0,id 2 = cluster 3,etc…

       

      Obrigado

      #35768
      Denny Ceccon
      Moderador

        Olá Caio,

        • Não dá pra dizer que os SOMs são melhores que o KNN, são técnicas diferentes com objetivos similares, assim como árvores de decisão e redes neurais que podem ser utilizadas com os mesmos objetivos.
        • Uma forma é como o professor mostrou na aula Mapas auto organizáveis – aprendizagem, onde o número de clusters é igual ao número de BMUs identificados na inicialização do mapa.
        • Dê uma olhada neste exemplo no GitHub da biblioteca, a função classify faz a classificação.
        #35814
        Caio
        Participante

          passos do SOM

          • Diferente das redes neurais tradicionais,não existem neuronios,exitem nós e esses nós vão receber pontos,de acordo com o número de entradas.
          • Sendo assim,eles vão pegar um registro aleatório,vão calcular a distância desse registro com todos os nós,vão pegar o nó que teve a menor distância e esse nó vai ser o BMU.
          • Achando o BMU,fazemos um raio entorno desse BMU,e transformamos os nós em volta com atributos parecidos com o do BMU.
            Sendo assim,nessa área do mapa vamos ter um padrão nos atributos.
          • Então quando for fazer o mesmo processo,e pegarmos um registro parecido com o primeiro registro,muito provavelmente ele vai cair na mesma área do mapa.

          Dúvidas

          – Só que minha dúvida é o seguinte professor,no link que eu li sobre o SOM,o N iterations vai ser o número de vezes que vamos pegar um registro e realizar todo esse passo a passo,só que como sabemos quantos clusters foram formados,e como eles são formados?

          . por exemplo professor,eu assisti dnv as aulas,só que vamos supor que eu tenha uma base de dados considerável,e fazendo o calculo eu descobri que tem que usar um total de 120 neuronios,e nessa base de dados 100 neuronios foram selecionados como BMU,quer dizer que vamos ter 100 clusters?

          -E Queria saber se esses calculos são feitos um registro de cada vez ou pegas varios registros aleatoria e calcula tudo de uma vez

           

          #35815
          Caio
          Participante

            Talvez eu esteja errado,mas pelo que eu entendi,esse mapa funciona quando ja sabemos o número de classes,como nas aulas do credit_data(aprovado e não aprovado),pois assim podemos colocar que vamos usar dois marcadores,e ele vai separar o mapa em 2 cluster,bolinha e quadrado

            Obs:Caso eu não tenha me explicado muito bem,me avisa,professor.

            #35816
            Denny Ceccon
            Moderador

              Olá Caio,

              Te confesso que não sei exatamente como o algoritmo funciona em detalhes, não é um algoritmo muito utilizado hoje em dia então não é comum alguém se especializar nele, mas como se trata de um algoritmo de aprendizagem não-supervisionada, então é ele próprio quem determina o número de clusters (veja que nós nem passamos o número de clusters ou a variável y para o algoritmo treinar), dependendo de quantos BMUs são selecionados na primeira iteração. Mas justamente por isso, como o posicionamento inicial dos neurônios é feito aleatoriamente, a cada vez que você gera um SOM é possível que isto resulte em um número de BMUs diferente, o importante é que há essa tendência de os registros migrarem para regiões similares do mapa. Podemos dizer que é um algoritmo que apresenta várias possíveis soluções, mas todas elas são válidas.

              Eu desconfio que os cálculos são feitos todos de uma única vez, geralmente só fazemos em “batches” quando os dados não cabem todos na memória, mas teria que inspecionar o algoritmo com cuidado para ter uma resposta definitiva.

              Se você quiser se aprofundar no assunto, sugiro procurar mais vídeos no YouTube, é geralmente como eu faço para entender melhor sobre algum método.

              #35822
              Caio
              Participante

                obrigado professor,qual o algoritimo mais comum hoje em dia,o kNN?

                #35823
                Denny Ceccon
                Moderador

                  Para agrupamento não-supervisionado dá pra usar o KNN, que é o mais clássico. Não tenho experiência com as ferramentas mais recentes mas ouço falar bastante das que constam nesses dois artigos: https://towardsdatascience.com/unsupervised-learning-and-data-clustering-eeecb78b422a, https://towardsdatascience.com/t-sne-clearly-explained-d84c537f53a

                  #35870
                  Caio
                  Participante

                     

                    Professor sabe pq esta dando esse erro?

                    #35885
                    Denny Ceccon
                    Moderador

                      Parece que seu código está colocando todos os registros no mesmo neurônio. Nessas horas, é melhor reiniciar o ambiente de execução com o código original e tentar de novo.

                      #35894
                      Caio
                      Participante

                        Professor,consegui arrumar o primeiro problema,só que agora não aparace as cores.

                        #35895
                        Denny Ceccon
                        Moderador

                          Você tentou reexecutar o código original da aula?

                          #35904
                          Caio
                          Participante

                            control c e control v,professor

                             

                            #35905
                            Denny Ceccon
                            Moderador

                              Acho que é porque você precisa rodar a parte do código onde plota o gráfico tudo de uma vez, porque os elementos do gráfico são adicionados um a um, e se você interromper o código no meio, só vai plotar a metade das informações.

                              Roda desde a linha pcolor(som.distance_map().T) até o final em uma única célula.

                            Visualizando 13 posts - 1 até 13 (de 13 do total)
                            • Você deve fazer login para responder a este tópico.