Analýza hlavních komponent je v podstatě statistická procedura pro převod souboru pozorování možná korelovaných proměnných na soubor hodnot lineárně nekorelovaných proměnných.
Každá z hlavních složek je vybrána tak, aby popisovala většinu z nich stále dostupných rozptylů a všechny tyto hlavní složky jsou navzájem ortogonální. Ve všech hlavních složkách má první hlavní složka maximální rozptyl.
Použití PCA:
- Používá se k nalezení vzájemných vztahů mezi proměnnými v datech.
- Používá se k interpretaci a vizualizaci dat.
- Počet proměnných se snižuje, což usnadňuje další analýzu.
- Často se používá k vizualizaci genetické vzdálenosti a příbuznosti mezi populacemi.
Ty se v zásadě provádějí na čtvercové symetrické matici. Může to být čisté součty čtverců a matice křížových produktů Kovarianční matice nebo korelační matice. Korelační matice se používá, pokud se individuální rozptyl výrazně liší.
Cíle PCA:
stáhnout youtube video vlc
- Jde v podstatě o nezávislou proceduru, ve které redukuje atributový prostor z velkého počtu proměnných na menší počet faktorů.
- PCA je v podstatě proces redukce rozměrů, ale není zaručeno, že rozměr je interpretovatelný.
- Hlavním úkolem v tomto PCA je vybrat z většího souboru podmnožinu proměnných, na základě kterých mají původní proměnné nejvyšší korelaci s částkou jistiny.
- Identifikace vzorů: PCA může pomoci identifikovat vzory nebo vztahy mezi proměnnými, které nemusí být patrné v původních datech. Snížením dimenzionality dat může PCA odhalit základní struktury, které mohou být užitečné pro pochopení a interpretaci dat.
- Extrakce funkcí: PCA lze použít k extrakci funkcí ze sady proměnných, které jsou informativnější nebo relevantnější než původní proměnné. Tyto funkce pak lze použít při modelování nebo jiných analytických úlohách.
- Komprese dat: PCA lze použít ke kompresi velkých datových sad snížením počtu proměnných potřebných k reprezentaci dat při zachování co největšího množství informací.
- Redukce šumu: PCA lze použít ke snížení šumu v datové sadě identifikací a odstraněním hlavních komponent, které odpovídají hlučným částem dat.
- Vizualizace: PCA lze použít k vizualizaci vysokorozměrných dat v prostoru nižších dimenzí, což usnadňuje interpretaci a pochopení. Promítáním dat na hlavní komponenty lze snadněji vizualizovat vzory a vztahy mezi proměnnými.
Metoda hlavní osy: PCA v podstatě vyhledává lineární kombinaci proměnných, abychom z proměnných mohli extrahovat maximální rozptyl. Jakmile je tento proces dokončen, odstraní jej a hledá jinou lineární kombinaci, která poskytuje vysvětlení o maximálním podílu zbývajícího rozptylu, který v podstatě vede k ortogonálním faktorům. V této metodě analyzujeme celkový rozptyl.
Vlastní vektor: Je to nenulový vektor, který po vynásobení matice zůstává paralelní. Předpokládejme, že x je vlastní vektor rozměru r matice M s rozměrem r*r, pokud jsou Mx a x rovnoběžné. Pak potřebujeme vyřešit Mx=Ax, kde x i A jsou neznámé, abychom dostali vlastní vektor a vlastní čísla.
V rámci vlastních vektorů můžeme říci, že hlavní komponenty vykazují společný i jedinečný rozptyl proměnné. V zásadě jde o přístup zaměřený na rozptyl, který se snaží reprodukovat celkový rozptyl a korelaci se všemi složkami. Hlavní složky jsou v podstatě lineární kombinace původních proměnných vážené jejich přínosem pro vysvětlení rozptylu v konkrétní ortogonální dimenzi.
Vlastní hodnoty: V zásadě je známá jako charakteristické kořeny. V zásadě měří rozptyl ve všech proměnných, který je tímto faktorem zohledněn. Poměr vlastních čísel je poměr vysvětlující důležitosti faktorů vzhledem k proměnným. Pokud je faktor nízký, pak méně přispívá k vysvětlení proměnných. Jednoduše řečeno, měří množství rozptylu v celkové dané databázi zohledněné faktorem. Vlastní hodnotu faktoru můžeme vypočítat jako součet jeho čtvercového faktorového zatížení pro všechny proměnné.
Stáhněte si youtube vlc media player
Pojďme nyní porozumět analýze hlavních komponent pomocí Pythonu.
Chcete-li získat datovou sadu použitou v implementaci, klikněte na tady .
Krok 1: Import knihoven
'abc' je v číslech'Krajta
# importing required libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd>
Krok 2: Import datové sady
Importujte datovou sadu a distribuujte datovou sadu do komponent X a y pro analýzu dat.
Krajta # 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: Rozdělení datové sady na tréninkovou sadu a testovací sadu
# 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: Měřítko funkcí
Provádění části předběžného zpracování na školení a testovací sadě, jako je montáž standardní stupnice.
připravit se na testovací mockitoKrajta
# 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: Použití funkce PCA
Aplikace funkce PCA do trénovací a testovací sady pro analýzu.
Krajta # 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: Přizpůsobení logistické regrese k tréninkové sadě
Krajta # 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ýstup:

Krok 7: Předpovídání výsledku testovací sady
Krajta # Predicting the test set result using # predict function under LogisticRegression y_pred = classifier.predict(X_test)>
Krok 8: Vytvoření matice zmatku
# 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: Předpovídání výsledku tréninkové sestavy
# 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ýstup:
skóre přesnosti sklearn

Krok 10: Vizualizace výsledků testovací sady
Krajta # 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()> 
Můžeme vizualizovat data v novém prostoru hlavních komponent:
Krajta # 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ý příklad, jak provádět PCA pomocí Pythonu. Výstupem tohoto kódu bude bodový graf prvních dvou hlavních složek a jejich vysvětlený poměr rozptylu. Výběrem vhodného počtu hlavních komponent můžeme snížit rozměrnost datové sady a zlepšit naše porozumění datům.