Анализ основных компонентов (PCA) — это важный алгоритм в наборе инструментов специалиста по обработке и анализу данных. Он используется для уменьшения размерности набора данных при максимально возможном сохранении исходной информации. Это делает его особенно полезным для анализа больших наборов данных со многими переменными, где может быть сложно визуализировать и интерпретировать данные. Мы поймем его использование, работу и реализацию. Мы также обсудим некоторые распространенные ловушки и ограничения PCA и способы их преодоления.

Почему мы используем PCA

Одним из лучших применений PCA является визуализация. Чтобы показать почему, нам нужно увидеть различные представления данных.

import plotly.express as px
df = px.data.iris() # iris is a pandas DataFrame
fig = px.scatter(df, x="sepal_width", y="sepal_length",color ="species")
fig.show()

import plotly.express as px
df = px.data.iris() # iris is a pandas DataFrame
fig = px.scatter_3d(df, x="sepal_width", y="sepal_length",z='petal_width',color ="species")
fig.show()

И, наконец, мы можем представлять и классифицировать данные с помощью 3D-графиков. Однако это жесткий предел визуализации данных, поскольку люди не могут видеть измерения выше четырех, поэтому мы можем использовать анализ основных компонентов, чтобы выбрать лучшие компоненты (1,2,3) для представления данных.

Математическое объяснение PCA

Важно понимать математику, лежащую в основе алгоритма, чтобы понять удобство использования набора данных. К сожалению, эта концепция сложна и не может быть объяснена, используя только письменное слово. Я считаю, что канал StatQuest может достаточно хорошо объяснить эту концепцию в следующем видео.

АСП шаг за шагом

Реализация PCA с помощью Python

Мы будем использовать библиотеку scikit-learn для проведения компонентного анализа наших 4-мерных данных.

Я буду использовать набор данных для прогнозирования инсульта, который можно найти в Gist-репозитории Айшварии Рамакришнан. Полный блокнот можно найти на моей Github Page и в моем совместном блокноте.

# Loading the dependencies we will be using
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px
import seaborn as sns
# Loading the Dataset into memory
url = "https://gist.githubusercontent.com/aishwarya8615/d2107f828d3f904839cbcb7eaa85bd04/raw/cec0340503d82d270821e03254993b6dede60afb/healthcare-dataset-stroke-data.csv"
df = pd.read_csv(url,index_col = 0)
df

После загрузки набора данных мы выполним некоторую предварительную обработку и EDA, которые можно найти в моей записной книжке, а затем перейдем к анализу основных компонентов.

from sklearn.decomposition import PCA
pca = PCA(n_components = 3)
# These are the variabls that we will be using for the PCA
cols = ["age", "avg_glucose_level","bmi","hypertension", "heart_disease"]
pca.fit(df[["age", "avg_glucose_level","bmi","hypertension", "heart_disease"]])


Array = pd.DataFrame(pca.fit_transform(df[["age", "avg_glucose_level","bmi","hypertension", "heart_disease"]]).tolist(),columns = ["PC1","PC2","PC3"])
Array.info()

Array["stroke"] = list(df["stroke"])

px.scatter_3d(Array,x = "PC1" , y= "PC2" ,z = "PC3" ,color = "stroke")

Заключение

Анализ основных компонентов (PCA) — это мощный метод анализа данных и машинного обучения, который может помочь нам определить основные закономерности в сложных наборах данных. Освоение PCA может значительно повысить вашу способность извлекать ценную информацию и принимать обоснованные решения на основе сложных данных, что делает его важным навыком для любого специалиста по обработке данных или специалиста по машинному обучению.

СТАНЬТЕ ПИСАТЕЛЕМ на MLearning.ai