鸢尾花数据集主成分分析 (PCA) 代码解析
这段代码使用 Python 对鸢尾花数据集进行主成分分析 (PCA)。
- 首先,将
k设为 2,表示要保留的主成分个数。 - 创建一个 PCA 对象,并将
k作为参数传入。 - 加载鸢尾花数据集。
- 调用 PCA 对象的
fit方法,对鸢尾花数据集进行主成分分析。 - 输出主成分分析的结果,包括平均值、方差比例和主成分。
- 通过调用 PCA 对象的
transform方法,将原始数据转换为主成分得分矩阵X。 - 选择一个特定的鸢尾花种类作为真实数据分布,并将其索引保存在
species_ind中。 - 绘制散点图,横轴和纵轴分别为
X的第一列和第二列,并使用鸢尾花种类作为颜色标签。 - 使用
MinMaxScaler对象对X进行归一化处理。 - 绘制归一化后的散点图。
- 从
X中提取特定鸢尾花种类的数据,并对其进行进一步处理。 - 将数据转换为
pca_data,采用反正弦转换和平方根开方操作。 - 打印输出
x_in。
代码内容:
k = 2
pca = PCA(n_components=k)
iris_fulldata = load_iris()
iris_dataset = iris_fulldata.data
print('Loading Iris Data....')
pca.fit(iris_dataset)
print('Mean = ', pca.mean_)
print('Variance Ratio = ', pca.explained_variance_ratio_)
print('Components = ', pca.components_)
X = pca.transform(iris_dataset)
species_value = 2
print('Picking : Iris-',iris_fulldata['target_names'][species_value],'as real data distribution')
species_ind = [i for i, e in enumerate(iris_fulldata['target']) if e == species_value]
plt.scatter(X[:,0], X[:,1],c=iris_fulldata['target'])
plt.show()
scaler = MinMaxScaler()
scaler.fit(X)
X = scaler.transform(X)
plt.scatter(X[:,0], X[:,1],c=iris_fulldata['target'])
plt.show()
x_in = X[species_ind[0]: species_ind[-1] + 1]
pca_data = 2*np.arcsin(np.sqrt(x_in))
print(x_in)
总结: 这段代码对鸢尾花数据集进行了主成分分析,并对特定种类的数据进行了处理和转换。
原文地址: http://www.cveoy.top/t/topic/lAel 著作权归作者所有。请勿转载和采集!