<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos Cluster - Diego Nogare</title>
	<atom:link href="https://diegonogare.net/tags/cluster/feed/" rel="self" type="application/rss+xml" />
	<link>https://diegonogare.net/tags/cluster/</link>
	<description>Consultor Executivo de IA &#38; ML</description>
	<lastBuildDate>Tue, 15 Apr 2025 13:50:53 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/diegonogare.net/wp-content/uploads/2025/06/cropped-cropped-DN-Black-300x300-1.png?fit=32%2C32&#038;ssl=1</url>
	<title>Arquivos Cluster - Diego Nogare</title>
	<link>https://diegonogare.net/tags/cluster/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">247556142</site>	<item>
		<title>Implementar o algoritmo K-Means com linguagem R</title>
		<link>https://diegonogare.net/2015/08/implementar-o-algoritmo-k-means-com-linguagem-r/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Mon, 17 Aug 2015 18:30:56 +0000</pubDate>
				<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[Aprendizado de Máquina]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[K-Means]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1291</guid>

					<description><![CDATA[<p>Implementando o algoritmo K-Means com linguagem R O conceito do algoritmo K-Means já foi explicado aqui. Nesta publicação vamos implementar o algoritmo K-Means com linguagem R, mas com objetivo de tentar entender um pouco mais esse método de aprendizado de máquinas não supervisionado. Para este experimento vou usar um dataset público existente no diretório da...</p>
<p>O post <a href="https://diegonogare.net/2015/08/implementar-o-algoritmo-k-means-com-linguagem-r/">Implementar o algoritmo K-Means com linguagem R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Implementando o algoritmo K-Means</h1>
<h2>com linguagem R</h2>
<p>O conceito do <a href="https://diegonogare.net/2015/08/entendendo-como-funciona-o-algoritmo-de-cluster-k-means/" target="_blank" rel="noopener noreferrer">algoritmo K-Means já foi explicado aqui</a>. Nesta publicação vamos implementar o algoritmo K-Means com linguagem R, mas com objetivo de tentar entender um pouco mais esse método de aprendizado de máquinas não supervisionado.</p>
<p>Para este experimento vou usar um dataset público existente no diretório da UC Irvine. Tive o prazer de conhecer esse repositório quando fiz uma <a href="https://diegonogare.net/2015/02/especializacao-em-ensino-virtual-pela-uci-university-of-california-irvine/">Especialização de Ensino Virtual</a>. Para acessar o repositório e encontrar as dezenas de dataset disponíveis, acesse este link: <a href="http://archive.ics.uci.edu/ml/datasets.html">http://archive.ics.uci.edu/ml/datasets.html</a>. O dataset que vamos usar será <a href="http://archive.ics.uci.edu/ml/datasets/Daily+and+Sports+Activities">Daily and Sports Activities Data Set</a>. Acima de tudo é importante entender que ele apresenta informações de 8 pessoas, entre 20 e 30 anos que realizaram 19 atividades físicas. Sensores de Acelerómetro, Magnetómetro e Giroscópio coletaram dados dos eixos X, Y e Z, ou seja, totalizando 9 registros de dados de cada uma das 5 partes do corpo. Os sensores estavam no Dorso, Braço Direito, Braço Esquerdo, Perna Direita e Perna Esquerda. O arquivo com os dados coletados está no link: <a href="http://archive.ics.uci.edu/ml/machine-learning-databases/00256/">http://archive.ics.uci.edu/ml/machine-learning-databases/00256/</a>. Para exemplificar, vamos analisar somente os dados coletados dos sensores das pernas e de um único exercício, mas fique a vontade para fazer com qualquer sensor ou exercício.</p>
<p>Vou entender que você já tem o RStudio em sua máquina, mas caso não tenha, <a href="https://diegonogare.net/2015/08/instalando-o-r-e-o-rstudio-para-comecar-a-trabalhar-com-data-science/">recomendo fortemente que leia isso</a>.</p>
<h2>Acessando e recebendo os dados externos</h2>
<p>Usando R é possível trabalhar com a leitura e tratamento de dados externos em diversas origens. Pode ser um JSON, um XML, ZIP, e mais uma porção de outros formatos de dados. Neste caso vamos baixar um arquivo Zip e extrair seu conteúdo, em seguida vamos ler os dados e trabalhar com um pouco de descoberta em cima disso com os clusters.</p>
<p>Para baixar o arquivo via código e poder replicar o experimento sempre que precisar, para isso, vamos informar qual será o diretório de trabalho e quais os dados do arquivo que deve ser baixado. Depois de baixar o aquivo de 160MB, é necessário extrair os dados e ver o que aparece.</p>
<p>Em primeiro lugar, veja o código abaixo para saber como fazer isso:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">setwd("C:/Temp/KMeans")
url &lt;- "http://archive.ics.uci.edu/ml/machine-learning-databases/00256/data.zip"
destfile &lt;- "data.zip"
download.file(url, destfile, mode="wb")
unzip("data.zip")</pre>
<p>O resultado é um conjunto de pastas com diversos arquivos dentro. Entretanto, se navegar pra dentro das pastas, vai encontrar 60 arquivos txt em cada uma das pastas p* (que é uma pra cada das 8 pessoas) e por sua vez estão dentro das pastas a* (que representam as atividades).</p>
<p><img data-recalc-dims="1" fetchpriority="high" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081715_1801_Implementan1-2.png?resize=567%2C148&#038;ssl=1" alt="arquivos1" width="567" height="148" /></p>
<p><img data-recalc-dims="1" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081715_1801_Implementan2-2.png?resize=567%2C135&#038;ssl=1" alt="arquivos2" width="567" height="135" /></p>
<p>&nbsp;</p>
<p>Se abrir um dos arquivos txt, irá encontrar as 45 colunas com as coletas de cada um dos sensores. Não se assuste com esse monte de números, tudo ficará mais claro no decorrer do texto.</p>
<p><img data-recalc-dims="1" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081715_1801_Implementan3-1.png?resize=567%2C393&#038;ssl=1" alt="arquivoTexto" width="567" height="393" /></p>
<h2>Transformando os dados do arquivo em um DataFrame do R</h2>
<p>Quando se abre o arquivo txt bruto não é tão simples de identificar o que são esses números. Contudo, lendo a documentação do Dataset fornecido no link lá em cima, entendemos a estrutura de como os dados são armazenados e quais são as colunas. Para este experimento, vamos usar a atividade número 15 – Pedalar na bicicleta ergométrica na horizontal – e analisar somente os sensores de pernas. Veja o código abaixo:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">atividade &lt;- 15

DadosDeOrigem &lt;- gsub(" ","",paste(getwd(), "/data/a", atividade))

setwd(DadosDeOrigem)

Diretorios &lt;- list.files()

TotalPessoas &lt;- length(Diretorios)

DadoBruto &lt;- NULL

i &lt;- 1

while (i &lt;= TotalPessoas) {
  setwd( gsub(" ","",paste(DadosDeOrigem, "/", Diretorios[i])) ) 
  LerArquivos &lt;- list.files()
  j &lt;- 1
  while (j &lt;= length(LerArquivos)) {
    DadoBruto &lt;- rbind(DadoBruto, read.table(LerArquivos[j], sep=","))
    j &lt;- j+1
  }
  i &lt;- i+1
}

#Colocar as colunas que são interessantes analisar
SoPernas &lt;- DadoBruto[,28:45]
colnames(SoPernas) &lt;- c("DAX", "DAY", "DAZ", "DGX", "DGY", "DGZ", "DMX", "DMY", "DMZ", "EAX", "EAY", "EAZ", "EGX", "EGY", "EGZ", "EMX", "EMY", "EMZ")</pre>
<p>Para terminar esta parte de acesso, todos os dados de pernas (coluna 28 até 45) da atividade 15 foram armazenados em um novo Dataframe chamado SoPernas. Foi dado um nome para coluna, seguindo a lógica:</p>
<ul>
<li>D = Direita</li>
<li>E = Esquerda</li>
<li>A = Acelerómetro</li>
<li>G = Giroscópio</li>
<li>M = Magnetómetro</li>
</ul>
<p>A coluna DAX significa D (direita) A (acelerómetro) X (eixo X). A coluna EGZ significa E (esquerda) G (Giroscópio) Z (eixo Z). E assim por diante.</p>
<h2>Implementar o algoritmo K-Means com linguagem R</h2>
<p>Depois dos dados tratados, usar o algoritmo de K-Means é certamente simples. Ele recebe o dataset que deve ser consultado e o conjunto de segmentos que deve criar. Como já sabemos que são 8 pessoas que fazem parte da amostragem, não precisamos rodar aquele algoritmo de <em>Elbow Method</em> para descobrir quando grupos é possível criar. Veja, por exemplo, o código simples abaixo que recebe o processamento do K-Means e depois mostra a quantidade de elementos do dataframe que foi classificado em cada um dos clusters.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">Resultado &lt;- kmeans(SoPernas[1:2], 8)
Resultado$size</pre>
<p>Após a execução do K-Means, por exemplo, pode-se plotar os dados em um gráfico e ver como o algoritmo separou os dados nos 8 grupos que foram solicitados. Para facilitar o entendimento, vou plotar somente os dados de DAX e DAY, para um gráfico simples de duas dimensões, usando o recurso de poder plotar cada grupo em uma cor diferente para facilitar a análise de quem está observando.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">plot(SoPernas[1:2], col = Resultado$cluster, pch= 19)</pre>
<p>Se quiser colocar cada ponto central de um centroide, pode usar este exemplo de código abaixo na sequência da plotagem do gráfico:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="no-highlight">points(Resultado$centers[,1:2], col="orange", pch=8, cex=2)</pre>
<p>Após plotar o gráfico com os 8 segmentos, é possível identificar facilmente os grupos que o K-Means separou.</p>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081715_1801_Implementan4-1.png?w=640&#038;ssl=1" alt="" /></p>
<p>Quando um novo item for inserido no dataset, ele ficará associado a algum dos clusters. Por exemplo, você não precisa necessariamente saber se o dado é de uma mulher de 20 anos ou de um homem de 30, simplesmente ao analisar o dado novo contra os dados já processados, o computador vai entender onde estes dados se enquadram e vai te retornar qual é o gênero e a idade que ele estima que seja. Simples, não?!</p>
<p>O post <a href="https://diegonogare.net/2015/08/implementar-o-algoritmo-k-means-com-linguagem-r/">Implementar o algoritmo K-Means com linguagem R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1291</post-id>	</item>
		<item>
		<title>Entenda o algoritmo de agrupamento K-Means</title>
		<link>https://diegonogare.net/2015/08/entendendo-como-funciona-o-algoritmo-de-cluster-k-means/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Wed, 12 Aug 2015 20:24:53 +0000</pubDate>
				<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[Aprendizado de Máquina]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[K-Means]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1246</guid>

					<description><![CDATA[<p>Entenda como funciona o algoritmo de Cluster K-Means Em uma forma lúdica para explicar o conceito Fala galera, entenda o funcionamento do algoritmo de agrupamento K-Means, que é uma das formas que existe para se trabalhar com aprendizagem de máquinas (machine learning) no paradigma de aprendizado não supervisionado. Isso é diferente do aprendizado supervisionado, onde...</p>
<p>O post <a href="https://diegonogare.net/2015/08/entendendo-como-funciona-o-algoritmo-de-cluster-k-means/">Entenda o algoritmo de agrupamento K-Means</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Entenda como funciona o algoritmo de Cluster K-Means</h1>
<h2>Em uma forma lúdica para explicar o conceito</h2>
<p>Fala galera, entenda o funcionamento do algoritmo de agrupamento K-Means, que é uma das formas que existe para se trabalhar com aprendizagem de máquinas (<em>machine learning</em>) no paradigma de aprendizado não supervisionado. Isso é diferente do aprendizado supervisionado, onde você informa ao computador o que ele deve procurar e aprender, com exemplos contendo os rótulos previamente. No aprendizado não supervisionado a gente não sabe exatamente o que estamos tentando ensinar ao computador. Por causa disso precisamos recorrer à agrupadores lógicos de segmentação, com foco em encontrar similaridade entre os dados da amostra.</p>
<p>O resultado esperado é que seja encontrado um padrão e assumir que este padrão é o que estamos tentando ensinar ao computador, que por sua vez, vai reproduzir e encontrar esse padrão sempre quando for solicitado. Depois de descoberto o padrão, qualquer item novo que tenha uma similaridade com aquele segmento (agrupamento [<em>cluster</em>, em inglês]) pode ser inferido como &#8220;fazendo parte daquilo&#8221;.</p>
<p>A proposta deste post é mostrar, com um certo nível de detalhes, como segmentar a amostragem em grupos e descobrir padrões nos dados. No final do texto você conseguirá ver uma referência para a implementação em Linguagem R, mas nesta publicação teremos o foco no entendendo o algoritmo.</p>
<h2>Agrupando os dados</h2>
<p>Para exemplificar, pense em um <em>dataset</em> com algumas amostras dispostas nos eixo X e Y, como o gráfico abaixo. Seu objetivo é agrupar estes dados baseado em sua similaridades (ou aproximação). Consegue fazer isso?</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean1-1.png?resize=369%2C200&#038;ssl=1" alt="conjunto de dados" width="369" height="200" /></p>
<p>É possível bater o olho neste gráfico e ver a separação em alguns grupos. Mas cada um de nós que olhar o gráfico pode tentar criar um número diferente de grupos (<em>clusters</em>). Até mesmo quando a quantidade de <em>cluster</em> que pensarmos for igual, pode-se pensar em agrupamentos de formas diferentes. Por exemplo, alguns de nós podem ver a separação com apenas 2 <em>clusters</em>, e o gráfico poderia ser assim:</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean2-1.png?resize=374%2C202&#038;ssl=1" alt="conjunto de dados com 2 grupos" width="374" height="202" /></p>
<p>Ou assim&#8230;<br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean3-1.png?resize=371%2C204&#038;ssl=1" alt="conjunto de dados com 2 grupos" width="371" height="204" /></p>
<p>Alguém também poderia pensar em separar os dados assim&#8230;<br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean4-1.png?resize=367%2C199&#038;ssl=1" alt="conjunto de dados com 2 grupos" width="367" height="199" /></p>
<p>Qual é o certo? Todos estão certos! Isso pode acontecer de acordo com a interpretação de cada um dos observadores que encontraram apenas 2 grupos nestes dados.</p>
<p>&nbsp;</p>
<p>Outras pessoas podem encontrar 3 grupos, e não apenas dois, podendo chegar a definições como esta:</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean5-1.png?resize=368%2C202&#038;ssl=1" alt="conjunto de dados com 3 grupos" width="368" height="202" /></p>
<p>Ou esta<br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean6-1.png?resize=372%2C202&#038;ssl=1" alt="conjunto de dados com 3 grupos" width="372" height="202" /></p>
<p>Ou então essa<br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean7-1.png?resize=371%2C199&#038;ssl=1" alt="conjunto de dados com 3 grupos" width="371" height="199" /></p>
<p>E aqui, qual dos gráficos é o certo? O certo é com 2 grupos ou com 3 grupos? Mais uma vez isso é difícil de responder, todos os 6 gráficos estão corretos de acordo com a visão de cada observador.</p>
<h2>Entendendo como funciona o algoritmo de agrupamento K-Means</h2>
<p>Para entender o funcionamento vamos separar os dados em 2 <em>clusters</em> e entender os passos que o algoritmo de agrupamento K-Means faz para convergir em um resultado. Neste caso o K será igual a 2, criando os 2 <em>clusters</em> que estamos buscando. O K, de K-Means, é a quantidade de centroides (pontos centrais dos grupos) que serão criados e ajudará a encontrará a similaridade dos dados.</p>
<p>Uma das formas de iniciar o processo é o algoritmo inserir o K pontos (centroides) aleatórios iniciais. Pode ser qualquer lugar do plano, para em seguida começar as iterações e encontrar os resultados.</p>
<p>Veja dois pontos aleatórios criados no gráfico, e uma linha tracejada que é calculada aproximadamente na metade da distância dos pontos Vermelho e Azul. Com este segmento, os itens que estão plotados acima da linha tracejada fazem parte do grupo vermelho e os de baixo da linha fazem parte do grupo azul.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean8-2.png?resize=367%2C198&#038;ssl=1" alt="conjunto de dados com 2 centroides" width="367" height="198" /></p>
<p>A primeira iteração do algoritmo é medir a distância de todos os pontos que estão atrelados ao centroide e então calcular sua média. O resultado gera uma nova coordenada de X e Y, e vai mudar a posição do centroide para o novo ponto que foi calculado, que é a distância média de todos os pontos que se ligaram à aquele centroide. Essa mudança de posição do centroide pode alterar os itens que fazem parte daquele grupo. Veja isso nas imagens abaixo:</p>
<p>&nbsp;</p>
<p>O ponto vermelho e azul se moveram baseados na distância média dos elementos que estavam atrelados à aqueles centroides.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean9-2.png?resize=369%2C197&#038;ssl=1" alt="conjunto de dados com 2 centroides" width="369" height="197" /></p>
<p>Após essa movimentação, a linha tracejada muda sua posição e inclinação.<br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean10-1.png?resize=372%2C201&#038;ssl=1" alt="conjunto de dados com 2 centroides" width="372" height="201" /></p>
<p>Reparem que alguns pontos pretos que faziam parte de um grupo na iteração anterior, como resultado, mudaram-se para o outro grupo.<br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean11-1.png?resize=367%2C207&#038;ssl=1" alt="conjunto de dados com 2 centroides" width="367" height="207" /></p>
<h2>E quando ele vai convergir?</h2>
<p>Com essa mudança de grupos, os pontos que estão marcados em verde passaram do centroide azul para o vermelho, e o que está marcado em azul passou do centroide vermelho para o azul. É possível reparar que a iteração de cálculo da média da distância dos pontos até o centroide ocorre em <em>loop,</em> até que nenhum ponto mude mais de centroide. Em outras palavras, isso acontece quando os centroides param de atualizar suas posições, porque já estão na posição central da distância entre os pontos. Chamamos isso de convergir!</p>
<p>Repare mais algumas possíveis iterações dos centroides e sua linha tracejada imaginária.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean12-1.png?resize=365%2C202&#038;ssl=1" alt="conjunto de dados com 2 centroides" width="365" height="202" /><br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean13-1.png?resize=368%2C197&#038;ssl=1" alt="conjunto de dados com 2 centroides" width="368" height="197" /><br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean14-1.png?resize=369%2C198&#038;ssl=1" alt="conjunto de dados com 2 centroides" width="369" height="198" /></p>
<p>Veja que entre a penúltima iteração e esta não ouve mais mudança de pontos entre o gráfico e o centroide, portanto o algoritmo de agrupamento K-Means encerra sua execução chegando ao resultado esperado e criando dois grupos. Por exemplo, quando um novo item for incluído no gráfico, ele já terá um grupo que atende aquela região e o computador já saberá do que se trata o dado novo.</p>
<h2>Escolhendo a quantidade de K (<em>clusters</em>) no algoritmo de agrupamento K-Means</h2>
<p>O <em>Elbow Method</em> é uma das formas usadas para descobrir a quantidade ideal de <em>clusters</em> naquele conjunto de dados. Ele tem esse nome por se parecer com o formato de um &#8220;braço&#8221; e nós sempre procurarmos o &#8220;cotovelo&#8221; pra definir que este é o número aceitável de K (grupos) a serem criados com base nos dados da amostra. Este método vai aumentando a quantidade de <em>clusters</em> a partir de 1 e analisando o resultado melhorado a cada incremento. Quando o benefício parar de ser relevante (um salto entre uma quantidade de <em>cluster</em> e a próxima quantidade) ele entra em um modelo platô, no qual a diferença da distância é quase insignificante. Ou seja, é neste momento que entende-se que o algoritmo é relevante com aquela quantidade de K e então ele deve ser usado pra segmentar os dados do gráfico.</p>
<p>Depois de executar o código do algoritmo do <em>Elbow Method</em> e olhando para os dados que estamos apresentando como exemplo, um bom número de K para ele é o número 4.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean15-1.png?resize=359%2C209&#038;ssl=1" alt="escolha do numero de centroides" width="359" height="209" /></p>
<p>Rodando o algoritmo com 4 centroides, foi possível ver a transformação acontecendo e gerando esta segmentação:</p>
<p>Conjunto inicial de dados</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean16-1.png?resize=363%2C196&#038;ssl=1" alt="conjunto de dados" width="363" height="196" /></p>
<p>Após a execução do algoritmo e cada grupo representando uma cor<br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean17-2.png?resize=370%2C197&#038;ssl=1" alt="conjunto de dados com 4 grupos" width="370" height="197" /></p>
<p>A posição dos centroides finais, para cada grupo<br />
<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone" src="https://i0.wp.com/diegonogare.net/wp-content/uploads/2015/08/081215_2050_UsandoKMean18-2.png?resize=372%2C196&#038;ssl=1" alt="conjunto de dados com 4 grupos" width="372" height="196" /></p>
<p>&nbsp;</p>
<h2>Para continuar os estudos&#8230;</h2>
<p>A proposta desta publicação foi explicar de forma lúdica como o algoritmo de agrupamento <em>K-Means</em> funciona, mas você pode acompanhar uma <a href="https://diegonogare.net/2015/08/implementando-o-algoritmo-k-means-com-linguagem-r/" target="_blank" rel="noopener noreferrer">implementação em R</a> e depois ler sobre as possibilidades de implementar também com <a href="https://diegonogare.net/2014/11/azure-machine-learning-introducao-parte-2/" target="_blank" rel="noopener noreferrer">Azure Machine Learning</a>.</p>
<p>Para ajudar a responder a questão de quantos grupos devem existir neste conjunto de dados, alguns métodos são bem aceitos no meio científico, leia mais sobre eles aqui: <a href="https://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set">https://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set</a>.</p>
<p>O post <a href="https://diegonogare.net/2015/08/entendendo-como-funciona-o-algoritmo-de-cluster-k-means/">Entenda o algoritmo de agrupamento K-Means</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1246</post-id>	</item>
		<item>
		<title>Aprendizado de Máquinas com Azure Machine Learning e R</title>
		<link>https://diegonogare.net/2015/07/aprendizado-de-maquinas-com-azure-machine-learning-e-r/</link>
		
		<dc:creator><![CDATA[Diego Nogare]]></dc:creator>
		<pubDate>Mon, 06 Jul 2015 18:21:15 +0000</pubDate>
				<category><![CDATA[Negócios e Tecnologia]]></category>
		<category><![CDATA[Aprendizado de Máquina]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[AzureML]]></category>
		<category><![CDATA[Classificação Binária]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[inteligencia artificial]]></category>
		<category><![CDATA[linguagem R]]></category>
		<guid isPermaLink="false">http://diegonogare.net/?p=1176</guid>

					<description><![CDATA[<p>Fala galera, na última sexta-feira (03/07) fiz uma apresentação de mais de 1h30 sobre Aprendizado de Máquinas com Azure Machine Learning e R. Nesta apresentação explico sobre o conceito de aprendizado supervisionado e não supervisionado, e também falo um pouco sobre a importancia de entender a matriz de confusão e seus elementos. Acompanhe abaixo o...</p>
<p>O post <a href="https://diegonogare.net/2015/07/aprendizado-de-maquinas-com-azure-machine-learning-e-r/">Aprendizado de Máquinas com Azure Machine Learning e R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Fala galera, na última sexta-feira (03/07) fiz uma apresentação de mais de 1h30 sobre Aprendizado de Máquinas com Azure Machine Learning e R. Nesta apresentação explico sobre o conceito de aprendizado supervisionado e não supervisionado, e também falo um pouco sobre a importancia de entender a matriz de confusão e seus elementos. Acompanhe abaixo o vídeo e os slides da apresentação.</p>
<p>Vídeo:</p>
<p><a href="https://www.youtube.com/watch?v=AHlrSwiCzUg"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blogdiegonogare.azurewebsites.net/wp-content/uploads/2015/07/070615_1818_Aprendizado1-1.jpg?w=640" alt="" border="0" /></a></p>
<p>Slides:</p>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//pt.slideshare.net/slideshow/embed_code/key/3JFEeKPG4ZoE8B" width="525" height="435" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p>Espero que esta pequena introdução ao Machine Learning abra a mente de todos para os benefícios do uso de inteligência artificial no desenvolvimento de software&#8230;</p>
<p>O post <a href="https://diegonogare.net/2015/07/aprendizado-de-maquinas-com-azure-machine-learning-e-r/">Aprendizado de Máquinas com Azure Machine Learning e R</a> apareceu primeiro em <a href="https://diegonogare.net">Diego Nogare</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1176</post-id>	</item>
	</channel>
</rss>
