/p>
2 2 2 2 2 2 2 2 2 2
правий аргумент функції rexec одиниця служить для того, щоб передати результат в APL аналогічно з розмірами класів
1 rexec «cl $ size»
49
і центрами класів
rexec «cl $ centers»
0.04238166514? 0.01510380116
0.9453574183 1.006225326
для наочного подання можна побудувати графік за допомогою функції plot
rexec « plot (x, col=cl $ cluster) »
щоб завдати центри класів використовуємо функцію points
rexec 'points (cl $ centers, col=1:2, pch=8)
Рис. 4 - Кластери, отримані після застосування kmeans
Для порівняння проведемо аналогічні дії на мові APL
Спочатку передаємо значення матриці х в APL сесію
x" rget« x »
отримуємо матрицю, розмірністю
? x
100 2
Далі застосуємо APL функцію kmean, аналогічну функції в R
m" 2 kmean> [2] s
отримуємо 2 класу:" mclass> [2] sc
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2
будуємо графік за допомогою APL функції plot
0 plot> [1]? (> [2] 1 2 °.=c)??> x
Рис. 5 - Кластери, отримані після застосування kmean
Матриця центрів визначається в APL сесії наступним чином:
? m
.04238166514? 0.01510380116
0.9453574183 1.006225326
розміри класів:
+ / c=2
+ / c=1
Як бачимо, результати абсолютно ідентичні!
3.5 Програмна реалізація
Для автоматизації роботи з функціями R в APL сесії, будують оболонку
3.5.1 Кластерний аналіз
Функція r_kmean
Призначення: передає в R матрицю даних, розділяє її на кластери і повертає результат в APL.
Аргументи: матриця вихідних даних,
k-задаваемое кількість кластерів.
Результат: cu-вектор, який показує яка точка до якого кластеру відноситься ce-матриця центрів кластерів.
Текст функції
y" k r_kmean mat; cu; ce
«mat» rput mat
«k» rput k «cl <- kmeans (mat, k, 20)» «cu <-cl $ cluster»" rget« cu »
rexec «ce <-cl $ centers»" rget« ce »" cu ce
Функція n_clust
Призначення: показує, скільки точок у кож...