Como usar proc cluster em sas (com exemplo)


Clustering é uma técnica de aprendizado de máquina que tenta encontrar grupos de observações dentro de um conjunto de dados.

O objetivo é encontrar clusters tais que as observações dentro de cada cluster sejam bastante semelhantes entre si, enquanto as observações em diferentes clusters sejam bastante diferentes umas das outras.

A maneira mais fácil de fazer clustering no SAS é usar PROC CLUSTER .

O exemplo a seguir mostra como usar PROC CLUSTER na prática.

Exemplo: como usar PROC CLUSTER em SAS

Digamos que temos o seguinte conjunto de dados contendo informações sobre pontos, assistências e rebotes de 20 jogadores de basquete diferentes:

 /*create dataset*/             
data my_data;
    input points assists rebounds;   
    datalines ;
18 3 15
20 3 14
19 4 14
14 5 10
14 4 8
15 7 14
20 8 13
28 7 9
30 6 5
31 9 4
35 12 11
33 14 6
29 9 5
25 9 5
25 4 3
27 3 8
29 4 12
30 12 7
19 5 6
23 11 5
;
run ;

/*view dataset*/ 
proc print data =my_data;

Digamos que queremos fazer alguns agrupamentos para tentar identificar “grupos” de jogadores com estatísticas semelhantes entre si.

O código a seguir mostra como usar PROC CLUSTER no SAS para realizar clustering:

 /*perform clustering using points, assists and rebounds variables*/             
proc cluster data =my_data method =average;
var points assists rebounds;
run ;

As primeiras tabelas do resultado fornecem informações sobre como foi realizado o agrupamento:

Um dendograma também é produzido para que possamos inspecionar visualmente a semelhança entre as observações no conjunto de dados:

O eixo y mostra observações individuais e o eixo x mostra a distância média entre os clusters.

Olhando para este dendograma, parece que as observações se enquadram naturalmente em três grupos:

Exemplo de SAS PROC CLUSTER

Podemos então usar a instrução PROC TREE com ncl=3 para dizer ao SAS para atribuir cada observação no conjunto de dados original a um dos três clusters:

 /*assign each observation to one of three clusters*/
proc tree data =clustd noprint ncl =3 out =clusts;
    copy points assists rebounds;
    id player_ID;
run ;
proc sort ;
   by cluster;
run ;

/*view cluster assignments*/
proc print data = clusters;
    id player_ID;
run ;

O conjunto de dados resultante mostra cada uma das observações originais junto com o cluster ao qual pertencem:

Por exemplo, podemos ver: que os jogadores com IDs 2, 3, 1, 4, 5, 7, 6 e 19 pertencem todos ao cluster 1 .

Isso nos diz que esses oito jogadores são “semelhantes” em termos de variáveis de pontos, assistências e rebotes.

Nota : Para este exemplo, optamos por usar a média como método de vinculação para clustering. Consulte a documentação do SAS para obter uma lista completa de outros métodos de ligação que você pode usar.

Recursos adicionais

Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:

Como realizar análise de componentes principais no SAS
Como realizar regressão linear múltipla no SAS
Como realizar regressão logística no SAS

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *