Klasterisasi Data

Compiled by: Suprapto van Plaosan

Topik

  • Klasterisasi Data
    • PCA
    • KMeans Clustering

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.

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

Medium.com

Principal component analysis ( PCA ) adalah prosedur statistik yang menggunakan transformasi ortogonal untuk mengubah seperangkat pengamatan dari variabel yang mungkin berkorelasi (entitas yang masing-masing mengambil berbagai nilai numerik) menjadi seperangkat nilai variabel tidak linear yang disebut komponen utama . Transformasi ini didefinisikan sedemikian rupa sehingga komponen utama pertama memiliki varians sebesar mungkin (yaitu, menyumbang sebanyak variabilitas dalam data mungkin), dan setiap komponen berikutnya pada gilirannya memiliki varians tertinggi yang mungkin di bawah kendala bahwa itu ortogonalke komponen sebelumnya. Vektor yang dihasilkan (masing-masing merupakan kombinasi linear dari variabel dan berisi n pengamatan) adalah himpunan basis ortogonal yang tidak berkorelasi . PCA sensitif terhadap skala relatif dari variabel asli.

PCA ditemukan pada tahun 1901 oleh Karl Pearson , [1] sebagai analog dari teorema sumbu utama dalam mekanika; kemudian dikembangkan secara independen dan dinamai oleh Harold Hotelling pada 1930-an. [2] Bergantung pada bidang aplikasi, ia juga dinamai diskrit Karhunen-Loève (KLT) dalam pemrosesan sinyal , transformasi Hotelling dalam kontrol kualitas multivariat, dekomposisi ortogonal yang tepat (POD) dalam teknik mesin, dekomposisi nilai singular (SVD) ) dari X (Golub dan Van Loan, 1983), dekomposisi nilai eigen (EVD) dari XT X dalam aljabar linier, analisis faktor (untuk diskusi tentang perbedaan antara PCA dan analisis faktor, lihat Bab 7 dari Analisis Komponen Utama Jolliffe ), [3] Eckart-Young theorem (Harman, 1960), atau fungsi ortogonal empiris (EOF ) dalam ilmu meteorologi, dekomposisi fungsi eigen empiris (Sirovich, 1987), analisis komponen empiris (Lorenz, 1956), mode quasiharmonic (Brooks et al., 1988), dekomposisi spektral dalam kebisingan dan getaran, dan analisis modal empiris dalam dinamika struktural.

PCA sebagian besar digunakan sebagai alat dalam analisis data eksplorasi dan untuk membuat model prediksi . Ini sering digunakan untuk memvisualisasikan jarak genetik dan keterkaitan antar populasi. PCA dapat dilakukan dengan dekomposisi nilai eigen dari matriks kovarians data (atau korelasi ) atau dekomposisi nilai singular dari matriks data , biasanya setelah langkah normalisasi data awal. Normalisasi setiap atribut terdiri dari pemusatan rata - rata - mengurangkan setiap nilai data dari rata-rata variabel yang diukur sehingga rata-rata empirisnya (rata-rata) adalah nol - dan, mungkin, menormalkan varian masing-masing variabel agar sama dengan 1; LihatSkor-Z . [4] Hasil PCA biasanya dibahas dalam hal skor komponen , kadang-kadang disebut skor faktor (nilai variabel yang ditransformasikan sesuai dengan titik data tertentu), dan pembebanan (bobot di mana setiap variabel asli standar harus dikalikan untuk mendapatkan skor komponen). [5]Jika skor komponen distandarisasi untuk varians unit, memuat harus berisi varians data di dalamnya (dan itu adalah besarnya nilai eigen). Jika skor komponen tidak distandarisasi (karena itu mengandung varians data) maka pemuatan harus berskala-unit, ("dinormalisasi") dan bobot ini disebut vektor eigen; mereka adalah cosinus dari rotasi orthogonal variabel menjadi komponen utama atau belakang.

PCA adalah analisis multivariat berbasis vektor eigen yang paling sederhana . Seringkali, operasinya dapat dianggap sebagai mengungkapkan struktur internal data dengan cara yang paling menjelaskan perbedaan dalam data. Jika dataset multivariat divisualisasikan sebagai seperangkat koordinat dalam ruang data dimensi tinggi (1 sumbu per variabel), PCA dapat menyediakan gambar dimensi yang lebih rendah kepada pengguna, proyeksi objek ini jika dilihat dari sudut pandang paling informatif [ rujukan? ] . Ini dilakukan dengan hanya menggunakan beberapa komponen utama pertama sehingga dimensi data yang diubah berkurang.

PCA terkait erat dengan analisis faktor . Analisis faktor biasanya memasukkan lebih banyak asumsi spesifik domain tentang struktur yang mendasarinya dan memecahkan vektor eigen dari matriks yang sedikit berbeda.

PCA juga terkait dengan analisis korelasi kanonik (CCA) . CCA mendefinisikan sistem koordinat yang secara optimal menggambarkan cross-covariance antara dua dataset sementara PCA mendefinisikan sistem koordinat orthogonal baru yang secara optimal menggambarkan varians dalam satu dataset. [6] [7]

Data iris flowe untuk pengolahan data menggunakan PCA (Sumber: Wikipedia)

Data bunga Iris dianalisis oleh Ronald Fisher dalam makalahnya tahun 1936 "Penggunaan berbagai pengukuran dalam masalah taksonomi". Data Iris digunakan oleh Fisher sebagai contoh analisis diskriminan linier. Sehingga kadang data bunga Iris disebut juga Fisher Iris Datasets [1]. Kadang datasets ini disebut juga sebagai Iris Anderson karena Edgar Anderson mengumpulkan data untuk menghitung variasi morfologis bunga Iris dari tiga spesies terkait [2]. Dua dari tiga spesies dikumpulkan di Semenanjung Gaspé "semuanya berasal dari padang rumput yang sama, dan dipetik pada hari yang sama dan diukur pada saat yang sama oleh orang yang sama dengan peralatan yang sama" [3].

Set data terdiri dari 50 sampel dari masing-masing dari tiga spesies Iris ( Iris setosa , Iris virginica dan Iris versicolor). Empat fitur diukur dari masing-masing sampel: panjang dan lebar sepal dan kelopak dalam sentimeter. Berdasarkan kombinasi keempat fitur ini, Fisher mengembangkan model diskriminan linier untuk membedakan spesies dari satu sama lain.

Iris setosa (juga dikenal sebagai iris bulu-runcing)

adalah spesies dalam genus Iris , juga dalam subgenus Limniris dan dalam seri Iris Tripetalae . Ini adalah tanaman rhizomatosa abadi dari berbagai wilayah di laut Arktik, termasuk Alaska , Maine , Kanada (termasuk British Columbia , Newfoundland , Quebec dan Yukon ), Rusia (termasuk Siberia ), Asia timur laut, Cina , Koreadan ke selatan ke Jepang. Tanaman ini memiliki batang bercabang tinggi, daun hijau tengah dan ungu, ungu-biru, ungu-biru, biru, hingga bunga lavender. Ada juga tanaman dengan bunga merah muda dan putih.

Iris versicolor

juga dikenal sebagai bendera biru, blueflag harlequin, bendera biru yang lebih besar, bendera biru utara, [1] dan bendera racun, ditambah variasi lain dari nama-nama ini, [2] [3] dan di Inggris dan Irlandia sebagai iris ungu [4].

I. versicolor adalah spesies Iris asli Amerika Utara, di Amerika Serikat bagian Timur dan Kanada Timur . Tumbuh di padang rumput, rawa-rawa, dan sepanjang streambanks dan pantai. Versitet julukan spesifik berarti "berbagai warna". [5]

Iris virginica , dengan nama umum Virginia iris

adalah abadi spesies dari tanaman berbunga , asli Amerika Utara bagian timur. Tumbuh di sepanjang dataran pantai dari Florida ke Georgia di Amerika Serikat Tenggara [2]. Ini adalah salah satu dari tiga spesies Iris dalam data bunga Iris yang ditetapkan oleh Ronald Fisher dalam makalahnya tahun 1936 "Penggunaan berbagai pengukuran dalam masalah taksonomi" sebagai contoh analisis diskriminan linier .

Iris Datasets

sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) class
0 5.1 3.5 1.4 0.2 0
1 4.9 3.0 1.4 0.2 0
2 4.7 3.2 1.3 0.2 0
3 4.6 3.1 1.5 0.2 0
4 5.0 3.6 1.4 0.2 0

Variabel input

sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2

Variable output

Konversi variable output ke data kategori(0 = I. setosa, 1 = I. versicolor, 2 = I. virginica)

array([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, 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, 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, 2, 2])

Nilai Covariance Matrix hasil dekomposisi PCA

[[ 4.22824171e+00 -7.15311479e-17  5.36483609e-17]
 [-7.15311479e-17  2.42670748e-01  3.42753417e-17]
 [ 5.36483609e-17  3.42753417e-17  7.82095000e-02]]

Nilai Eigenvalue

[4.22824171 0.24267075 0.0782095 ]

Nilai Eigenvector

[[ 1.00000000e+00 -1.79475284e-17 -1.29272156e-17]
 [ 0.00000000e+00 -1.00000000e+00 -8.21501234e-17]
 [ 0.00000000e+00 -5.55111512e-17  1.00000000e+00]]

Expected Variance

[92.94632565985721, 5.334452458785221, 1.7192218813575706]

Cumulative Expected Variance

[ 92.94632566  98.28077812 100.        ]

Kurva Scree plot

<matplotlib.legend.Legend at 0x7f16b11d7a58>

Komponen utama pertama, atau PC1, 'menjelaskan varian paling banyak' dalam dataset asli - ini juga berarti bahwa fitur yang berkorelasi dengan PC1 berkontribusi terhadap sejumlah besar variasi dalam data.

Saat Anda beralih dari PC1 ke PC final, jumlah varians yang dijelaskan berkurang, sedangkan varians yang dijelaskan kumulatif mendekati 100%. Jika Anda ingin mengurangi jumlah dimensi untuk analisis, Anda dapat memilih jumlah PC tertentu berdasarkan pada seberapa banyak variasi dijelaskan (mis. 95%). Anda juga dapat memahami seberapa banyak perbedaan dijelaskan hanya dalam dua atau tiga dimensi yang mudah divisualisasikan.

Saat menganalisis data dengan banyak variabel, saya ingin memahami berapa banyak dan fitur mana yang berguna. Saya bekerja di genomik, di mana Anda dapat dengan mudah memiliki ribuan fitur per instance dan memahami berapa banyak fitur yang saya butuhkan membuatnya lebih mudah untuk melatih dan menafsirkan model pada data itu. Dalam genomik, fitur itu murah dan instansinya berharga. Untuk alasan ini, saya sering menggunakan PCA sebagai panduan untuk memilih fitur mana yang menjadi fokus.

<matplotlib.collections.PathCollection at 0x7f16b017e860>

Akurasi= 0.9733333333333334

Text(22.5, 0.5, 'True Value')