欢迎访问宙启技术站
智能推送

使用sklearn.decomposition.TruncatedSVD()方法进行数据降维与可视化

发布时间:2023-12-31 17:23:35

sklearn.decomposition.TruncatedSVD()是一种使用奇异值分解(Singular Value Decomposition, SVD)进行矩阵分解的方法,可以在数据压缩和降维中发挥重要作用。在本文中,我们将演示使用TruncatedSVD方法对鸢尾花数据集进行降维,并使用可视化方法将其可视化。

首先,我们将导入所需的库和函数。

import numpy as np
from sklearn.decomposition import TruncatedSVD
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris

接下来,我们将加载鸢尾花数据集并打印一些信息。

iris = load_iris()
X = iris.data
y = iris.target

print("Number of samples and features:", X.shape)
print("Class labels:", np.unique(y))

这将输出数据集中的样本数量和特征数量,以及类标签的 值。

接下来,我们将创建一个TruncatedSVD对象,并将其应用于数据集。

svd = TruncatedSVD(n_components=2)
X_svd = svd.fit_transform(X)

在上面的代码中,我们指定了要保留的主成分数量为2,然后将TruncatedSVD对象应用于数据集X。转换后的数据集将保存在X_svd中。

我们可以查看转换后的数据集的形状。

print("Shape of transformed data:", X_svd.shape)

这将输出(150,2),表示数据集的形状已从原始的(150,4)降至(150,2)。

最后,我们可以使用散点图将降维后的数据可视化。

plt.scatter(X_svd[:, 0], X_svd[:, 1], c=y)
plt.xlabel('Component 1')
plt.ylabel('Component 2')
plt.title('Truncated SVD')
plt.show()

在上面的代码中,我们指定了X_svd的 列和第二列作为x轴和y轴,使用类标签y对数据点进行颜色编码。

这样,我们就完成了使用TruncatedSVD方法进行数据降维和可视化的示例。降维后的数据集将具有较低的维度,同时保持了原始数据的一些重要特征,以便于可视化和进一步的分析。其中,TruncatedSVD方法可用于各种数据集,并可以根据需要选择保留的主成分数量。