用PCA求解热的编码列过载
#python #datascience #machinelearning #data

简介
想象以下图:您正在研究数据科学项目,而您刚刚采用了单次编码来处理分类数据。突然,您的数据集用大量列爆炸。这篇文章将向您展示如何将PCA用作闪亮盔甲的骑士。

单速爆炸:
单速编码的功能是不可否认的,可以解决分类数据。然而,在运行时,它会释放一系列二进制列,将数据集的尺寸猛增到平流层中。在机器学习方面,这是一种非常重要的技术,但就计算效率而言是一个挑战。

什么是pca:
主成分分析(PCA)基本上就像魔术师的魔杖一样,将高维数据转换为更易于管理的形式,同时保留关键数据。

pca的力量:
由PCA应用创建的组件是捕获大多数数据差异的新变量。它们是原始特征的线性组合,并洞悉最重要的模式。必须注意的是,PCA在丢弃不太重要的功能的同时没有选择性地保留重要功能。相反,它将这些功能转换为全新的实体。

pca行动:逐步

步骤1:标准化
始终从标准数据开始,以确保每个功能的比例可比。

from sklearn.preprocessing import StandardScaler

# Standardize the data
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data)

步骤2:应用PCA:
将PCA应用于标准化数据,并选择要保留的组件数量。

from sklearn.decomposition import PCA

# Create a PCA object and fit it to the data
pca = PCA(n_components=0.95)  # Retain 95% of variance
pca.fit(data_scaled)

# Transform the data using the new components
data_pca = pca.transform(data_scaled)

步骤3:解释和解释方差
通过检查解释的差异比率来了解主要组件背后的含义。

# Explained variance ratios of components
explained_variance_ratio = pca.explained_variance_ratio_

# Interpretation
for i, ratio in enumerate(explained_variance_ratio):
    print(f"Principal Component {i+1}: Explained Variance = {ratio:.2f}")

确定合适数量的组件:Scree Plot

选择数字:
将您的数据视为食谱,其中各种成分代表不同的信息。就像烹饪一样,某些成分(数据组件)比其他成分贡献更多的风味(差异)。

现在,将“ scree剧情”描述为味觉测试。您可以分别对每种成分(数据组件)进行采样,以查看菜肴的整体风味(解释差异)(数据分析)。

这是关键:当您添加更多成分时,味道的变化不大。这就像在菜肴中拥有所有必需的口味并添加更多的口味并不会使它变得更好。

这个时刻是图上的“肘点”。它表示您捕获了数据中最关键的元素;添加更多不会显着增强您的分析。

在数据术语中,Scree图可帮助您找到此平衡。它可以指导您选择足够的数据组件以有效地表示您的信息。

import matplotlib.pyplot as plt

# Plot scree plot
plt.plot(range(1, len(explained_variance_ratio) + 1), explained_variance_ratio, marker='o')
plt.xlabel("Number of Components")
plt.ylabel("Explained Variance Ratio")
plt.title("Scree Plot")
plt.show()

甜点:
选择在减少和信息保留之间达到关键平衡的组件数量,通常95%是一个很好的数量。

结论:
现在,通过应用PCA,您可以在保留关键信息并控制维度的同时简化分析。

ps:查看我的GitHub存储库中的项目。您的想法和反馈很长一段路。
github:https://github.com/IsmailOtukoya