Функция shape_index из sklearn не может применить PCA из-за ошибки NaN - PullRequest
0 голосов
/ 22 февраля 2019

Процесс обработки изображения:

    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)

Затем сопоставьте данные feature_shape с PCA

    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 / декомпозиция / pca.py ", строка 340, в файле fit self._fit (X)" "/usr/local/lib/python3.7/site-packages/sklearn/decomposition/pca.py ", строка 381, в _fit copy = self.copy) Файл" /usr/local/lib/python3.7/site-packages/sklearn/utils/validation.py ", строка 573, в check_arrayallow_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?

Спасибоза подсказку, которая помогает мне это исправить!

...