Analiza głównych składowych jest w zasadzie procedurą statystyczną mającą na celu przekształcenie zbioru obserwacji potencjalnie skorelowanych zmiennych na zbiór wartości zmiennych liniowo nieskorelowanych.
Każdy z głównych składników jest tak dobrany, aby opisywał większość z nich, wciąż dostępnej wariancji, a wszystkie te główne składniki są względem siebie ortogonalne. We wszystkich głównych składnikach pierwszy główny składnik ma maksymalną wariancję.
Zastosowania PCA:
- Służy do wyszukiwania powiązań pomiędzy zmiennymi w danych.
- Służy do interpretacji i wizualizacji danych.
- Liczba zmiennych maleje, co ułatwia dalszą analizę.
- Często używa się go do wizualizacji dystansu genetycznego i pokrewieństwa między populacjami.
Są one zasadniczo wykonywane na kwadratowej matrycy symetrycznej. Może to być czysta suma kwadratów i macierz iloczynów krzyżowych, macierz kowariancji lub macierz korelacji. Jeśli wariancja indywidualna znacznie się różni, stosuje się macierz korelacji.
Cele PCA:
najpiękniejszy uśmiech
- Zasadniczo jest to procedura niezależna, w której redukuje się przestrzeń atrybutów z dużej liczby zmiennych do mniejszej liczby czynników.
- PCA to w zasadzie proces redukcji wymiarów, ale nie ma gwarancji, że wymiar będzie możliwy do interpretacji.
- Głównym zadaniem w tym PCA jest wybranie podzbioru zmiennych z większego zbioru, w oparciu o to, które zmienne pierwotne mają najwyższą korelację z kwotą kapitału.
- Identyfikacja wzorców: PCA może pomóc w zidentyfikowaniu wzorców lub relacji między zmiennymi, które mogą nie być widoczne w oryginalnych danych. Zmniejszając wymiarowość danych, PCA może ujawnić podstawowe struktury, które mogą być przydatne w zrozumieniu i interpretacji danych.
- Ekstrakcja cech: PCA można wykorzystać do wyodrębnienia cech ze zbioru zmiennych, które mają więcej informacji lub są istotne niż zmienne oryginalne. Funkcje te można następnie wykorzystać w modelowaniu lub innych zadaniach analitycznych.
- Kompresja danych: PCA można wykorzystać do kompresji dużych zbiorów danych poprzez zmniejszenie liczby zmiennych potrzebnych do reprezentowania danych, przy jednoczesnym zachowaniu jak największej ilości informacji.
- Redukcja szumu: PCA można zastosować do zmniejszenia szumu w zbiorze danych poprzez identyfikację i usunięcie głównych składników odpowiadających zaszumionym częściom danych.
- Wizualizacja: PCA można wykorzystać do wizualizacji danych wielowymiarowych w przestrzeni o niższych wymiarach, co ułatwia ich interpretację i zrozumienie. Projektując dane na główne komponenty, można łatwiej wizualizować wzorce i relacje między zmiennymi.
Metoda osi głównej: PCA zasadniczo przeszukuje liniową kombinację zmiennych, dzięki czemu możemy wyodrębnić maksymalną wariancję ze zmiennych. Po zakończeniu tego procesu usuwa go i szuka innej kombinacji liniowej, która daje wyjaśnienie maksymalnej proporcji pozostałej wariancji, co zasadniczo prowadzi do czynników ortogonalnych. W tej metodzie analizujemy wariancję całkowitą.
Wektor własny: Jest to wektor niezerowy, który po pomnożeniu macierzy pozostaje równoległy. Załóżmy, że x jest wektorem własnym wymiaru r macierzy M o wymiarze r*r, jeśli Mx i x są równoległe. Następnie musimy rozwiązać Mx=Ax, gdzie nieznane są zarówno x, jak i A, aby uzyskać wektor własny i wartości własne.
W ramach wektorów własnych możemy powiedzieć, że składowe główne wykazują zarówno wspólną, jak i unikalną wariancję zmiennej. Zasadniczo jest to podejście skoncentrowane na wariancji, którego celem jest odtworzenie całkowitej wariancji i korelacji ze wszystkimi składnikami. Główne składniki to w zasadzie liniowe kombinacje oryginalnych zmiennych ważone ich wkładem w wyjaśnienie wariancji w określonym wymiarze ortogonalnym.
Własne wartości: Jest to zasadniczo znane jako charakterystyczne korzenie. Zasadniczo mierzy wariancję wszystkich zmiennych, która jest wyjaśniana przez ten czynnik. Stosunek wartości własnych to stosunek wyjaśniającej ważności czynników w odniesieniu do zmiennych. Jeśli współczynnik jest niski, w mniejszym stopniu przyczynia się do wyjaśnienia zmiennych. Krótko mówiąc, mierzy wielkość wariancji w całkowitej danej bazie danych uwzględnionej przez czynnik. Wartość własną współczynnika możemy obliczyć jako sumę kwadratów jego ładunku czynnikowego dla wszystkich zmiennych.
Teraz zrozumiemy analizę głównych składowych w Pythonie.
Aby pobrać zbiór danych wykorzystany w implementacji kliknij Tutaj .
Krok 1: Importowanie bibliotek
Pyton # importing required libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd>
Krok 2: Importowanie zbioru danych
Zaimportuj zbiór danych i rozdziel go na komponenty X i Y w celu analizy danych.
Pyton # 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: Podział zbioru danych na zbiór uczący i testowy
ciąg jest pustyPyton
# 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: Skalowanie funkcji
Wykonanie części przetwarzania wstępnego na zestawie treningowym i testowym, takiej jak dopasowanie skali Standard.
Pyton # 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: Stosowanie funkcji PCA
Zastosowanie funkcji PCA do zbioru uczącego i testującego do analizy.
Pyton # 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: Dopasowanie regresji logistycznej do zbioru uczącego
Pyton # Fitting Logistic Regression To the training set from sklearn.linear_model import LogisticRegression classifier = LogisticRegression(random_state = 0) classifier.fit(X_train, y_train)>
Wyjście:
jak znaleźć zablokowane numery na Androidzie

Krok 7: Przewidywanie wyniku zestawu testowego
Pyton # Predicting the test set result using # predict function under LogisticRegression y_pred = classifier.predict(X_test)>
Krok 8: Tworzenie macierzy zamieszania
wielkaandraPyton
# 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: Przewidywanie wyniku zbioru uczącego
# 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()> Wyjście:

Krok 10: Wizualizacja wyników zestawu testowego
Pyton # 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()> 
Możemy wizualizować dane w nowej przestrzeni komponentów głównych:
Pyton # 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> To jest prosty przykład wykonania PCA przy użyciu Pythona. Dane wyjściowe tego kodu będą wykresem punktowym pierwszych dwóch głównych składników i ich wyjaśnionego współczynnika wariancji. Wybierając odpowiednią liczbę głównych składników, możemy zmniejszyć wymiarowość zbioru danych i poprawić nasze zrozumienie danych.