logo

Analiza głównych składników (PCA)

Wraz ze wzrostem liczby cech lub wymiarów w zbiorze danych ilość danych wymaganych do uzyskania statystycznie istotnego wyniku rośnie wykładniczo. Może to prowadzić do problemów, takich jak nadmierne dopasowanie, wydłużony czas obliczeń i zmniejszona dokładność modeli uczenia maszynowego. Jest to znane jako przekleństwo problemów z wymiarowością, które pojawiają się podczas pracy z danymi wielowymiarowymi.

Wraz ze wzrostem liczby wymiarów liczba możliwych kombinacji cech rośnie wykładniczo, co sprawia, że ​​uzyskanie reprezentatywnej próbki danych jest trudne obliczeniowo, a wykonywanie zadań takich jak grupowanie lub klasyfikacja staje się kosztowne. Dodatkowo niektóre nauczanie maszynowe algorytmy mogą być wrażliwe na liczbę wymiarów, wymagając większej ilości danych, aby osiągnąć ten sam poziom dokładności, co dane o niższych wymiarach.

Aby zająć się przekleństwo wymiarowości , Inżynieria funkcji stosowane są techniki, które obejmują selekcję cech i ekstrakcję cech. Redukcja wymiarowości to rodzaj techniki ekstrakcji cech, której celem jest zmniejszenie liczby cech wejściowych przy jednoczesnym zachowaniu jak największej ilości oryginalnych informacji.



W tym artykule omówimy jedną z najpopularniejszych technik redukcji wymiarowości, czyli analizę głównych składowych (PCA).

Co to jest analiza głównych składowych (PCA)?

Analiza głównych składowych Technika (PCA) została wprowadzona przez matematyka Karla Pearsona w 1901 . Działa to pod warunkiem, że podczas gdy dane w przestrzeni o wyższych wymiarach są mapowane na dane w przestrzeni o niższych wymiarach, wariancja danych w przestrzeni o niższych wymiarach powinna być maksymalna.

  • Analiza głównych składowych (PCA) to procedura statystyczna wykorzystująca transformację ortogonalną, która konwertuje zbiór skorelowanych zmiennych na zbiór nieskorelowanych zmiennych. PCA jest najczęściej używanym narzędziem w eksploracyjnej analizie danych oraz w uczeniu maszynowym dla modeli predykcyjnych. Ponadto,
  • Analiza głównych składowych (PCA) to uczenie się bez nadzoru technika algorytmiczna stosowana do badania wzajemnych powiązań pomiędzy zbiorem zmiennych. Nazywa się ją również ogólną analizą czynnikową, w której regresja wyznacza linię najlepszego dopasowania.
  • Głównym celem analizy głównych składowych (PCA) jest zmniejszenie wymiarowości zbioru danych przy jednoczesnym zachowaniu najważniejszych wzorców lub relacji między zmiennymi bez wcześniejszej wiedzy o zmiennych docelowych.

Analizę głównych składowych (PCA) stosuje się w celu zmniejszenia wymiarowości zbioru danych poprzez znalezienie nowego zbioru zmiennych, mniejszego od pierwotnego zbioru zmiennych, zachowującego większość informacji o próbie i przydatnego dla regresja i klasyfikacja danych.

Analiza głównych składowych

  1. Analiza głównych składowych (PCA) to technika redukcji wymiarowości, która identyfikuje zbiór osi ortogonalnych, zwanych składowymi głównymi, które wychwytują maksymalną wariancję danych. Główne składniki to liniowe kombinacje oryginalnych zmiennych w zbiorze danych i są uporządkowane w malejącej kolejności ważności. Całkowita wariancja zarejestrowana przez wszystkie główne składniki jest równa całkowitej wariancji w oryginalnym zbiorze danych.
  2. Pierwszy główny składnik rejestruje największą zmienność danych, ale drugi główny składnik rejestruje maksimum zmienność to jest prostokątny do pierwszego głównego składnika i tak dalej.
  3. Analizę głównych składowych można wykorzystać do różnych celów, w tym do wizualizacji danych, wyboru cech i kompresji danych. W wizualizacji danych PCA można wykorzystać do wykreślenia danych wielowymiarowych w dwóch lub trzech wymiarach, co ułatwia ich interpretację. Przy wyborze cech PCA można wykorzystać do identyfikacji najważniejszych zmiennych w zbiorze danych. W przypadku kompresji danych PCA można zastosować w celu zmniejszenia rozmiaru zbioru danych bez utraty ważnych informacji.
  4. W analizie głównych składowych zakłada się, że informacja jest przenoszona w postaci wariancji cech, to znaczy im większa zmienność cechy, tym więcej informacji niesie ze sobą cecha.

Ogólnie rzecz biorąc, PCA jest potężnym narzędziem do analizy danych i może pomóc w uproszczeniu złożonych zbiorów danych, ułatwiając ich zrozumienie i pracę z nimi.

Wyjaśnienie krok po kroku PCA (analiza głównych składowych)

Krok 1: Standaryzacja

Po pierwsze, musimy ujednolicić naszego zbioru danych, aby zapewnić, że każda zmienna ma średnią 0 i odchylenie standardowe 1.

Z = frac{X-mu}{sigma}

Tutaj,

Krok 2: Obliczenie macierzy kowariancji

Kowariancja mierzy siłę łącznej zmienności pomiędzy dwiema lub większą liczbą zmiennych, wskazując, jak bardzo zmieniają się one względem siebie. Aby znaleźć kowariancję, możemy skorzystać ze wzoru:

cov(x1,x2) = frac{sum_{i=1}^{n}(x1_i-ar{x1})(x2_i-ar{x2})}{n-1}

10 na 100

Wartość kowariancji może być dodatnia, ujemna lub zerowa.

  • Pozytywne: Wraz ze wzrostem x1 wzrasta również x2.
  • Negatywna: wraz ze wzrostem x1 x2 również maleje.
  • Zero: Brak bezpośredniego związku

Krok 3: Oblicz wartości własne i wektory własne macierzy kowariancji w celu zidentyfikowania głównych składników

Niech A będzie kwadratową macierzą nXn, a X będzie niezerowym wektorem, dla którego

AX = lambda X

dla niektórych wartości skalarnych lambda. Następnie lambdajest znany jako wartość własna macierzy A i X jest tzw wektor własny macierzy A dla odpowiedniej wartości własnej.

Można to również zapisać jako:

oops, koncepcje w Javie

egin{aligned} AX-lambda X &= 0  (A-lambda I)X &= 0 end{aligned}

gdzie jestem macierzą jednostkową o tym samym kształcie co macierz A. Powyższe warunki będą spełnione tylko wtedy, gdy (A - lambda I)będzie nieodwracalna (tj. macierz pojedyncza). To znaczy,

|A - lambda I| = 0

Z powyższego równania możemy znaleźć wartości własne lambda, a zatem odpowiadający im wektor własny można znaleźć za pomocą równania AX = lambda X.

Jak działa analiza głównych składowych (PCA)?

Dlatego PCA wykorzystuje transformację liniową opartą na zachowaniu największej wariancji danych przy użyciu najmniejszej liczby wymiarów. Obejmuje następujące kroki:

Python3

import> pandas as pd> import> numpy as np> # Here we are using inbuilt dataset of scikit learn> from> sklearn.datasets>import> load_breast_cancer> # instantiating> cancer>=> load_breast_cancer(as_frame>=>True>)> # creating dataframe> df>=> cancer.frame> # checking shape> print>(>'Original Dataframe shape :'>,df.shape)> # Input features> X>=> df[cancer[>'feature_names'>]]> print>(>'Inputs Dataframe shape :'>, X.shape)>
>
>

Wyjście :

Original Dataframe shape : (569, 31) Inputs Dataframe shape : (569, 30)>

Teraz zastosujemy pierwszy krok, czyli standaryzację danych i w tym celu będziemy musieli najpierw obliczyć średnią i odchylenie standardowe każdej cechy w przestrzeni cech.

Python3

# Mean> X_mean>=> X.mean()> # Standard deviation> X_std>=> X.std()> # Standardization> Z>=> (X>-> X_mean)>/> X_std>
>
>

The kowariancja macierz pomaga nam zwizualizować, jak silna jest zależność dwóch cech od siebie w przestrzeni cech.

Python3

# covariance> c>=> Z.cov()> # Plot the covariance matrix> import> matplotlib.pyplot as plt> import> seaborn as sns> sns.heatmap(c)> plt.show()>
>
>

Wyjście :

Teraz obliczymy wektory własne I wartości własne dla naszej przestrzeni cech, które służą wielkiemu celowi w identyfikacji głównych składników naszej przestrzeni cech.

Python3

eigenvalues, eigenvectors>=> np.linalg.eig(c)> print>(>'Eigen values: '>, eigenvalues)> print>(>'Eigen values Shape:'>, eigenvalues.shape)> print>(>'Eigen Vector Shape:'>, eigenvectors.shape)>
>
>

Wyjście :

Eigen values:  [1.32816077e+01 5.69135461e+00 2.81794898e+00 1.98064047e+00  1.64873055e+00 1.20735661e+00 6.75220114e-01 4.76617140e-01  4.16894812e-01 3.50693457e-01 2.93915696e-01 2.61161370e-01  2.41357496e-01 1.57009724e-01 9.41349650e-02 7.98628010e-02  5.93990378e-02 5.26187835e-02 4.94775918e-02 1.33044823e-04  7.48803097e-04 1.58933787e-03 6.90046388e-03 8.17763986e-03  1.54812714e-02 1.80550070e-02 2.43408378e-02 2.74394025e-02  3.11594025e-02 2.99728939e-02] Eigen values Shape: (30,) Eigen Vector Shape: (30, 30)>

Posortuj wartości własne w porządku malejącym i odpowiednio posortuj odpowiadające im wektory własne.

Python3

# Index the eigenvalues in descending order> idx>=> eigenvalues.argsort()[::>->1>]> # Sort the eigenvalues in descending order> eigenvalues>=> eigenvalues[idx]> # sort the corresponding eigenvectors accordingly> eigenvectors>=> eigenvectors[:,idx]>
>
>

Wyjaśniona wariancja to termin, który daje nam pojęcie o wielkości całkowitej wariancji, która została zachowana poprzez wybranie głównych składowych zamiast oryginalnej przestrzeni cech.

Python3

explained_var>=> np.cumsum(eigenvalues)>/> np.>sum>(eigenvalues)> explained_var>
>
>

Wyjście :

array([0.44272026, 0.63243208, 0.72636371, 0.79238506, 0.84734274,  0.88758796, 0.9100953 , 0.92598254, 0.93987903, 0.95156881,  0.961366 , 0.97007138, 0.97811663, 0.98335029, 0.98648812,  0.98915022, 0.99113018, 0.99288414, 0.9945334 , 0.99557204,  0.99657114, 0.99748579, 0.99829715, 0.99889898, 0.99941502,  0.99968761, 0.99991763, 0.99997061, 0.99999557, 1. ])>

Określ liczbę głównych komponentów

Tutaj możemy albo wziąć pod uwagę liczbę głównych składników dowolnej wybranej przez nas wartości, albo ograniczyć wyjaśnioną wariancję. Tutaj rozważam wyjaśnioną wariancję większą niż 50%. Sprawdźmy, ile głównych elementów się na to składa.

Python3

n_components>=> np.argmax(explained_var>>=> 0.50>)>+> 1> n_components>
>
>

Wyjście :

2>

Projektuj dane na wybrane główne komponenty

  • Znajdź macierz projekcji. Jest to macierz wektorów własnych odpowiadających największym wartościom własnym macierzy kowariancji danych. rzutuje wielowymiarowy zbiór danych na podprzestrzeń o niższych wymiarach
  • Wektory własne macierzy kowariancji danych nazywane są głównymi osiami danych, a rzutowanie instancji danych na te główne osie nazywane jest głównymi składowymi.

Python3

# PCA component or unit matrix> u>=> eigenvectors[:,:n_components]> pca_component>=> pd.DataFrame(u,> >index>=> cancer[>'feature_names'>],> >columns>=> [>'PC1'>,>'PC2'>]> >)> # plotting heatmap> plt.figure(figsize>=>(>5>,>7>))> sns.heatmap(pca_component)> plt.title(>'PCA Component'>)> plt.show()>
>
>

Wyjście :

  • Następnie projektujemy nasz zbiór danych za pomocą wzoru:

egin{aligned} Proj_{P_i}(u) &= frac{P_icdot u}u  &=P_icdot u end{aligned}

  • Redukcję wymiarowości uzyskuje się wówczas poprzez zachowanie tylko tych osi (wymiarów), które stanowią większość wariancji i odrzucenie wszystkich pozostałych.

Znalezienie projekcji w PCA

Python3

# Matrix multiplication or dot Product> Z_pca>=> Z @ pca_component> # Rename the columns name> Z_pca.rename({>'PC1'>:>'PCA1'>,>'PC2'>:>'PCA2'>}, axis>=>1>, inplace>=>True>)> # Print the Pricipal Component values> print>(Z_pca)>
>
>

Wyjście :

 PCA1 PCA2 0 9.184755 1.946870 1 2.385703 -3.764859 2 5.728855 -1.074229 3 7.116691 10.266556 4 3.931842 -1.946359 .. ... ... 564 6.433655 -3.573673 565 3.790048 -3.580897 566 1.255075 -1.900624 567 10.365673 1.670540 568 -5.470430 -0.670047 [569 rows x 2 columns]>

Wektory własne macierzy kowariancji danych nazywane są głównymi osiami danych, a rzutowanie instancji danych na te główne osie nazywane jest głównymi składowymi. Redukcję wymiarowości uzyskuje się wówczas poprzez zachowanie tylko tych osi (wymiarów), które stanowią większość wariancji i odrzucenie wszystkich pozostałych.

PCA przy użyciu Sklearna

Istnieją różne biblioteki, w których cały proces analizy głównych składowych został zautomatyzowany poprzez zaimplementowanie go w pakiecie jako funkcję, a my po prostu musimy przekazać liczbę głównych składników, które chcielibyśmy mieć. Sklearn jest jedną z takich bibliotek, której można używać w PCA, jak pokazano poniżej.

Python3

# Importing PCA> from> sklearn.decomposition>import> PCA> # Let's say, components = 2> pca>=> PCA(n_components>=>2>)> pca.fit(Z)> x_pca>=> pca.transform(Z)> # Create the dataframe> df_pca1>=> pd.DataFrame(x_pca,> >columns>=>[>'PC{}'>.> >format>(i>+>1>)> >for> i>in> range>(n_components)])> print>(df_pca1)>
>
>

Wyjście:

 PC1 PC2 0 9.184755 1.946870 1 2.385703 -3.764859 2 5.728855 -1.074229 3 7.116691 10.266556 4 3.931842 -1.946359 .. ... ... 564 6.433655 -3.573673 565 3.790048 -3.580897 566 1.255075 -1.900624 567 10.365673 1.670540 568 -5.470430 -0.670047 [569 rows x 2 columns]>

Z powyższego wyniku Z_pca możemy dopasować dokładnie te same wartości.

Python3

# giving a larger plot> plt.figure(figsize>=>(>8>,>6>))> plt.scatter(x_pca[:,>0>], x_pca[:,>1>],> >c>=>cancer[>'target'>],> >cmap>=>'plasma'>)> # labeling x and y axes> plt.xlabel(>'First Principal Component'>)> plt.ylabel(>'Second Principal Component'>)> plt.show()>
>
>

Wyjście:

Python3

# components> pca.components_>
>
>

Wyjście :

array([[ 0.21890244, 0.10372458, 0.22753729, 0.22099499, 0.14258969,  0.23928535, 0.25840048, 0.26085376, 0.13816696, 0.06436335,  0.20597878, 0.01742803, 0.21132592, 0.20286964, 0.01453145,  0.17039345, 0.15358979, 0.1834174 , 0.04249842, 0.10256832,  0.22799663, 0.10446933, 0.23663968, 0.22487053, 0.12795256,  0.21009588, 0.22876753, 0.25088597, 0.12290456, 0.13178394],  [-0.23385713, -0.05970609, -0.21518136, -0.23107671, 0.18611302,  0.15189161, 0.06016536, -0.0347675 , 0.19034877, 0.36657547,  -0.10555215, 0.08997968, -0.08945723, -0.15229263, 0.20443045,  0.2327159 , 0.19720728, 0.13032156, 0.183848 , 0.28009203,  -0.21986638, -0.0454673 , -0.19987843, -0.21935186, 0.17230435,  0.14359317, 0.09796411, -0.00825724, 0.14188335, 0.27533947]])>

Zalety analizy głównych składowych

  1. Redukcja wymiarowości : Analiza głównych składowych jest popularną techniką stosowaną redukcja wymiarowości , czyli proces zmniejszania liczby zmiennych w zbiorze danych. Redukując liczbę zmiennych, PCA upraszcza analizę danych, poprawia wydajność i ułatwia wizualizację danych.
  2. Wybór funkcji : Można zastosować analizę głównych składowych wybór funkcji , czyli proces wybierania najważniejszych zmiennych w zbiorze danych. Jest to przydatne w uczeniu maszynowym, gdzie liczba zmiennych może być bardzo duża i trudno jest zidentyfikować najważniejsze zmienne.
  3. Wizualizacja danych : Można zastosować analizę głównych składowych Wielowspółliniowość : Można sobie z tym poradzić za pomocą analizy głównych składowych wielowspółliniowość , co jest częstym problemem w analizie regresji, w której dwie lub więcej niezależnych zmiennych jest silnie skorelowanych. PCA może pomóc w zidentyfikowaniu podstawowej struktury danych i utworzeniu nowych, nieskorelowanych zmiennych, które można wykorzystać w modelu regresji.
  4. Redukcja szumów : Analizę głównych składowych można zastosować w celu zmniejszenia szumu w danych. Usuwając główne składowe o niskiej wariancji, które, jak się zakłada, reprezentują szum, analiza głównych składowych może poprawić stosunek sygnału do szumu i ułatwić identyfikację podstawowej struktury danych.
  5. Kompresja danych : Do kompresji danych można zastosować analizę głównych składowych. Reprezentując dane przy użyciu mniejszej liczby głównych komponentów, które wychwytują większość zmienności danych, PCA może zmniejszyć wymagania dotyczące przechowywania i przyspieszyć przetwarzanie.
  6. Wykrywanie wartości odstających : Do wykrywania wartości odstających można zastosować analizę głównych składowych. Wartości odstające to punkty danych, które znacznie różnią się od innych punktów danych w zbiorze danych. Analiza głównych składowych pozwala zidentyfikować te wartości odstające, szukając punktów danych oddalonych od innych punktów w przestrzeni głównych składowych.

Wady analizy głównych składowych

  1. Interpretacja głównych składników : Główne składniki utworzone w ramach analizy głównych składowych to liniowe kombinacje oryginalnych zmiennych i często trudno jest je zinterpretować w kategoriach oryginalnych zmiennych. Może to utrudniać wyjaśnienie wyników PCA innym osobom.
  2. Skalowanie danych : Analiza głównych składowych jest wrażliwa na skalę danych. Jeśli dane nie są odpowiednio skalowane, PCA może nie działać dobrze. Dlatego ważne jest skalowanie danych przed zastosowaniem analizy głównych składowych.
  3. Utrata informacji : Analiza głównych składowych może spowodować utratę informacji. Chociaż analiza głównych składowych zmniejsza liczbę zmiennych, może również prowadzić do utraty informacji. Stopień utraty informacji zależy od liczby wybranych głównych komponentów. Dlatego ważne jest, aby dokładnie wybrać liczbę głównych elementów, które mają zostać zachowane.
  4. Relacje nieliniowe : Analiza głównych składowych zakłada, że ​​relacje pomiędzy zmiennymi są liniowe. Jeśli jednak istnieją nieliniowe zależności między zmiennymi, analiza głównych składowych może nie działać dobrze.
  5. Złożoność obliczeniowa : Obliczanie analizy głównych składowych może być kosztowne obliczeniowo w przypadku dużych zbiorów danych. Jest to szczególnie prawdziwe, jeśli liczba zmiennych w zbiorze danych jest duża.
  6. Nadmierne dopasowanie : Analiza głównych składników może czasami skutkować nadmierne dopasowanie , czyli wtedy, gdy model zbyt dobrze pasuje do danych uczących i słabo radzi sobie z nowymi danymi. Może się to zdarzyć, jeśli zostanie użytych zbyt wiele głównych komponentów lub jeśli model zostanie przeszkolony na małym zestawie danych.

Często zadawane pytania (FAQ)

1. Co to jest analiza głównych składowych (PCA)?

PCA to technika redukcji wymiarowości stosowana w statystyce i uczeniu maszynowym do przekształcania danych wielowymiarowych w reprezentację o niższych wymiarach, zachowując najważniejsze informacje.

2. Jak działa PCA?

Składniki główne to liniowe kombinacje oryginalnych cech, które PCA znajduje i wykorzystuje do uchwycenia największej rozbieżności w danych. Te składowe ortogonalne są ułożone według wielkości wyjaśnianej przez nie wariancji.

jak znaleźć rozmiar monitora

3. Kiedy należy zastosować PCA?

Korzystanie z PCA jest korzystne podczas pracy z wieloliniowymi lub wielowymiarowymi zbiorami danych. Ekstrakcja cech, redukcja szumów i wstępne przetwarzanie danych to jego najważniejsze zastosowania.

4. Jak interpretuje się główne składniki?

Nowe osie są reprezentowane w przestrzeni cech przez każdy główny komponent. Wskaźnikiem znaczenia składnika w rejestrowaniu zmienności danych jest jego zdolność do wyjaśniania większej wariancji.

5. Jakie jest znaczenie głównych komponentów?

Składniki główne reprezentują kierunki, w których dane różnią się najbardziej. Kilka pierwszych składników zazwyczaj wychwytuje większość wariancji danych, co pozwala na bardziej zwięzłą reprezentację.