pca降维python代码
以下是一个简单的PCA降维Python代码示例:
import numpy as np
from sklearn.decomposition import PCA
# 创建一个随机数据集
X = np.random.rand(100, 5)
# 创建PCA对象并拟合数据
pca = PCA(n_components=2)
pca.fit(X)
# 将数据集转换为新的低维空间
X_reduced = pca.transform(X)
# 打印降维后的数据集
print(X_reduced)
在这个示例中,我们使用NumPy创建了一个100行5列的随机数据集。然后,我们使用sklearn库中的PCA类创建了一个PCA对象,并将其拟合到数据集上。我们将n_components参数设置为2,以便将数据集降至2维。最后,我们使用transform方法将数据集转换为新的低维空间,并打印出结果。
接下来我会。
在PCA降维中,我们需要选择一个合适的维度来保留数据的主要信息。通常,我们可以使用累计方差贡献率来帮助我们选择合适的维度。累计方差贡献率是指前k个主成分的方差之和占总方差的比例,其中k是我们选择的维度数。
下面是一个示例代码,演示如何使用PCA和累计方差贡献率来选择合适的维度:
import numpy as np
from sklearn.decomposition import PCA
# 创建一个随机数据集
X = np.random.rand(100, 5)
# 创建PCA对象并拟合数据
pca = PCA()
pca.fit(X)
# 计算累计方差贡献率
variance_ratio = pca.explained_variance_ratio_
cumulative_variance_ratio = np.cumsum(variance_ratio)
# 打印累计方差贡献率
print(cumulative_variance_ratio)
# 选择合适的维度
n_components = np.argmax(cumulative_variance_ratio >= 0.95) + 1
print("选择的维度数为:", n_components)
# 将数据集转换为新的低维空间
pca = PCA(n_components=n_components)
X_reduced = pca.fit_transform(X)
# 打印降维后的数据集
print(X_reduced)
在这个示例中,我们首先创建了一个随机数据集。然后,我们使用PCA类拟合数据,并计算累计方差贡献率。我们使用np.cumsum函数计算累计方差贡献率,并打印出结果。
接下来,我们选择合适的维度。在这个示例中,我们选择保留累计方差贡献率达到95%的前k个主成分。我们使用np.argmax函数找到第一个累计方差贡献率大于等于0.95的位置,并将其加1作为我们选择的维度数。
最后,我们使用PCA类将数据集转换为新的低维空间,并打印出结果。