使用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方法可用于各种数据集,并可以根据需要选择保留的主成分数量。
