【python】数据挖掘分析清洗——特征选择筛选(降维)方法汇总


本文链接:

前言

特征降维是指通过某种方法将高维数据转换为低维数据的过程,同时尽可能地保留原始数据中的信息。在实际应用中,我们经常会面对大量的高维数据,如何有效地处理这些数据,发现其中潜在的规律和关系,是很重要的问题。特征降维可以帮助我们减少数据量和计算复杂度,并且可以避免过拟合等问题。

数据如下图所示
在这里插入图片描述

一、PCA降维技术

PCA(Principal Component Analysis)是一种常见的降维技术,它可以将高维数据集映射到低维空间中。在数据分析和机器学习领域,PCA经常用于减少数据集的特征数量,从而简化模型并避免过拟合。
PCA的基本思想是寻找数据中最重要的方向(即主成分),并将数据投影到这些方向上,以达到降维的效果。这些主成分是指数据中包含最多信息的方向,通常与数据方差最大的方向相对应。
通过PCA降维,我们可以使得原始数据中不相关的特征被忽略,并且只保留能够解释数据大部分方差的特征。这样可以有效地减少数据的复杂性,提高算法的处理效率,并且可以避免因为高维数据造成的过拟合问题。

from sklearn.decomposition import PCA
pca = PCA(n_components=5)   #整数表示保留多少特征 小数表示保留多少百分比信息量
X_new = pca.fit_transform(data_analy_x)

"""查看PCA的一些属性"""
print(X_new.shape)   # (200000, 10)
print(pca.explained_variance_)    # 属性可以查看降维后的每个特征向量上所带的信息量大小(可解释性方差的大小)
print(pca.explained_variance_ratio_)  # 查看降维后的每个新特征的信息量占原始数据总信息量的百分比
print(pca.explained_variance_ratio_.sum())    # 降维后信息保留量

在这里插入图片描述

特征维度减少了,且可以看到每个特征那个的信息占总量比

二、SVD

SVD降维是一种常见的数据降维技术,通过对数据矩阵进行奇异值分解(Singular Value Decomposition,简称SVD),可以将原始的高维数据转换为低维空间中的表示。这个过程会保留数据的主要特征,从而可以减少储存和计算的开销,同时避免“维度灾难”问题。

在SVD降维中,我们可以根据奇异值的大小来选择保留哪些主要特征。通常情况下,我们只需要保留前几个最大的奇异值所对应的奇异向量,就可以得到一个近似于原始数据的低维表示。这个低维表示可以用于后续的数据处理、可视化或者模型训练等任务中。

from sklearn.decomposition import TruncatedSVD
svd = TruncatedSVD(n_components=5) # 使用sklearn的truncatedsvd将矩阵降到5维数据
X_new = pd.DataFrame(svd.fit_transform(data_analy_x))
X_new

在这里插入图片描述

降低为5维

三、因子分析

因子分析是一种统计分析方法,用于识别数据集中的潜在因素。它旨在确定一组变量中存在哪些共同因素,并且可以将这些变量归类到几个相关因素中。

在因子分析中,我们首先需要选择一个适当的因子数目,然后通过对数据进行相应的数学运算,找到最能解释数据方差的因子。这些因子一般会被解释为某种特定的构建或概念,例如,健康、教育水平、幸福感等等。

通过因子分析,我们可以简化数据并提高数据可读性,同时也有助于我们更好地理解数据背后的结构和关系。此外,因子分析还可以帮助我们预测未来的趋势和行为,以及制定相应的决策和策略。

from sklearn.decomposition import FactorAnalysis
X_new = pd.DataFrame( FactorAnalysis(n_components = 5).fit_transform(data_analy_x.values))
X_new

在这里插入图片描述

总结

PCA降维技术、SVD降维和因子分析都是常用的数据降维方法。它们可以帮助我们从高维度的数据中提取出最重要的信息,从而简化数据、加速计算和减少噪音。

PCA(Principal Component
Analysis)基于数据的协方差矩阵进行变换,找出能够最大程度解释原始数据方差的主成分,并将其作为新的坐标系进行数据投影降维。PCA强调保留最大的方差,因此在数据结构比较简单的情况下,其效果会比较好。

SVD(Singular Value
Decomposition)则是对数据矩阵进行奇异值分解,将数据投影到一个更小的空间中,这样就可以去除不必要的细节并减少数据存储空间。相对于PCA,SVD更注重压缩数据,适用于计算量比较大的情况。

因子分析则是一种模型方法,旨在查找隐藏在数据中的潜在因素。通过因子分析,我们可以确定一组共同的因素,然后将数据分类到这些因素中,以理解数据背后的结构和关系。因子分析与PCA和SVD相比,更注重寻找数据之间的相关性和潜在结构。

综上,PCA、SVD和因子分析是三种不同的降维方法,它们在理论基础、应用场景和数据处理方式上都有所不同,在具体应用时可以根据需要选择适合的方法。

猜你喜欢

转载自blog.csdn.net/weixin_47058355/article/details/130420263
今日推荐