如何使用Python Scikit-learn实现随机投影?

如何使用Python Scikit-learn实现随机投影?

随机投影是一种降维和数据可视化方法,可以简化高维数据的复杂性。它通常被应用于其他降维技术例如 主成分分析(PCA) 做不到的数据上。

Python Scikit-learn提供了一个名为 _sklearn.randomprojection 的模块,实现了一种计算效率高的降维方法。它实现了以下两种类型的无结构随机矩阵:

  • 高斯随机矩阵
  • 稀疏随机矩阵

实现高斯随机投影

要实现高斯随机矩阵, _randomprojection 模块使用 GaussianRandomProjection() 函数,通过将原始空间投影到随机生成的矩阵上来降低维度。

示例

我们看一个实例,使用高斯随机投影变换器,并将投影矩阵的值可视化为直方图:

# 导入所需包
import sklearn
from sklearn.random_projection import GaussianRandomProjection
import numpy as np
from matplotlib import pyplot as plt

# 随机数据及其变换
X_random = np.random.RandomState(0).rand(100, 10000)
gauss_data = GaussianRandomProjection(random_state=0)
X_transformed = gauss_data.fit_transform(X_random)

# 获取转换后数据的大小
print('Shape of transformed data is: ' + str(X_transformed.shape))

# 设置图形大小
plt.figure(figsize=(7.50, 3.50))
plt.subplots_adjust(bottom=0.05, top=0.9, left=0.05, right=0.95)

# 用直方图可视化变换矩阵的元素
plt.hist(gauss_data.components_.flatten())
plt.title('Histogram of the flattened transformation matrix', size ='18')
plt.show()

输出结果

它将生成以下输出结果

Shape of transformed data is: (100, 3947)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程