Аналіз головних компонентів це в основному статистична процедура для перетворення набору спостережень можливо корельованих змінних у набір значень лінійно некорельованих змінних.
Кожна з головних складових вибирається таким чином, щоб вона описувала більшість з них ще наявної дисперсії, і всі ці головні компоненти були ортогональні одна одній. У всіх головних компонентах перший головний компонент має максимальну дисперсію.
Використання PCA:
- Він використовується для пошуку взаємозв'язків між змінними в даних.
- Він використовується для інтерпретації та візуалізації даних.
- Кількість змінних зменшується, що спрощує подальший аналіз.
- Його часто використовують для візуалізації генетичної відстані та спорідненості між популяціями.
В основному вони виконуються на квадратній симетричній матриці. Це може бути чиста сума квадратів і матриця перехресних добутків, матриця коваріації або матриця кореляції. Кореляційна матриця використовується, якщо індивідуальна дисперсія сильно відрізняється.
Цілі PCA:
- По суті, це незалежна процедура, у якій вона зменшує простір атрибутів від великої кількості змінних до меншої кількості факторів.
- PCA — це в основному процес зменшення розмірності, але немає гарантії, що розмірність можна інтерпретувати.
- Основним завданням у цьому PCA є вибір підмножини змінних із більшого набору, на основі якої вихідні змінні мають найвищу кореляцію з основною сумою.
- Виявлення закономірностей: PCA може допомогти виявити закономірності або зв’язки між змінними, які можуть бути неочевидними у вихідних даних. Зменшуючи розмірність даних, PCA може виявити основні структури, які можуть бути корисними для розуміння та інтерпретації даних.
- Вилучення ознак: PCA можна використовувати для вилучення ознак із набору змінних, які є більш інформативними або релевантними, ніж оригінальні змінні. Потім ці функції можна використовувати для моделювання чи інших завдань аналізу.
- Стиснення даних: PCA можна використовувати для стиснення великих наборів даних шляхом зменшення кількості змінних, необхідних для представлення даних, зберігаючи якомога більше інформації.
- Зменшення шуму: PCA можна використовувати для зменшення шуму в наборі даних шляхом ідентифікації та видалення основних компонентів, які відповідають шумним частинам даних.
- Візуалізація: PCA можна використовувати для візуалізації багатовимірних даних у низьковимірному просторі, полегшуючи їх інтерпретацію та розуміння. Проектуючи дані на головні компоненти, шаблони та зв’язки між змінними можна легше візуалізувати.
Метод головної осі: PCA в основному шукає лінійну комбінацію змінних, щоб ми могли отримати максимальну дисперсію зі змінних. Після завершення цього процесу він видаляє його та шукає іншу лінійну комбінацію, яка дає пояснення щодо максимальної частки залишкової дисперсії, яка в основному призводить до ортогональних факторів. У цьому методі ми аналізуємо загальну дисперсію.
Власний вектор: Це ненульовий вектор, який залишається паралельним після множення матриці. Припустімо, що x є власним вектором розмірності r матриці M розмірності r*r, якщо Mx і x паралельні. Тоді нам потрібно розв’язати Mx=Ax, де x і A невідомі, щоб отримати власний вектор і власні значення.
За власними векторами ми можемо сказати, що головні компоненти показують як загальну, так і унікальну дисперсію змінної. По суті, це підхід, зосереджений на дисперсії, спрямований на відтворення загальної дисперсії та кореляції з усіма компонентами. Головні компоненти в основному є лінійними комбінаціями вихідних змінних, зважених за їхнім внеском для пояснення дисперсії в конкретному ортогональному вимірі.
Власні цінності: В основному він відомий як характерні корені. В основному він вимірює дисперсію всіх змінних, яка враховується цим фактором. Відношення власних значень — це відношення пояснювальної важливості факторів щодо змінних. Якщо фактор низький, то він менше сприяє поясненню змінних. Простими словами, він вимірює величину дисперсії в загальній даній базі даних, що враховується фактором. Ми можемо обчислити власне значення фактора як суму його квадратів факторного навантаження для всіх змінних.
Тепер давайте розберемося з аналізом основних компонентів за допомогою Python.
Щоб отримати набір даних, який використовується в реалізації, натисніть тут .
перетворення рядка в int у java
Крок 1: Імпорт бібліотек
Python # importing required libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd>
крок 2: Імпортування набору даних
Імпортуйте набір даних і розподіляйте його на компоненти X і y для аналізу даних.
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>
крок 3: Поділ набору даних на набір для навчання та набір для тестування
# 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)>
крок 4: Масштабування функцій
Виконання частини попередньої обробки на наборі для навчання та тестування, наприклад підгонка стандартної шкали.
Python # performing preprocessing part from sklearn.preprocessing import StandardScaler sc = StandardScaler() X_train = sc.fit_transform(X_train) X_test = sc.transform(X_test)>
крок 5: Застосування функції PCA
Застосування функції PCA в наборі для навчання та тестування для аналізу.
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_>
Крок 6: Підгонка логістичної регресії до навчального набору
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)>
Вихід:

Крок 7: Прогнозування результату тестового набору
Python # Predicting the test set result using # predict function under LogisticRegression y_pred = classifier.predict(X_test)>
Крок 8: Створення матриці плутанини
# making confusion matrix between # test set of Y and predicted value. from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred)>
Крок 9: Прогнозування результату навчального набору
# 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()> Вихід:

Крок 10: Візуалізація результатів тестового набору
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()> 
Ми можемо візуалізувати дані в новому просторі головних компонентів:
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> Це простий приклад того, як виконати PCA за допомогою Python. Результатом цього коду буде діаграма розсіювання перших двох головних компонентів і їхнього поясненого співвідношення дисперсії. Вибравши відповідну кількість основних компонентів, ми можемо зменшити розмірність набору даних і покращити наше розуміння даних.