PCA fit() 运行时警告(true_divide 中遇到无效值)

Rob*_*ick 1 python arrays pca python-3.x scikit-learn

这个问题与机器学习有关。我用灰度图像的值填充数组。

ben = io.ImageCollection('./Ben_bw.png')[0]
ben = np.array(ben)#array of all pixels
Run Code Online (Sandbox Code Playgroud)

现在我用以下方法展平数组:

ben_flat = ben.reshape((1, -1))
Run Code Online (Sandbox Code Playgroud)

当我打印 ben_flat.shape 然后我得到一个非零的 (1, 10304) 数组

然后当我尝试使用 PCA 并拟合数组时:

pca = PCA(n_components=200)
ben_reduced = pca.fit(ben_flat) 
Run Code Online (Sandbox Code Playgroud)

当我适合数组时,我收到一个错误:

RuntimeWarning: invalid value encountered in true_divide
Run Code Online (Sandbox Code Playgroud)

据我所知,某处有一个零分频器。但我无法理解它在哪里或它如何结束。

abe*_*ger 6

PCA 拟合是用 n 个样本完成的,每个样本具有相同数量的特征。比较每个样本的成分,最先保留方差最大的成分,从而保留最多的信息。ben_flat 只是一个样本,算法不知道如何将其分解为较低维度,因为没有其他样本可以与之进行比较。

  • @aberger我想将HOG描述符中的特征馈送到前馈神经网络,没有PCA,特征向量的长度为50000左右,这就是原因。我已经实现了一种解决方法,将图像大小调整为小尺寸,这样 HOG 只给出长度约为 200 的特征 (2认同)