Você conhece o K-means? Nesta aula vamos falar sobre a base teórica do K-Means, um algoritmo de aprendizado não supervisionado!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala impressionadores! Você sabe o que é o aprendizado não supervisionado? Conhece a base teórica do K-Means?
Para começar a explicar sobre aprendizado não supervisionado e K-means podemos antes responder a uma pergunta muito comum.
Como as máquinas aprendem? Quais são os passos que ela segue?
Para explicar isso vamos usar como exemplo um bebê.
Como o bebê aprende?
Os bebês são expostos a situações e percebem que essas situações repetidamente geram um mesmo resultado.
Por exemplo:
Dessa forma ele consegue perceber uma relação entre algo que ele faz e o resultado que gera.
Baseado nesses padrões, o bebê cria seus modelos de comportamento.
O aprendizado de máquinas é algo muito semelhante a isso.
A diferença é que no aprendizado de máquinas nós vamos inserir os dados que serão analisados por um modelo de aprendizagem de máquinas.
Este algoritmo vai gerar padrões e esses padrões vamos colocar dentro de modelos.
O que são os modelos?
Esses modelos são basicamente um conjunto de regras que servem tanto para identificar se um animal é um gato ou um cachorro quanto para identificar se há uma fraude em transações de cartão de crédito.
Quando estamos dando os primeiros passos para aprender, devemos começar pelo simples, como um bebê que aprende a diferenciar um gato de um cachorro.
O bebê consegue reconhecer um cachorro porque toda vez que ele vê um, os pais avisam que se trata de um cachorro ou de um gato.
Após ver vários cachorros e vários gatos, o bebê passa a ser um ótimo diferenciador do que é um cachorro e do que é um gato.
Como o meu algoritmo de Machine Learning pode aprender?
O algoritmo de Machine Learning aprende à medida que inserimos dados, colocamos características de um cachorro ou de um gato, e ele começa a associar padrões, assim como o bebê do exemplo.
Nós separamos os animais com o nariz maior e a orelha mais baixa do animal com o nariz menor, com a orelha mais para cima.
Essas separações vão identificar padrões e formar grupos:
Obs. Essas imagens estão considerando apenas duas variáveis, porém normalmente são várias variáveis que vão fazer parte deste padrão.
Após analisar muitos padrões teremos os grupos formados, um grupo de gato e o de cachorros.
Observe o ponto com a interrogação na imagem acima, o animal deste ponto tem o nariz menor comparado ao cachorro e as orelhas podem não ser tão pontudas.
Neste caso, a previsão vai considerar este ponto como um gato também, graças a proximidade que o ponto tem dos demais gatos.
Nesta previsão nós temos tanto a imagem do gato quanto o nome dele, temos a classificação “gato” e “cachorro”.
Quando nós temos tanto a imagem quando o nome da imagem, nós dizemos que temos tanto o features quanto o target.
Quando já temos os dois dizemos que estamos em um aprendizado supervisionado
Neste tipo de aprendizado é como se estivéssemos falando para o bebê que ele está vendo um gato ou que ele está vendo um cachorro.
Aprendizado não supervisionado – Base teórica do K-Means:
É sempre isso que acontece? Sempre sabemos qual é o animal que estamos vendo?
Não, nem sempre nós sabemos, mas mesmo sem saber o nome do animal, pelas características dele, ainda podemos dizer se é um mamífero, se é uma ave, se ele nada ou tem bico, ainda podemos trazer inteligência para a nossa análise.
Ainda podemos identificar!
Dessa forma ainda conseguimos agrupar os dados em categorias mesmo sem saber o nome.
Por que isso é importante?
Para explicar melhor a base teórica do K-Means vamos partir para um exemplo mais comum, com clientes.
Na tabela abaixo temos pessoas que compram muitos itens de carro, outras que compram muitos itens de esporte e outras que estão dispersas e não entendemos ainda seu comportamento.
Não é importante aqui, saber o nome do grupo do cliente e sim entender se existe relação entre eles.
Quando conseguimos entender essa relação, percebemos o que eles têm em comum, e vamos conseguir sugerir um produto ou serviço mais específico as necessidades desses clientes.
Observando o comportamento dos clientes eu consigo saber o que eles necessitam e a partir daí consigo também nomear intuitivamente o grupo.
Perceba que, da mesma forma que explicamos anteriormente, podemos não saber o nome de cada cliente, mas, desde que saibamos suas necessidades, já conseguimos classificar o grupo de uma forma inteligente.
Após classificar vamos oferecer para os grupos que fazem mais sentido entre si um determinado produto ou uma promoção.
Veja, estes dois grupos têm algo em comum, sendo compradores prováveis de um mesmo produto.
Cada produto será oferecido aos grupos com a maior probabilidade de sucesso na venda.
Lembrando que essa venda não está 100% certa, estamos trabalhando com estatísticas, mas, mesmo assim, estamos direcionando o nosso foco para os clientes que são prováveis de comprar e isso faz toda a diferença.
Mas, e se acharmos que esses dois grupos, o de fórmula 1 e o piloto são, na verdade, um grupo só.
Se percebermos que existe muita semelhança entre dois grupos, podemos transformá-los em um grupo só sem problemas.
Quando temos esses casos em que conseguimos fazer os agrupamentos mesmo sem saber o nome ou rótulo daquela categoria, nós chamamos esse tipo de análise de aprendizado não supervisionado.
Dentro deste aprendizado temos a clusterização.
Clusterização:
Nosso objetivo é agrupar dados semelhantes em um mesmo cluster, ou seja, queremos que os grupos do mesmo cluster sejam o mais semelhante possível um do outro e que tenham uma diferença importante de outro cluster (grupos) dessa forma conseguimos fazer um marketing muito mais direcionado e eficaz com o maior alcance possível.
Não precisamos saber quais os tipos de pássaros, apenas saber suas características e assim conseguir separá-los em grupo.
Anomalia:
Nessa separação em grupos podemos notar um comportamento que não se encaixa em nenhum outro grupo.
Esse comportamento pode ser um cliente insatisfeito? Pode ser alguém querendo sair da empresa?
Quando observamos essas anomalias temos uma oportunidade, podemos estudá-las e levantar dados para melhorar nossa análise.
Podemos notar dois clusters na figura acima, eles estão próximos entre si e distantes um do outro.
Algoritmo K-means:
Vamos analisar o mesmo grupo agora usando o algoritmo K-means, observe que a divisão foi feita de forma diferente.
Por que o algoritmo analisou desta forma?
Para entender o porquê deste resultado é preciso saber como este algoritmo funciona.
A primeira pergunta que podemos refutar é:
O algoritmo não funcionou para este dataset?
Sim, funcionou, só precisamos entender melhor como ele funciona.
Base Teórica do K-Means – Como o K-Means funciona? Por que classificou dessa forma?
Primeiro vamos definir o K, isso é importante!
Obs. k significa o número de grupo que queremos separar.
Se temos o k = 2, como ele começa a classificar os nossos dados?
O k agora é o centro dos nossos clusters (grupos), vamos calcular a distância de cada ponto do k.
Feito isso, cada ponto será atribuído ao k mais próximo a ele:
Assim conseguimos classificar todos os pontos de acordo com essa proximidade:
Agora vamos calcular um ponto central (centróide) para cada grupo.
Agora com o centróide definido, o algoritmo torna a fazer a classificação dos pontos, dessa vez em relação ao centróide.
Esse processo se repete até a convergência do modelo, ou seja, quando o centróide para de se movimentar.
É por este motivo que o nosso algoritmo classificou o ponto mostrado na imagem abaixo como amarelo, apesar de estar próximo dos pontos roxos, comparado aos centróides ele está mais próximo do centróide amarelo e por isso foi classificado como amarelo.
Vamos para mais um exemplo.
E se escolhêssemos pontos aleatórios? Como o K-means faria a classificação?
Neste caso primeiro o algoritmo classificaria somente dois pontos em roxo, porque ele está neste primeiro momento classificando em relação ao ponto escolhido e ainda não temos o centróide formado.
Logo em seguida o algoritmo vai definir os centróides:
Após definir o centróide ele vai reclassificar os pontos em relação à distância do centróide e fazendo isso fica nítido que dois pontos verdes estão mais próximos ao centróide roxo.
Assim, ele faz a reclassificação e chega no mesmo resultado da análise anterior.
Isso significa que sempre vai dar certo?
Não, não significa…
Nem sempre isso vai dar certo e por isso podemos selecionar o parâmetro init, por padrão o algoritmo já usa este parâmetro que serve para evitar pegar como base pontos muitos próximos, isso, além de evitar problemas ainda vai fazer com que o nosso algoritmo execute a convergência mais rápido.
Quantos pontos k devemos usar?
Temos um método para isso chamado método do cotovelo (Elbow Method), quando achamos o que chamamos de cotovelo é como se encontrássemos o nosso k ideal.
É importante dizer que não existe o k ideal, isso vai depender do modelo de negócio, dos testes que vamos fazer, mas este k do cotovelo é sim um bom direcionamento quando não temos ainda noção dos dados do projeto que vamos analisar.
Não precisamos fazer este cálculo porque temos o k-means, mas se fosse para explicar vamos dizer que:
Se tivermos o k bem no centro, ele vai estar distante de todos os pontos certo?
Com isso ele gera um resultado alto de inertia_(103.875).
Observe na imagem:
O cluster_centers vai ser a coordenadas de cada um dos centróides e a inertia_ vai ser a dispersão.
Quando eu utilizo o k igual a 2 perceba que a inertia já diminui, porque estou dividindo meus dados deixando-os mais próximos dos seus centróides.
Quanto maior a quantidade de k menor o valor da inertia.
A partir de 7 k:
Com 8 k conseguimos ficar tão próximos dos dados que os centróides ficaram em cima dos nossos pontos.
Isso significa que conseguimos criar grupos tão específicos que cada ponto é um único grupo.
Isso é interessante para nós?
Não, embora seja bem específico, não é isso que queremos, nós precisamos saber a relação entre os clientes desse grupo, então não adianta ter tantos grupos porque vamos perder informações.
Isso apenas dificultaria muito o trabalho, imagine ter que propor opções para 50 grupos de pessoas diferentes!
Falando de marketing, por exemplo, seria inviável fazer propagandas diferentes para 50 grupos.
Por este motivo temos que ter um equilíbrio entre reduzir a inertia e entre a quantidade de grupos ideais que estamos criando para não cair em uma situação tão específica que praticamente não terá validade nenhuma…
Por isso é importante usar o método do cotovelo!
Ele nos mostra um valor que corresponde a este equilíbrio que devemos ter.
Com isso nós fechamos essa aula!
Se você quer sair do zero em ciências de dados ou rever conceitos básicos. Clique no link!
Nosso objetivo nessa aula foi explicar a Base Teórica do K-Means, como ele funciona para que você entenda a lógica por trás do algoritmo.
Agora que não temos os rótulos como no aprendizado supervisionado, temos uma abstração muito maior e por isso é importante entender a lógica dos resultados que o nosso algoritmo está gerando.
Nós vamos ter mais aulas explicando detalhadamente o uso do algoritmo, mas antes é importante que esta aula mais conceitual seja absorvida.
Eu fico por aqui! Espero ter ajudado! Até mais,
Para acessar outras publicações de Ciência de Dados, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.