<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Pytools - Algoritmo HDBSCAN in Brasil</title>
    <link>https://community.qlik.com/t5/Brasil/Pytools-Algoritmo-HDBSCAN/m-p/1611787#M57452</link>
    <description>&lt;P&gt;Ola Comunidade Qlik,&lt;/P&gt;&lt;P&gt;O &lt;STRONG&gt;HDBSCAN&lt;/STRONG&gt; é um algoritmo de &lt;EM&gt;clustering&lt;/EM&gt; (segmentação) desenvolvido por Campello, Moulavi e Sander. É considerado uma extensão do &lt;STRONG&gt;DBSCAN&lt;/STRONG&gt;, transformando-o em um&amp;nbsp; algoritmo de &lt;EM&gt;clustering&lt;/EM&gt; hierárquico. Mas afinal, o que ser um algoritmo de &lt;EM&gt;clustering&lt;/EM&gt; hierárquico?&lt;BR /&gt;&lt;BR /&gt;Os algoritmos de clustering, analisa os exemplos fornecidos e os agrupa em clusters seguindo algum critério de similaridade. Um desses métodos é chamado de &lt;EM&gt;clustering&lt;/EM&gt; hierárquico. Existem duas abordagens para a construção de agrupamentos hierárquicos:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;A abordagem aglomerativa, no qual começa com clusters unitários (compostos de apenas um exemplo) e segue agrupando os &lt;EM&gt;clusters&lt;/EM&gt; iterativamente, sempre considerando o par de &lt;EM&gt;cluster&lt;/EM&gt; mais semelhantes com base na distância entre os mesmos. Esse processo é repetido até que exista&amp;nbsp;somente um único agrupamento contendo todos os&amp;nbsp;exemplos;&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;&amp;nbsp;A abordagem divisiva, que realiza a mesma tarefa, porém, em ordem inversa.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Em seguida, usa uma técnica para extrair o &lt;EM&gt;cluster&lt;/EM&gt;&amp;nbsp; mais simples com base na estabilidade do &lt;EM&gt;cluster&lt;/EM&gt;. Por exemplo, esta estabilidade por ser definida pela densidade da região em que se encontra os pontos/clusters.&lt;/P&gt;&lt;P&gt;Para calcular a distância entre dois pontos, existem uma serie de métodos que podem ser escolhidos, tais como a distância &lt;STRONG&gt;Euclidiana&lt;/STRONG&gt; e a &lt;STRONG&gt;Manhattan&lt;/STRONG&gt;. A medida Euclidiana é o comprimento do segmento de reta que une dois pontos. A medida Manhattan representa a distância de dois pontos com base na soma das diferenças absolutas de dois objetos (Google Maps).&lt;/P&gt;&lt;P&gt;Existem diversos métodos de agrupamento de dados hierárquico aglomerativo, como o single linkage, complete linkage, group-average, centroid e ward.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Single linkage(&lt;EM&gt;nearest neighbor)&lt;/EM&gt;:&lt;/STRONG&gt;&amp;nbsp;é um dos métodos mais simples de agrupamento de dados. A principal característica desse método é que a distância entre grupos é definida&amp;nbsp;pelo par de exemplos mais próximos pertencentes&amp;nbsp;a &lt;EM&gt;clusters&lt;/EM&gt; diferentes.&lt;/LI&gt;&lt;LI&gt;Não explicarei os demais para não estender demais o post.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;O algoritmo em questão foca mais solução utilizando o método Single Linkage com algumas alterações mais robustas [&lt;A href="http://cseweb.ucsd.edu/~dasgupta/papers/tree.pdf" target="_self"&gt;1&lt;/A&gt;].&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Usando o HDBSCAN no Qlik Sense&lt;BR /&gt;&lt;BR /&gt;&lt;/STRONG&gt;Fiz um &lt;A href="https://community.qlik.com/t5/Qlik-Brasil/Pytools-Data-Science-para-todos-no-Qlik-Sense/gpm-p/1611312" target="_self"&gt;post&lt;/A&gt; mencionando o uso da&amp;nbsp; extension SSE Pytools e suas etapas de instalação, agora explorarei o uso do algoritmo como expressão no Qlik.&lt;/P&gt;&lt;P&gt;O algoritmo basicamente classificara em &lt;EM&gt;clusters&lt;/EM&gt; a dimensão que definirmos como entrada. Os rótulos (classificação) são uma saída padrão, sendo que o numero - 1 significa os &lt;EM&gt;Outliers&lt;/EM&gt; e de 0 para cima são os &lt;EM&gt;clusters&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;A função .&lt;EM&gt;Cluster&lt;/EM&gt; aceita três parâmetros:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;A dimensão a ser armazenada em cluster;&lt;/LI&gt;&lt;LI&gt;O conjunto de recursos como uma string concatenada;&lt;/LI&gt;&lt;LI&gt;Uma string no qual podemos definir alguns argumentos opcionais.&lt;/LI&gt;&lt;/UL&gt;&lt;PRE&gt;Pytools.Cluster([Dimensão], [Medida1] &amp;amp; ';' &amp;amp; [Medida2] ..., 'arg1=value1, arg2=value2, ...')&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;As metricas precisão ser separadas por ponto e virgula ' ; ' e os argumentos pode sem definidos da seguinte forma:&lt;/P&gt;&lt;PRE&gt;Pytools.Cluster([Dimensão], [Medida1] &amp;amp; ';' &amp;amp; [Medida2], 'scaler=quantile,min_cluster_size=5,min_samples=5,metric=euclidean')&lt;/PRE&gt;&lt;P&gt;Também possível explorar a possibilidade de ter 2 dimensões ou aplicar o algoritmo para &lt;EM&gt;Geospatial Clustering&lt;/EM&gt;. Abordarei a minha aplicação neste dois cenários em um post futuro. Caso queiram ter acesso a documentação original basta acessar este &lt;A href="https://github.com/nabeel-oz/qlik-py-tools/blob/master/docs/Clustering.md" target="_self"&gt;link&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;Parâmetros HDBSCAN&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Palavra Chave&lt;/TD&gt;&lt;TD&gt;Descrição&lt;/TD&gt;&lt;TD&gt;Valores&lt;/TD&gt;&lt;TD&gt;Observações&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;algorithm&lt;/TD&gt;&lt;TD&gt;Precisamente qual algoritmo utilizar; HDBSCAN tem algumas opções de acordo com o tipo de dado. O algoritmo padrão é o “best” independente do tipo do grupo de dado. Você pode configurar outros caso deseje.&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;best,&amp;nbsp;generic&lt;/P&gt;&lt;P&gt;prims_kdtree,&amp;nbsp;&lt;/P&gt;&lt;P&gt;prims_balltree,&lt;/P&gt;&lt;P&gt;&amp;nbsp;boruvka_kdtree,&amp;nbsp;&lt;/P&gt;&lt;P&gt;boruvka_balltree&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;Valor padrão é best.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;metric&lt;/TD&gt;&lt;TD&gt;Essa métrica é definida quando calculamos a distancia entre as instancias (pontos) no vetor de features (métricas)&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;euclidean,&amp;nbsp;&lt;/P&gt;&lt;P&gt;manhattan,&amp;nbsp;&lt;/P&gt;&lt;P&gt;canberra,&amp;nbsp;&lt;/P&gt;&lt;P&gt;precomputed&lt;/P&gt;&lt;P&gt;etc&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Uma serie de metricas de distancia estão disponiveis.&lt;/P&gt;&lt;P&gt;A metrica padrão é a euclidean. Para a função de &amp;nbsp;Cluster_Geo&amp;nbsp;function o padrão é&amp;nbsp;haversine.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;min_cluster_size&lt;/TD&gt;&lt;TD&gt;Tamanho minimo do Cluster&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Este é um parâmetro primário que causa efeito direto no resultado de segmentação. Defina o valor minimo que você considera para um cluster/agrupamento de dados.&lt;/P&gt;&lt;P&gt;O valor padrão é&amp;nbsp;5.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;min_samples&lt;/TD&gt;&lt;TD&gt;O numero de amostras em uma vizinhança a partir de um determinado ponto a ser considerado como um ponto principal (core point)&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Quanto maior o valor definido para min_samples, mais conservador será o clustering – mais pontos serão definidos como noise (ruido), e os clusters estarão restritos progressivamente para areas mais densas.&lt;/P&gt;&lt;P&gt;Se esse parâmetro não for especificado, automaticamente o valor padrão será atribuido para&amp;nbsp;min_cluster_size.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;cluster_selection_method&lt;/TD&gt;&lt;TD&gt;Este é o método usado para selecionar os clusters em uma Condensed Tree.&lt;/TD&gt;&lt;TD&gt;eom,&amp;nbsp;leaf&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Se você esta interessado em ter um cluster mais pequeno e homogêneo que nas definições padrão, Excess of Mass, tem a tendencia de selecionar&lt;BR /&gt;um ou dois dos maiores cluster e particionar em um numero menor de clusters. É possivel utilizar a opção Leaf (nó folha), seleciona os leaf nodes de uma arvore, produzindo varios clusters pequenos e homogeneos. Note que é possível utilizar a variável de distancia junto com a variável de densidade, é possível produzir clusters grandes mas a tendencia é deixar a segmentação mais granular quando utilizado o Leaf.&lt;/P&gt;&lt;P&gt;O valor padrão é&amp;nbsp;eom.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;allow_single_cluster&lt;/TD&gt;&lt;TD&gt;Por padrão o HDBSCAN não produz cluster único (single cluster). Esse parâmetro ativa essa funcionalidade.&lt;/TD&gt;&lt;TD&gt;true,&amp;nbsp;false&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Valor padrão é&amp;nbsp;false.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p&lt;/TD&gt;&lt;TD&gt;O valor p é utilizado caso defina a métrica de distancia minkowski&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Valor padrão é None.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;alpha&lt;/TD&gt;&lt;TD&gt;O parâmetro de distancia escalar é utilizado no modo robust single linkage.&lt;/TD&gt;&lt;TD&gt;1.0&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Na pratica, não é muito aconselhável alterar os valores deste parâmetro.&lt;/P&gt;&lt;P&gt;O valor padrão é 1.0.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;match_&lt;/P&gt;&lt;P&gt;reference_&lt;/P&gt;&lt;P&gt;implementation&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;Essa flag muda da implementação padrão do HDBSCAN para a original do autor implementada em Java.&lt;/TD&gt;&lt;TD&gt;true,&amp;nbsp;false&lt;/TD&gt;&lt;TD&gt;Esse parâmetro pouco afeta na segmentação. Definir a flag como true, talvez afete a performance.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Também é possível configurar parâmetros básicos como:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;: Obter o retorno da probabilidade daquele ponto estar naquele cluster (0.0&amp;nbsp; ate 1.0)&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;scaler&lt;/STRONG&gt;:&amp;nbsp;Standardizing&amp;nbsp; é muito comum em algoritmos de aprendizado de maquina pode ser configurado para uma serie de opções como robust, quantile, none, standard&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Outros parâmetros podem ser encontrados no &lt;A href="https://github.com/nabeel-oz/qlik-py-tools/blob/master/docs/Clustering.md" target="_self"&gt;link&lt;/A&gt;.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Dashboards no Qlik Sense&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Os parâmetros podem ser definidos como filtros facilitando na definição de estrategia de segmentação. Isso facilita na visualização dos resultados conforme ajustamos os parâmetros. Existe a possibilidade de configurar no Load porem achei mais conveniente fazer como filter pane.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="filtros.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/16905i9D3BAC1BE86F34B3/image-size/large?v=v2&amp;amp;px=999" role="button" title="filtros.png" alt="filtros.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Uma dica interessante, é criar um botão para executar e parar a função de &lt;EM&gt;clustering&lt;/EM&gt;, será bem conveniente caso esteja processando um grande volume de dados. Abaixo, vemos um exemplo da aplicação de segmentação usando a função Cluster seguindo alguns parâmetros.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="com ruido.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/16906i6A774DF12521630A/image-size/large?v=v2&amp;amp;px=999" role="button" title="com ruido.png" alt="com ruido.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Também é possível filtrar os dados, removendo os &lt;EM&gt;outliers&lt;/EM&gt; e /ou ruídos no gráfico, chegando no seguindo resultado.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="retirando outlier.png" style="width: 963px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/16907iA71C857790F074A6/image-size/large?v=v2&amp;amp;px=999" role="button" title="retirando outlier.png" alt="retirando outlier.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Como é possível notar, existe uma infinidade de possibilidades de ajustar os parâmetros conforme a nossa necessidade. Importante é estudar como cada métrica e parâmetro funciona e estabelecer a melhor estrategia de acordo com as suas regras de negocio e escopo de trabalho&lt;/P&gt;&lt;P&gt;Compartilho essa experiencia em português para que a comunidade Qlik BR possa explorar um pouco mais deste SSE e Algoritmo.&lt;/P&gt;&lt;P&gt;&lt;A href="https://hdbscan.readthedocs.io/en/latest/how_hdbscan_works.html" target="_self"&gt;Link&lt;/A&gt; para a documentação padrão do HDBSCAN.&lt;BR /&gt;&lt;BR /&gt;Abraços e Qlik for the win.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 13 Aug 2019 11:34:56 GMT</pubDate>
    <dc:creator>Stankevix</dc:creator>
    <dc:date>2019-08-13T11:34:56Z</dc:date>
    <item>
      <title>Pytools - Algoritmo HDBSCAN</title>
      <link>https://community.qlik.com/t5/Brasil/Pytools-Algoritmo-HDBSCAN/m-p/1611787#M57452</link>
      <description>&lt;P&gt;Ola Comunidade Qlik,&lt;/P&gt;&lt;P&gt;O &lt;STRONG&gt;HDBSCAN&lt;/STRONG&gt; é um algoritmo de &lt;EM&gt;clustering&lt;/EM&gt; (segmentação) desenvolvido por Campello, Moulavi e Sander. É considerado uma extensão do &lt;STRONG&gt;DBSCAN&lt;/STRONG&gt;, transformando-o em um&amp;nbsp; algoritmo de &lt;EM&gt;clustering&lt;/EM&gt; hierárquico. Mas afinal, o que ser um algoritmo de &lt;EM&gt;clustering&lt;/EM&gt; hierárquico?&lt;BR /&gt;&lt;BR /&gt;Os algoritmos de clustering, analisa os exemplos fornecidos e os agrupa em clusters seguindo algum critério de similaridade. Um desses métodos é chamado de &lt;EM&gt;clustering&lt;/EM&gt; hierárquico. Existem duas abordagens para a construção de agrupamentos hierárquicos:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;A abordagem aglomerativa, no qual começa com clusters unitários (compostos de apenas um exemplo) e segue agrupando os &lt;EM&gt;clusters&lt;/EM&gt; iterativamente, sempre considerando o par de &lt;EM&gt;cluster&lt;/EM&gt; mais semelhantes com base na distância entre os mesmos. Esse processo é repetido até que exista&amp;nbsp;somente um único agrupamento contendo todos os&amp;nbsp;exemplos;&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;&amp;nbsp;A abordagem divisiva, que realiza a mesma tarefa, porém, em ordem inversa.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Em seguida, usa uma técnica para extrair o &lt;EM&gt;cluster&lt;/EM&gt;&amp;nbsp; mais simples com base na estabilidade do &lt;EM&gt;cluster&lt;/EM&gt;. Por exemplo, esta estabilidade por ser definida pela densidade da região em que se encontra os pontos/clusters.&lt;/P&gt;&lt;P&gt;Para calcular a distância entre dois pontos, existem uma serie de métodos que podem ser escolhidos, tais como a distância &lt;STRONG&gt;Euclidiana&lt;/STRONG&gt; e a &lt;STRONG&gt;Manhattan&lt;/STRONG&gt;. A medida Euclidiana é o comprimento do segmento de reta que une dois pontos. A medida Manhattan representa a distância de dois pontos com base na soma das diferenças absolutas de dois objetos (Google Maps).&lt;/P&gt;&lt;P&gt;Existem diversos métodos de agrupamento de dados hierárquico aglomerativo, como o single linkage, complete linkage, group-average, centroid e ward.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Single linkage(&lt;EM&gt;nearest neighbor)&lt;/EM&gt;:&lt;/STRONG&gt;&amp;nbsp;é um dos métodos mais simples de agrupamento de dados. A principal característica desse método é que a distância entre grupos é definida&amp;nbsp;pelo par de exemplos mais próximos pertencentes&amp;nbsp;a &lt;EM&gt;clusters&lt;/EM&gt; diferentes.&lt;/LI&gt;&lt;LI&gt;Não explicarei os demais para não estender demais o post.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;O algoritmo em questão foca mais solução utilizando o método Single Linkage com algumas alterações mais robustas [&lt;A href="http://cseweb.ucsd.edu/~dasgupta/papers/tree.pdf" target="_self"&gt;1&lt;/A&gt;].&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Usando o HDBSCAN no Qlik Sense&lt;BR /&gt;&lt;BR /&gt;&lt;/STRONG&gt;Fiz um &lt;A href="https://community.qlik.com/t5/Qlik-Brasil/Pytools-Data-Science-para-todos-no-Qlik-Sense/gpm-p/1611312" target="_self"&gt;post&lt;/A&gt; mencionando o uso da&amp;nbsp; extension SSE Pytools e suas etapas de instalação, agora explorarei o uso do algoritmo como expressão no Qlik.&lt;/P&gt;&lt;P&gt;O algoritmo basicamente classificara em &lt;EM&gt;clusters&lt;/EM&gt; a dimensão que definirmos como entrada. Os rótulos (classificação) são uma saída padrão, sendo que o numero - 1 significa os &lt;EM&gt;Outliers&lt;/EM&gt; e de 0 para cima são os &lt;EM&gt;clusters&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;A função .&lt;EM&gt;Cluster&lt;/EM&gt; aceita três parâmetros:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;A dimensão a ser armazenada em cluster;&lt;/LI&gt;&lt;LI&gt;O conjunto de recursos como uma string concatenada;&lt;/LI&gt;&lt;LI&gt;Uma string no qual podemos definir alguns argumentos opcionais.&lt;/LI&gt;&lt;/UL&gt;&lt;PRE&gt;Pytools.Cluster([Dimensão], [Medida1] &amp;amp; ';' &amp;amp; [Medida2] ..., 'arg1=value1, arg2=value2, ...')&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;As metricas precisão ser separadas por ponto e virgula ' ; ' e os argumentos pode sem definidos da seguinte forma:&lt;/P&gt;&lt;PRE&gt;Pytools.Cluster([Dimensão], [Medida1] &amp;amp; ';' &amp;amp; [Medida2], 'scaler=quantile,min_cluster_size=5,min_samples=5,metric=euclidean')&lt;/PRE&gt;&lt;P&gt;Também possível explorar a possibilidade de ter 2 dimensões ou aplicar o algoritmo para &lt;EM&gt;Geospatial Clustering&lt;/EM&gt;. Abordarei a minha aplicação neste dois cenários em um post futuro. Caso queiram ter acesso a documentação original basta acessar este &lt;A href="https://github.com/nabeel-oz/qlik-py-tools/blob/master/docs/Clustering.md" target="_self"&gt;link&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;Parâmetros HDBSCAN&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Palavra Chave&lt;/TD&gt;&lt;TD&gt;Descrição&lt;/TD&gt;&lt;TD&gt;Valores&lt;/TD&gt;&lt;TD&gt;Observações&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;algorithm&lt;/TD&gt;&lt;TD&gt;Precisamente qual algoritmo utilizar; HDBSCAN tem algumas opções de acordo com o tipo de dado. O algoritmo padrão é o “best” independente do tipo do grupo de dado. Você pode configurar outros caso deseje.&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;best,&amp;nbsp;generic&lt;/P&gt;&lt;P&gt;prims_kdtree,&amp;nbsp;&lt;/P&gt;&lt;P&gt;prims_balltree,&lt;/P&gt;&lt;P&gt;&amp;nbsp;boruvka_kdtree,&amp;nbsp;&lt;/P&gt;&lt;P&gt;boruvka_balltree&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;Valor padrão é best.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;metric&lt;/TD&gt;&lt;TD&gt;Essa métrica é definida quando calculamos a distancia entre as instancias (pontos) no vetor de features (métricas)&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;euclidean,&amp;nbsp;&lt;/P&gt;&lt;P&gt;manhattan,&amp;nbsp;&lt;/P&gt;&lt;P&gt;canberra,&amp;nbsp;&lt;/P&gt;&lt;P&gt;precomputed&lt;/P&gt;&lt;P&gt;etc&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Uma serie de metricas de distancia estão disponiveis.&lt;/P&gt;&lt;P&gt;A metrica padrão é a euclidean. Para a função de &amp;nbsp;Cluster_Geo&amp;nbsp;function o padrão é&amp;nbsp;haversine.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;min_cluster_size&lt;/TD&gt;&lt;TD&gt;Tamanho minimo do Cluster&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Este é um parâmetro primário que causa efeito direto no resultado de segmentação. Defina o valor minimo que você considera para um cluster/agrupamento de dados.&lt;/P&gt;&lt;P&gt;O valor padrão é&amp;nbsp;5.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;min_samples&lt;/TD&gt;&lt;TD&gt;O numero de amostras em uma vizinhança a partir de um determinado ponto a ser considerado como um ponto principal (core point)&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Quanto maior o valor definido para min_samples, mais conservador será o clustering – mais pontos serão definidos como noise (ruido), e os clusters estarão restritos progressivamente para areas mais densas.&lt;/P&gt;&lt;P&gt;Se esse parâmetro não for especificado, automaticamente o valor padrão será atribuido para&amp;nbsp;min_cluster_size.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;cluster_selection_method&lt;/TD&gt;&lt;TD&gt;Este é o método usado para selecionar os clusters em uma Condensed Tree.&lt;/TD&gt;&lt;TD&gt;eom,&amp;nbsp;leaf&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Se você esta interessado em ter um cluster mais pequeno e homogêneo que nas definições padrão, Excess of Mass, tem a tendencia de selecionar&lt;BR /&gt;um ou dois dos maiores cluster e particionar em um numero menor de clusters. É possivel utilizar a opção Leaf (nó folha), seleciona os leaf nodes de uma arvore, produzindo varios clusters pequenos e homogeneos. Note que é possível utilizar a variável de distancia junto com a variável de densidade, é possível produzir clusters grandes mas a tendencia é deixar a segmentação mais granular quando utilizado o Leaf.&lt;/P&gt;&lt;P&gt;O valor padrão é&amp;nbsp;eom.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;allow_single_cluster&lt;/TD&gt;&lt;TD&gt;Por padrão o HDBSCAN não produz cluster único (single cluster). Esse parâmetro ativa essa funcionalidade.&lt;/TD&gt;&lt;TD&gt;true,&amp;nbsp;false&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Valor padrão é&amp;nbsp;false.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p&lt;/TD&gt;&lt;TD&gt;O valor p é utilizado caso defina a métrica de distancia minkowski&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Valor padrão é None.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;alpha&lt;/TD&gt;&lt;TD&gt;O parâmetro de distancia escalar é utilizado no modo robust single linkage.&lt;/TD&gt;&lt;TD&gt;1.0&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Na pratica, não é muito aconselhável alterar os valores deste parâmetro.&lt;/P&gt;&lt;P&gt;O valor padrão é 1.0.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;match_&lt;/P&gt;&lt;P&gt;reference_&lt;/P&gt;&lt;P&gt;implementation&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;Essa flag muda da implementação padrão do HDBSCAN para a original do autor implementada em Java.&lt;/TD&gt;&lt;TD&gt;true,&amp;nbsp;false&lt;/TD&gt;&lt;TD&gt;Esse parâmetro pouco afeta na segmentação. Definir a flag como true, talvez afete a performance.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Também é possível configurar parâmetros básicos como:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;: Obter o retorno da probabilidade daquele ponto estar naquele cluster (0.0&amp;nbsp; ate 1.0)&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;scaler&lt;/STRONG&gt;:&amp;nbsp;Standardizing&amp;nbsp; é muito comum em algoritmos de aprendizado de maquina pode ser configurado para uma serie de opções como robust, quantile, none, standard&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Outros parâmetros podem ser encontrados no &lt;A href="https://github.com/nabeel-oz/qlik-py-tools/blob/master/docs/Clustering.md" target="_self"&gt;link&lt;/A&gt;.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Dashboards no Qlik Sense&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Os parâmetros podem ser definidos como filtros facilitando na definição de estrategia de segmentação. Isso facilita na visualização dos resultados conforme ajustamos os parâmetros. Existe a possibilidade de configurar no Load porem achei mais conveniente fazer como filter pane.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="filtros.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/16905i9D3BAC1BE86F34B3/image-size/large?v=v2&amp;amp;px=999" role="button" title="filtros.png" alt="filtros.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Uma dica interessante, é criar um botão para executar e parar a função de &lt;EM&gt;clustering&lt;/EM&gt;, será bem conveniente caso esteja processando um grande volume de dados. Abaixo, vemos um exemplo da aplicação de segmentação usando a função Cluster seguindo alguns parâmetros.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="com ruido.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/16906i6A774DF12521630A/image-size/large?v=v2&amp;amp;px=999" role="button" title="com ruido.png" alt="com ruido.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Também é possível filtrar os dados, removendo os &lt;EM&gt;outliers&lt;/EM&gt; e /ou ruídos no gráfico, chegando no seguindo resultado.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="retirando outlier.png" style="width: 963px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/16907iA71C857790F074A6/image-size/large?v=v2&amp;amp;px=999" role="button" title="retirando outlier.png" alt="retirando outlier.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Como é possível notar, existe uma infinidade de possibilidades de ajustar os parâmetros conforme a nossa necessidade. Importante é estudar como cada métrica e parâmetro funciona e estabelecer a melhor estrategia de acordo com as suas regras de negocio e escopo de trabalho&lt;/P&gt;&lt;P&gt;Compartilho essa experiencia em português para que a comunidade Qlik BR possa explorar um pouco mais deste SSE e Algoritmo.&lt;/P&gt;&lt;P&gt;&lt;A href="https://hdbscan.readthedocs.io/en/latest/how_hdbscan_works.html" target="_self"&gt;Link&lt;/A&gt; para a documentação padrão do HDBSCAN.&lt;BR /&gt;&lt;BR /&gt;Abraços e Qlik for the win.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Aug 2019 11:34:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Brasil/Pytools-Algoritmo-HDBSCAN/m-p/1611787#M57452</guid>
      <dc:creator>Stankevix</dc:creator>
      <dc:date>2019-08-13T11:34:56Z</dc:date>
    </item>
  </channel>
</rss>

