Klasterisasi KMeans

Compiled by: Suprapto van Plaosan

Klasterisasi data menggunakan KMeans merupakan algoritma yang sangat populer karena kemudahannya. Data akan dikelompokkan berdasarkan kedekatan masing-masing titik data pada titik beratnya. Secara umum, data yang jaraknya dekat biasanya mempunyai kesamaan yang lebih besar daripada data yang jaraknya jauh. Jarak antar data biasanya diukur menggunakan Eucledian Distance.

Klasterisasi data KMeans di Python dapat dilakukan dengan mengimpor pustaka KMeans dari scikitlearn cluster

Breast Cancer Wisconsin (Diagnostic) Data Set

Diagnosis dan deteksi dini kanker payudara dengan mendiagnosis massa payudara dari Aspirasi Jarum Halus (FNA) telah dibuat yang memungkinkan diagnosis FNA payudara bahkan oleh pengguna yang tidak terlatih. Sistem ini digunakan di Rumah Sakit University of Wisconsin. Antarmuka grafis dikembangkan untuk menghitung fitur wilayah kecil dari FNA didigitalkan, menghasilkan 640 × 400, 8-bit-per-pixel gambar grayscale. Program analisis gambar, program Xcyt digunakan untuk fitting kurva untuk menentukan batas-batas inti. Sebagian dari gambar yang diproses ditunjukkan pada Gambar 1. Sepuluh fitur dihitung untuk masing-masing inti: luas, jari-jari, keliling, simetri, jumlah dan ukuran cekung, dimensi fraktal (batas), kekompakan, kehalusan dan tekstur. Data diagnosis berisi simbol B dan M yang mewakili Benign/Sehat dan Malignant/Sakit.

Gambar 1: Gambar FNA yang diperbesar dari sel kanker payudara ganas (Munish Puri, et.al., 2013, https://archive.ics.uci.edu)

WDBC Datasets

Diagnosis radius texture perimeter area smoothness compactness concavity concave symmetry fractal
0 M 17.99 10.38 122.80 1001.0 0.11840 0.27760 0.3001 0.14710 0.2419 0.07871
1 M 20.57 17.77 132.90 1326.0 0.08474 0.07864 0.0869 0.07017 0.1812 0.05667
2 M 19.69 21.25 130.00 1203.0 0.10960 0.15990 0.1974 0.12790 0.2069 0.05999
3 M 11.42 20.38 77.58 386.1 0.14250 0.28390 0.2414 0.10520 0.2597 0.09744
4 M 20.29 14.34 135.10 1297.0 0.10030 0.13280 0.1980 0.10430 0.1809 0.05883

Deskripsi statistik data WDBC

radius texture perimeter area smoothness compactness concavity concave symmetry fractal
count 569.000000 569.000000 569.000000 569.000000 569.000000 569.000000 569.000000 569.000000 569.000000 569.000000
mean 14.127292 19.289649 91.969033 654.889104 0.096360 0.104341 0.088799 0.048919 0.181162 0.062798
std 3.524049 4.301036 24.298981 351.914129 0.014064 0.052813 0.079720 0.038803 0.027414 0.007060
min 6.981000 9.710000 43.790000 143.500000 0.052630 0.019380 0.000000 0.000000 0.106000 0.049960
25% 11.700000 16.170000 75.170000 420.300000 0.086370 0.064920 0.029560 0.020310 0.161900 0.057700
50% 13.370000 18.840000 86.240000 551.100000 0.095870 0.092630 0.061540 0.033500 0.179200 0.061540
75% 15.780000 21.800000 104.100000 782.700000 0.105300 0.130400 0.130700 0.074000 0.195700 0.066120
max 28.110000 39.280000 188.500000 2501.000000 0.163400 0.345400 0.426800 0.201200 0.304000 0.097440

Plot Scatter dan Density masing-masing variable

<seaborn.axisgrid.PairGrid at 0x7fb1713a2860>

Koefisien korelasi

dari Wikipedia, ensiklopedia gratis

Koefisien korelasi adalah ukuran numerik dari beberapa jenis korelasi , yang berarti hubungan statistik antara dua variabel . [1] Variabel dapat berupa dua kolom dari kumpulan data pengamatan tertentu, sering disebut sampel , atau dua komponen variabel acak multivariat dengan distribusi yang diketahui .

Ada beberapa jenis koefisien korelasi, masing-masing dengan definisi dan jangkauan kegunaan dan karakteristik masing-masing. Mereka semua mengasumsikan nilai dalam kisaran dari −1 hingga +1, di mana ± 1 menunjukkan kesepakatan terkuat dan 0 ketidaksetujuan sekuat mungkin. [2] Sebagai alat analisis, koefisien korelasi menyajikan masalah-masalah tertentu, termasuk kecenderungan beberapa jenis untuk terdistorsi oleh pencilan dan kemungkinan salah digunakan untuk menyimpulkan hubungan sebab akibat antara variabel.

radius texture perimeter area smoothness compactness concavity concave symmetry fractal
radius 1.000000 0.323782 0.997855 0.987357 0.170581 0.506124 0.676764 0.822529 0.147741 -0.311631
texture 0.323782 1.000000 0.329533 0.321086 -0.023389 0.236702 0.302418 0.293464 0.071401 -0.076437
perimeter 0.997855 0.329533 1.000000 0.986507 0.207278 0.556936 0.716136 0.850977 0.183027 -0.261477
area 0.987357 0.321086 0.986507 1.000000 0.177028 0.498502 0.685983 0.823269 0.151293 -0.283110
smoothness 0.170581 -0.023389 0.207278 0.177028 1.000000 0.659123 0.521984 0.553695 0.557775 0.584792
compactness 0.506124 0.236702 0.556936 0.498502 0.659123 1.000000 0.883121 0.831135 0.602641 0.565369
concavity 0.676764 0.302418 0.716136 0.685983 0.521984 0.883121 1.000000 0.921391 0.500667 0.336783
concave 0.822529 0.293464 0.850977 0.823269 0.553695 0.831135 0.921391 1.000000 0.462497 0.166917
symmetry 0.147741 0.071401 0.183027 0.151293 0.557775 0.602641 0.500667 0.462497 1.000000 0.479921
fractal -0.311631 -0.076437 -0.261477 -0.283110 0.584792 0.565369 0.336783 0.166917 0.479921 1.000000
<matplotlib.axes._subplots.AxesSubplot at 0x7fb16ce505c0>

<seaborn.matrix.ClusterGrid at 0x7fb168040b00>

<Figure size 1080x1080 with 0 Axes>

Data variabel yang mempengaruhi kategori/klas sel

Data klasifikasi/kategori sel

array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1,
       0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1,
       1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1,
       1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0,
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0,
       0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0])

Nilai 1 pada Data Diagnosis mewakili Malignat sedang nilai 0 mewakili Benign,

KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
       n_clusters=2, n_init=10, n_jobs=None, precompute_distances='auto',
       random_state=None, tol=0.0001, verbose=0)

Kurva hasil klasterisasi menggunakan KMeans Clustering

Confusion Matrix

Dalam bidang machine learning dan khususnya masalah klasifikasi statistik , Confusion Matrix , yang juga dikenal sebagai matriks kesalahan, [4] adalah tata letak tabel spesifik yang memungkinkan visualisasi kinerja suatu algoritma, biasanya supervised learning (dalam belajar tanpa pengawasan biasanya disebut matriks contingency). Setiap baris matriks mewakili nilai dalam kelas yang diprediksi sementara setiap kolom mewakili nilai dalam kelas sebenarnya (atau sebaliknya). [2] Nama ini berasal dari fakta bahwa membuatnya mudah untuk melihat apakah sistem membingungkan dua kelas (yaitu umumnya salah memberi label satu sama lain).

Ini adalah jenis khusus dari tabel kontingensi , dengan dua dimensi ("aktual" dan "diperkirakan"), dan set "kelas" yang identik di kedua dimensi (setiap kombinasi dimensi dan kelas adalah variabel dalam tabel kontingensi).

array([[351,  49],
       [  6, 163]])

Text(22.5, 0.5, 'True Value')

Akurasi= 0.9033391915641477

Adjusted Mutual Information

Metrik ini merupakan pengukuran simetris: perbandingan label_true dengan label_pred akan menghasilkan nilai skor yang sama. Ini bisa bermanfaat untuk mengukur kesesuaian dua label independen pada dataset yang sama ketika label yang sebenarnya tidak diketahui.

0.5564200344339099
Skore mendekati nilai 1 untuk klaster yang identik.

Rand index adjusted

0.6464599430260256
Skore mendekati nilai 1 untuk klaster yang identik.

Calinski and Harabaz score

359.68139472532044
Skore menunjukkan rasio dispersi dalam klaster terhadap dispersi antar klaster.

/home/van/anaconda3/lib/python3.6/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function calinski_harabaz_score is deprecated; Function 'calinski_harabaz_score' has been renamed to 'calinski_harabasz_score' and will be removed in version 0.23.
  warnings.warn(msg, category=FutureWarning)

Davies-Bouldin score

1.1062595413819387
Skore menunjukkan rasio jarak dalam klaster terhadap jarak antar klaster.

Completeness Score

0.580847445571652
*Completeness* menunjukkan apakah semua titik data untuk kelompok yang sama merupakan anggota klaster yang sama.

Contingency Matrix

[[351   6]
 [ 49 163]]

Matriks antara nilai sebenarnya dengan nilai prediksi. Matrix ini serupa dengan Confusion Matrix

Fowlkes Mallows Score

0.843716322643944

Skore bernilai antara 0 sampai dengan 1. Semakin tinggi nilai semakin bagus tingkat kesamaan antara nilai sebenarnya dengan nilai prediksi.

Homogeneity and Completeness

(0.5351014004502405, 0.580847445571652, 0.5570367901383866)

Mempunyai nilai antara 0.0 sampai dengan 1.0. Nilai yang baik adalah nilai yang mendekati 1.0

Homogeneity Score

0.5351014004502405

Skor antara 0.0 sampai dengan 1.0. Skor 1.0 menunjukkan labelisasi homogen

Mutual Info Score

0.3533362031945564

Nilai yang didasarkan pada perhitungan contingency matrix

Normalized Mutual Info Score

0.5570367901383866

Skor antara 0.0 sampai dengan 1.0. Skor 1.0 menunjukkan labelisasi total

Silhouette Score

0.3945932646429975

Nilai paling bagus adalah 1 dan nilai paling jelek adalah -1. Nilai mendekati 0 menunjukkan klaster yang tumpang tindih. Nilai negatif menunjukkan bahwa sampel dikelompokkan ke dalam klaster yang salah

Silhouette Samples

[ 0.29965159  0.13277279  0.459451    0.13195393  0.33747929  0.00743221
  0.15290899 -0.01172979  0.17477282  0.14980691  0.37026552  0.12280445
  0.36872914  0.18108328  0.2012558   0.18016158  0.40763193  0.32322514
  0.27680053  0.46556192  0.39948941  0.52005841  0.22749662  0.28332121
  0.31044635  0.282224    0.18259326  0.20939504  0.23991538  0.02829799
  0.45049192  0.13019578  0.3873866   0.35989956  0.15996967  0.08454503
  0.23602099  0.56876774  0.39601907  0.33440906  0.52839942  0.26921787
  0.39725908  0.22103337  0.43018304  0.39863297  0.56565375  0.11602187
  0.54272115  0.49975345  0.57623454  0.53084868  0.59396294  0.39441249
  0.42977179  0.58009988  0.33552055  0.07280494  0.55048876  0.50656693
  0.28463601  0.42003105  0.2085512   0.41540767  0.18472144  0.14176173
  0.52628524  0.58230826  0.11526336  0.56507618  0.13592156  0.26693135
  0.34722072  0.39194394  0.60760054  0.19605995  0.12525255  0.36605131
  0.31712088  0.56270128  0.46276026  0.18019516  0.38126255  0.37699841
  0.52682727  0.26421369  0.24088985  0.28135705  0.49834205 -0.09378237
  0.43228933  0.16099588  0.49844347  0.52590039  0.13534201  0.35268714
  0.53440399  0.52056048  0.55943441  0.29651042  0.39297217  0.39701558
  0.57275029  0.52649265  0.48052632  0.10514067  0.45689251  0.60912722
  0.36265812  0.56682269  0.5293052   0.34356452  0.10461945  0.33645358
  0.4335621   0.57132246  0.45196372  0.17656574  0.31757755  0.07940117
  0.54671789  0.27912586  0.33716692  0.27067336  0.4950743   0.57659279
  0.45469549  0.01424525  0.09964056  0.44605528  0.49916621  0.06706486
  0.02896584  0.3013122   0.12726863  0.54968123  0.52908912  0.59294347
  0.06571881  0.42726649  0.54358803  0.14945954  0.53790835  0.56291649
  0.56000134  0.30976039 -0.00080584  0.3748148   0.38814591  0.54166342
  0.25938257  0.28150174  0.04107922  0.57102752  0.5138285   0.56962117
  0.40446942  0.30054787  0.5737535   0.54433169  0.42367579  0.16600271
  0.44535675  0.48254628  0.31342427  0.47386567  0.50975244  0.1332507
  0.3231274   0.45030718  0.49287229  0.54300068  0.17677582  0.56674893
  0.57712433  0.55667845  0.33735207  0.23356138  0.45423253  0.55852732
  0.3543023   0.40234029  0.32138818  0.50706317  0.37287572  0.59533535
  0.08641457  0.58725442  0.58807214  0.57235883  0.19906572  0.56916785
  0.54558333  0.2180999   0.18179542  0.5602926  -0.06823598 -0.05692166
  0.20923074  0.20509782  0.52497723 -0.01886905  0.41600718  0.18090554
  0.48223413  0.42418439  0.5331502   0.15539392  0.24235805  0.42133488
  0.31947729  0.60826188  0.3131848   0.07920551 -0.09311023  0.17974969
  0.51065839  0.56249458  0.33409172  0.12403569  0.49180962  0.37054667
  0.52295355 -0.04801728  0.56701492  0.36654253  0.56464165  0.40270108
  0.50855037  0.0347301   0.36911509  0.44883324  0.35131631  0.24446636
  0.58431927  0.52873179  0.41290472  0.07449919  0.27830691  0.15887494
  0.53507177  0.57463238  0.2956885   0.46236695  0.4327245   0.54337566
  0.53620172  0.40426445  0.49962064  0.55863752  0.44853133  0.60294066
  0.41924535  0.08424138  0.30347798  0.2738375   0.39549404  0.28933367
  0.30585209  0.21198053  0.3393771   0.27192708  0.12466479  0.4331552
 -0.01654851  0.29307798  0.52580599  0.52495772  0.53561072  0.44343621
  0.4709886   0.56684208  0.41657009  0.54519875  0.14117909  0.31805215
  0.5588428   0.06941714  0.55317826  0.44005882  0.40726203  0.51183954
  0.37542001  0.2882119   0.48377632  0.59605367  0.51798882  0.4964866
  0.25166669  0.56502399  0.1168181   0.38826149  0.54113194  0.58470676
  0.56956499  0.54677925  0.5626157   0.58732919  0.48579663  0.53600092
  0.42440449  0.54482103  0.43062237  0.54594823  0.58733212  0.49700518
  0.58711563  0.52003571  0.4880957   0.54283342  0.58674484  0.48843005
  0.56732621  0.54484579  0.44183452  0.52853296  0.56263914  0.16417202
  0.09672972  0.55621199  0.45650558  0.15920059  0.45633109  0.42071707
  0.60852736  0.57021748  0.49322656  0.56402508  0.22047013  0.23690718
 -0.08934242  0.50420102  0.54202083  0.59403198  0.59539705  0.2205359
  0.48511613  0.219243    0.57477712  0.39695518  0.37698369  0.48134948
  0.52161048  0.41334054  0.45539391  0.54229968  0.60545392  0.48920642
  0.61215533  0.30219459  0.58125854  0.32913542  0.3705067   0.12082855
  0.5627569   0.50003164  0.28100866  0.5495789   0.54124825  0.54355348
  0.52826323  0.53663303  0.5871442   0.29445705  0.57265936  0.22937143
  0.42246199  0.60804558  0.22401439  0.44938195  0.28233153  0.45311394
  0.39478971  0.25196751  0.54145219  0.11860847  0.08933444  0.41615437
  0.5463363  -0.00452544  0.30060107  0.55093668  0.41441996  0.47835889
  0.53013014  0.37225206  0.56591754  0.51447795  0.46556729  0.42031489
  0.54602122  0.50095105  0.24660001  0.45393299  0.52142929  0.54438654
  0.37428127  0.53303729  0.58183117  0.60726896  0.39909878  0.53601881
  0.53311486  0.57090551  0.58821966  0.55854985  0.34620658  0.53154528
  0.29281745  0.55195636  0.61494526  0.56068729  0.51141942  0.34283877
  0.27839382  0.52298774  0.50166543  0.23890919  0.55865636  0.56856774
  0.54881407  0.01116078  0.45426869  0.41625644  0.3457372   0.57130783
  0.51482132  0.53914026  0.59620496  0.56114643  0.29318649  0.41215018
  0.42400541  0.38417982  0.50774325  0.27788256  0.57072515  0.55170873
  0.55108624  0.53653292  0.51891639 -0.05749915  0.54663385  0.45486226
  0.01601983  0.40845842  0.26236239  0.470102    0.46509412  0.33476103
  0.44278615  0.29302641  0.45149693  0.3356401   0.59469574  0.33549276
  0.39053161  0.48535218  0.48932726  0.47107414  0.0852759   0.33878994
  0.38295402  0.60272242  0.52669042  0.45976854  0.46784274  0.59404011
  0.31627506  0.23747812  0.49859491  0.43449196  0.46404592  0.42118541
  0.52975523  0.57455727  0.47213918  0.49677209  0.54696606  0.33483228
  0.59175052  0.54117956  0.39636769  0.53845192  0.1498682   0.21883425
  0.47202521  0.42487778  0.49296863  0.3271263   0.56332084  0.25591852
  0.26171474  0.54869138  0.54663188  0.40271155  0.38036248  0.59814728
  0.29031187  0.460364    0.24787206  0.10678859  0.4031765   0.31536687
 -0.02096605  0.0584852   0.35779373  0.30928656  0.34924478  0.26432542
  0.53099074  0.48567048  0.01413856  0.40887997  0.42477979  0.54022005
  0.34356897  0.374709    0.2210181   0.38179958  0.25186618  0.41311664
  0.60093124  0.45722744  0.53800382  0.50503032  0.46075461  0.56091403
  0.18711513  0.49939434  0.50100782  0.54538718  0.57593363  0.35586883
  0.58072184  0.46675499  0.12879173  0.16570595  0.45279926  0.35078137
  0.51077624  0.25701944  0.38591525  0.41434099  0.48765009  0.51014053
  0.59059097  0.5850861   0.59224837  0.51310026  0.5613411   0.5004009
  0.41478126  0.55862004  0.40227123  0.46012323  0.58007945  0.47684068
  0.32328102  0.42847024  0.31619362  0.39068936  0.28439429  0.44488031
  0.40440259  0.30703151  0.10788641  0.39267411  0.43963485]

Nilai paling bagus adalah 1 dan nilai paling jelek adalah -1. Nilai mendekati 0 menunjukkan klaster yang tumpang tindih.

v_measure Score

0.5570367901383866

Skor antara 0.0 sampai dengan 1.0. Skor 1.0 menunjukkan labelisasi total