logo

Analiza componentelor principale cu Python

Analiza componentelor principale este practic o procedură statistică pentru a converti un set de observații de variabile eventual corelate într-un set de valori de variabile necorelate liniar.

Fiecare dintre componentele principale este aleasă în așa fel încât să descrie majoritatea varianței încă disponibile și toate aceste componente principale sunt ortogonale între ele. În toate componentele principale, prima componentă principală are o variație maximă.



Utilizări ale PCA:

  1. Este folosit pentru a găsi interrelații între variabilele din date.
  2. Este folosit pentru interpretarea și vizualizarea datelor.
  3. Numărul de variabile este în scădere, ceea ce face analiza ulterioară mai simplă.
  4. Este adesea folosit pentru a vizualiza distanța genetică și relația dintre populații.


Acestea sunt în principiu efectuate pe o matrice pătrată simetrică. Poate fi o matrice de sume pure de pătrate și produse încrucișate Matrice de covarianță sau matrice de corelație. O matrice de corelație este utilizată dacă varianța individuală diferă mult.

Obiectivele PCA:



  1. Practic este o procedură nedependentă în care reduce spațiul de atribut de la un număr mare de variabile la un număr mai mic de factori.
  2. PCA este practic un proces de reducere a dimensiunii, dar nu există nicio garanție că dimensiunea este interpretabilă.
  3. Sarcina principală în acest PCA este de a selecta un subset de variabile dintr-un set mai mare, pe baza căruia variabilele originale au cea mai mare corelație cu suma principală.
  4. Identificarea modelelor: PCA poate ajuta la identificarea modelelor sau a relațiilor dintre variabile care ar putea să nu fie evidente în datele originale. Prin reducerea dimensionalității datelor, PCA poate dezvălui structuri subiacente care pot fi utile în înțelegerea și interpretarea datelor.
  5. Extragerea caracteristicilor: PCA poate fi folosit pentru a extrage caracteristici dintr-un set de variabile care sunt mai informative sau mai relevante decât variabilele originale. Aceste caracteristici pot fi apoi utilizate în modelare sau alte sarcini de analiză.
  6. Comprimarea datelor: PCA poate fi utilizat pentru a comprima seturi mari de date prin reducerea numărului de variabile necesare pentru a reprezenta datele, păstrând în același timp cât mai multe informații posibil.
  7. Reducerea zgomotului: PCA poate fi utilizat pentru a reduce zgomotul dintr-un set de date prin identificarea și eliminarea componentelor principale care corespund părților zgomotoase ale datelor.
  8. Vizualizare: PCA poate fi folosit pentru a vizualiza date cu dimensiuni mari într-un spațiu cu dimensiuni inferioare, făcându-le mai ușor de interpretat și înțeles. Prin proiectarea datelor pe componentele principale, modelele și relațiile dintre variabile pot fi mai ușor de vizualizat.

Metoda axei principale: PCA caută practic o combinație liniară de variabile, astfel încât să putem extrage variația maximă din variabile. Odată ce acest proces este finalizat, îl îndepărtează și caută o altă combinație liniară care oferă o explicație despre proporția maximă a varianței rămase, ceea ce duce practic la factori ortogonali. În această metodă, analizăm varianța totală.

Vector propriu: Este un vector diferit de zero care rămâne paralel după înmulțirea matricei. Să presupunem că x este un vector propriu de dimensiunea r al matricei M cu dimensiunea r*r dacă Mx și x sunt paralele. Apoi trebuie să rezolvăm Mx=Ax unde atât x cât și A sunt necunoscute pentru a obține vectorul propriu și valorile proprii.
Sub Eigen-Vectors, putem spune că componentele principale arată atât variația comună, cât și unică a variabilei. Practic, este o abordare axată pe varianță care încearcă să reproducă varianța totală și corelația cu toate componentele. Componentele principale sunt practic combinațiile liniare ale variabilelor originale ponderate prin contribuția lor la explicarea varianței într-o anumită dimensiune ortogonală.

ștergeți memoria cache npm

Valori proprii: Practic este cunoscut ca rădăcini caracteristice. În principiu, măsoară varianța tuturor variabilelor care este luată în considerare de acel factor. Raportul valorilor proprii este raportul importanței explicative a factorilor în raport cu variabilele. Dacă factorul este scăzut, atunci contribuie mai puțin la explicarea variabilelor. Cu cuvinte simple, măsoară valoarea variației în baza de date totală dată contabilizată de factor. Putem calcula valoarea proprie a factorului ca sumă a încărcării factorilor pătrați pentru toate variabilele.



cum să selectați coloanele din tabele diferite în sql

Acum, să înțelegem analiza componentelor principale cu Python.

Pentru a obține setul de date utilizat în implementare, faceți clic Aici .

Pasul 1: Importul bibliotecilor

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

Pasul 2: Importul setului de date

Importați setul de date și distribuiți setul de date în componente X și y pentru analiza datelor.

Piton
# 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>


Pasul 3: Împărțirea setului de date în setul de antrenament și setul de testare

Piton
# 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)>

Pasul 4: Scalare caracteristică

ce este un java dublu

Efectuarea părții de pre-procesare pe setul de instruire și testare, cum ar fi montarea scalei standard.

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

Pasul 5: Aplicarea funcției PCA

Aplicarea funcției PCA în setul de instruire și testare pentru analiză.

Piton
# 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_>

Pasul 6: Adaptarea regresiei logistice la setul de antrenament

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

Ieșire:

Pasul 7: Prezicerea rezultatului setului de testare

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


Pasul 8: Realizarea matricei de confuzie

lista comparabila
Piton
# making confusion matrix between # test set of Y and predicted value. from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred)>


Pasul 9: Prezicerea rezultatului setului de antrenament

Piton
# 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()>

Ieșire:

Pasul 10: Vizualizarea rezultatelor setului de testare

Piton
# 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()>

Putem vizualiza datele în noul spațiu al componentelor principale:

Piton
# 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>

Acesta este un exemplu simplu de realizare a PCA folosind Python. Rezultatul acestui cod va fi un grafic de dispersie a primelor două componente principale și a raportului lor de varianță explicat. Prin selectarea numărului adecvat de componente principale, putem reduce dimensionalitatea setului de date și putem îmbunătăți înțelegerea datelor.