由于NaN错误,sklearn的shape_index功能无法应用PCA

时间:2019-02-22 06:03:38

标签: scikit-learn pca

图像处理:

    for i in ...
        img = Image.open(img_path).convert('L')     #get gray img
        shape_img = shape_index(img, sigma = 0.1)

        images[i] = shape_img

    feature_shape = images.reshape(len(images), -1) # (24, 10000)

然后使用PCA拟合feature_shape数据

    pca=PCA(n_components=n,svd_solver='randomized', whiten=True)
    X_fit_pca=pca.fit(X).transform(X)

但是错误出现了

  

适合的文件“ /usr/local/lib/python3.7/site-packages/sklearn/decomposition/pca.py”,第340行       self._fit(X)     _fit中的文件“ /usr/local/lib/python3.7/site-packages/sklearn/decomposition/pca.py”,第381行       复制= self.copy)     文件“ /usr/local/lib/python3.7/site-packages/sklearn/utils/validation.py”,行573,在check_array中       allow_nan = force_all_finite =='allow-nan')     文件“ /usr/local/lib/python3.7/site-packages/sklearn/utils/validation.py”,第56行,_assert_all_finite       引发ValueError(msg_err.format(type_err,X.dtype))   ValueError:输入包含NaN,无穷大或对于dtype('float32')而言太大的值。

较早的颜色功能(可以减少shape_index的进度)可以正常工作,没有NaN异常。

是因为PCA拒绝了NaN值,如何处理NaN值和形状特征?

感谢提示,可以帮助我解决问题!

0 个答案:

没有答案