logo

Analýza hlavných komponentov s Pythonom

Analýza hlavných komponentov je v podstate štatistický postup na konverziu súboru pozorovaní prípadne korelovaných premenných na súbor hodnôt lineárne nekorelovaných premenných.

Každá z hlavných zložiek je vybraná tak, aby opisovala väčšinu z nich stále dostupnú odchýlku a všetky tieto hlavné zložky sú navzájom ortogonálne. Vo všetkých hlavných komponentoch má prvý hlavný komponent maximálny rozptyl.



previesť z reťazca na celé číslo java

Použitie PCA:

  1. Používa sa na nájdenie vzájomných vzťahov medzi premennými v údajoch.
  2. Používa sa na interpretáciu a vizualizáciu údajov.
  3. Počet premenných sa znižuje, čo zjednodušuje ďalšiu analýzu.
  4. Často sa používa na vizualizáciu genetickej vzdialenosti a príbuznosti medzi populáciami.


Tie sa v podstate vykonávajú na štvorcovej symetrickej matici. Môže ísť o čisté súčty štvorcov a maticu krížových produktov Kovariančná matica alebo korelačná matica. Korelačná matica sa používa, ak sa individuálny rozptyl výrazne líši.

Ciele PCA:



  1. Ide v podstate o nezávislú procedúru, pri ktorej redukuje atribútový priestor z veľkého počtu premenných na menší počet faktorov.
  2. PCA je v podstate proces redukcie rozmerov, ale neexistuje žiadna záruka, že rozmer je interpretovateľný.
  3. Hlavnou úlohou v tomto PCA je vybrať podmnožinu premenných z väčšieho súboru, na základe ktorej majú pôvodné premenné najvyššiu koreláciu s hodnotou istiny.
  4. Identifikácia vzorov: PCA môže pomôcť identifikovať vzory alebo vzťahy medzi premennými, ktoré nemusia byť zjavné v pôvodných údajoch. Znížením dimenzionality údajov môže PCA odhaliť základné štruktúry, ktoré môžu byť užitočné pri porozumení a interpretácii údajov.
  5. Extrakcia funkcií: PCA možno použiť na extrahovanie funkcií zo súboru premenných, ktoré sú informatívnejšie alebo relevantnejšie ako pôvodné premenné. Tieto funkcie potom možno použiť pri modelovaní alebo iných analytických úlohách.
  6. Kompresia údajov: PCA možno použiť na kompresiu veľkých súborov údajov znížením počtu premenných potrebných na reprezentáciu údajov, pričom sa zachová čo najviac informácií.
  7. Zníženie šumu: PCA možno použiť na zníženie šumu v súbore údajov identifikáciou a odstránením hlavných komponentov, ktoré zodpovedajú zašumeným častiam údajov.
  8. Vizualizácia: PCA možno použiť na vizualizáciu vysokorozmerných údajov v priestore nižšej dimenzie, čo uľahčuje interpretáciu a pochopenie. Projektovaním údajov na hlavné komponenty možno jednoduchšie vizualizovať vzory a vzťahy medzi premennými.

Metóda hlavnej osi: PCA v podstate hľadá lineárnu kombináciu premenných, aby sme z premenných mohli extrahovať maximálny rozptyl. Po dokončení tohto procesu ho odstráni a hľadá inú lineárnu kombináciu, ktorá poskytuje vysvetlenie maximálneho podielu zostávajúceho rozptylu, ktorý v podstate vedie k ortogonálnym faktorom. V tejto metóde analyzujeme celkový rozptyl.

Vlastný vektor: Je to nenulový vektor, ktorý po vynásobení matice zostáva rovnobežný. Predpokladajme, že x je vlastný vektor rozmeru r matice M s rozmerom r*r, ak sú Mx a x rovnobežné. Potom musíme vyriešiť Mx=Ax, kde x aj A sú neznáme, aby sme dostali vlastný vektor a vlastné hodnoty.
V rámci vlastných vektorov môžeme povedať, že hlavné komponenty vykazujú spoločný aj jedinečný rozptyl premennej. V podstate ide o prístup zameraný na rozptyl, ktorý sa snaží reprodukovať celkový rozptyl a koreláciu so všetkými komponentmi. Hlavnými komponentmi sú v podstate lineárne kombinácie pôvodných premenných vážené ich príspevkom na vysvetlenie rozptylu v konkrétnej ortogonálnej dimenzii.

Vlastné hodnoty: V zásade je známy ako charakteristické korene. V podstate meria rozptyl vo všetkých premenných, ktorý je daný týmto faktorom. Pomer vlastných hodnôt je pomer vysvetľujúcej dôležitosti faktorov vzhľadom na premenné. Ak je faktor nízky, potom menej prispieva k vysvetleniu premenných. Jednoducho povedané, meria množstvo rozptylu v celkovej danej databáze zohľadnené faktorom. Vlastnú hodnotu faktora môžeme vypočítať ako súčet jeho štvorcového faktorového zaťaženia pre všetky premenné.



Teraz pochopme analýzu hlavných komponentov pomocou Pythonu.

linuxové súbory

Ak chcete získať množinu údajov použitú pri implementácii, kliknite tu .

Krok 1: Importovanie knižníc

Python
# importing required libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd>

Krok 2: Import množiny údajov

Importujte súbor údajov a distribuujte súbor údajov do komponentov X a y na analýzu údajov.

Python
# importing or loading the dataset dataset = pd.read_csv('wine.csv') # distributing the dataset into two components X and Y X = dataset.iloc[:, 0:13].values y = dataset.iloc[:, 13].values>


Krok 3: Rozdelenie množiny údajov na množinu tréningov a množinu testov

Python
# Splitting the X and Y into the # Training set and Testing set from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)>

Krok 4: Škálovanie funkcií

Uskutočnenie predspracujúcej časti školenia a testovania, ako je napríklad nastavenie štandardnej stupnice.

Python
# performing preprocessing part from sklearn.preprocessing import StandardScaler sc = StandardScaler() X_train = sc.fit_transform(X_train) X_test = sc.transform(X_test)>

Krok 5: Aplikácia funkcie PCA

rýchle triedenie

Aplikácia funkcie PCA do tréningovej a testovacej sady na analýzu.

Python
# Applying PCA function on training # and testing set of X component from sklearn.decomposition import PCA pca = PCA(n_components = 2) X_train = pca.fit_transform(X_train) X_test = pca.transform(X_test) explained_variance = pca.explained_variance_ratio_>

Krok 6: Prispôsobenie logistickej regresie k tréningovej súprave

Python
# Fitting Logistic Regression To the training set from sklearn.linear_model import LogisticRegression classifier = LogisticRegression(random_state = 0) classifier.fit(X_train, y_train)>

Výkon:

Krok 7: Predpovedanie výsledku testovacej súpravy

Python
# Predicting the test set result using  # predict function under LogisticRegression  y_pred = classifier.predict(X_test)>


Krok 8: Vytvorenie matrice zmätku

pd zlúčiť
Python
# making confusion matrix between # test set of Y and predicted value. from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred)>


Krok 9: Predpovedanie výsledku tréningového setu

Python
# Predicting the training set # result through scatter plot  from matplotlib.colors import ListedColormap X_set, y_set = X_train, y_train X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01), np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01)) plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape), alpha = 0.75, cmap = ListedColormap(('yellow', 'white', 'aquamarine'))) plt.xlim(X1.min(), X1.max()) plt.ylim(X2.min(), X2.max()) for i, j in enumerate(np.unique(y_set)): plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], color = ListedColormap(('red', 'green', 'blue'))(i), label = j) plt.title('Logistic Regression (Training set)') plt.xlabel('PC1') # for Xlabel plt.ylabel('PC2') # for Ylabel plt.legend() # to show legend # show scatter plot plt.show()>

Výkon:

Krok 10: Vizualizácia výsledkov testovacej sady

Python
# Visualising the Test set results through scatter plot from matplotlib.colors import ListedColormap X_set, y_set = X_test, y_test X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01), np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01)) plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape), alpha = 0.75, cmap = ListedColormap(('yellow', 'white', 'aquamarine'))) plt.xlim(X1.min(), X1.max()) plt.ylim(X2.min(), X2.max()) for i, j in enumerate(np.unique(y_set)): plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], color = ListedColormap(('red', 'green', 'blue'))(i), label = j) # title for scatter plot plt.title('Logistic Regression (Test set)') plt.xlabel('PC1') # for Xlabel plt.ylabel('PC2') # for Ylabel plt.legend() # show scatter plot plt.show()>

Dáta môžeme vizualizovať v novom priestore hlavných komponentov:

Python
# plot the first two principal components with labels y = df.iloc[:, -1].values colors = ['r', 'g'] labels = ['Class 1', 'Class 2'] for i, color, label in zip(np.unique(y), colors, labels): plt.scatter(X_pca[y == i, 0], X_pca[y == i, 1], color=color, label=label) plt.xlabel('Principal Component 1') plt.ylabel('Principal Component 2') plt.legend() plt.show() 7>

Toto je jednoduchý príklad, ako vykonať PCA pomocou Pythonu. Výstupom tohto kódu bude bodový graf prvých dvoch hlavných komponentov a ich vysvetleného pomeru rozptylu. Výberom vhodného počtu hlavných komponentov môžeme znížiť rozmernosť súboru údajov a zlepšiť naše chápanie údajov.