Як використовувати proc cluster у sas (з прикладом)


Кластеризація – це техніка машинного навчання, яка намагається знайти групи спостережень у наборі даних.

Мета полягає в тому, щоб знайти такі кластери, щоб спостереження всередині кожного кластера були досить подібними одне до одного, тоді як спостереження в різних кластерах сильно відрізнялися одне від одного.

Найпростіший спосіб зробити кластеризацію в SAS — це використовувати PROC CLUSTER .

У наступному прикладі показано, як використовувати PROC CLUSTER на практиці.

Приклад: як використовувати PROC CLUSTER у SAS

Скажімо, у нас є такий набір даних, що містить інформацію про очки, передачі та підбирання для 20 різних баскетболістів:

 /*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;

Скажімо, ми хочемо згрупувати, щоб спробувати ідентифікувати «кластери» гравців зі схожими характеристиками один одного.

Наступний код показує, як використовувати PROC CLUSTER у SAS для виконання кластеризації:

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

Перші таблиці результату містять інформацію про те, як було здійснено кластеризацію:

Також створюється дендрограма, щоб ми могли візуально перевірити подібність між спостереженнями в наборі даних:

На осі ординат відображаються окремі спостереження, а на осі абсцис – середня відстань між кластерами.

Дивлячись на цю дендрограму, здається, що спостереження природно поділяються на три групи:

Приклад SAS PROC CLUSTER

Потім ми можемо використати оператор PROC TREE з ncl=3 , щоб сказати SAS призначити кожне спостереження у вихідному наборі даних одному з трьох кластерів:

 /*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 ;

Отриманий набір даних показує кожне з вихідних спостережень разом із кластером, до якого вони належать:

Наприклад, ми бачимо, що всі гравці з ідентифікаторами 2, 3, 1, 4, 5, 7, 6 і 19 належать до кластеру 1 .

Це говорить нам про те, що ці вісім гравців «схожі» за кількістю очок, передач і підбирань.

Примітка . Для цього прикладу ми вирішили використовувати усереднення як метод зв’язування для кластеризації. Зверніться до документації SAS , щоб отримати повний список інших методів зв’язування, які можна використовувати.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в SAS:

Як виконати аналіз основних компонентів у SAS
Як виконати множинну лінійну регресію в SAS
Як виконати логістичну регресію в SAS

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *