ValueError: массив не должен содержать inf или NaN во время Biclustering

Я пытаюсь моделировать biclustering, но он терпит неудачу, поскольку он говорит, что массив содержит infs и nans , хотя я сканировал массив, используя pd.isnull(DataFile).sum()

  import pandas as pd import numpy as np from matplotlib import pyplot as plt from sklearn.datasets import samples_generator as sg from sklearn.cluster.bicluster import SpectralCoclustering from sklearn.metrics import consensus_score DataFile=pd.read_csv("DatafilledProp.csv",sep='\t') DataFile.drop(DataFile.columns[[0, 1]], axis=1, inplace=True) plt.matshow(DataFile.as_matrix(), cmap=plt.cm.Blues) plt.title("Original TransMapping") data, row_idx, col_idx = sg._shuffle(DataFile.as_matrix(), random_state=0) plt.matshow(data, cmap=plt.cm.Blues) plt.title("Shuffled dataset") plt.show() Features=DataFile.values model = SpectralCoclustering(n_clusters=10, random_state=0) model.fit(Features) 

Это ошибка, которую я получаю:

 File "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensio ns\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 1 06, in exec_file exec_code(code, file, global_variables) File "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensio ns\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 8 2, in exec_code exec(code_obj, global_variables) File "D:\ClusteringDemo\DataPreparation.py\DataPreparation.py\Model.py", line 19, in <module> model.fit(Features) File "C:\Users\vinay.sawant\AppData\Local\Continuum\Anaconda\lib\site-packages \sklearn\cluster\bicluster\spectral.py", line 126, in fit self._fit(X) File "C:\Users\vinay.sawant\AppData\Local\Continuum\Anaconda\lib\site-packages \sklearn\cluster\bicluster\spectral.py", line 275, in _fit u, v = self._svd(normalized_data, n_sv, n_discard=1) File "C:\Users\vinay.sawant\AppData\Local\Continuum\Anaconda\lib\site-packages \sklearn\cluster\bicluster\spectral.py", line 139, in _svd **kwargs) File "C:\Users\vinay.sawant\AppData\Local\Continuum\Anaconda\lib\site-packages \sklearn\utils\extmath.py", line 299, in randomized_svd Q = randomized_range_finder(M, n_random, n_iter, random_state) File "C:\Users\vinay.sawant\AppData\Local\Continuum\Anaconda\lib\site-packages \sklearn\utils\extmath.py", line 226, in randomized_range_finder Q, R = linalg.qr(Y, mode='economic') File "C:\Users\vinay.sawant\AppData\Local\Continuum\Anaconda\lib\site-packages \scipy\linalg\decomp_qr.py", line 127, in qr a1 = numpy.asarray_chkfinite(a) File "C:\Users\vinay.sawant\AppData\Local\Continuum\Anaconda\lib\site-packages \numpy\lib\function_base.py", line 613, in asarray_chkfinite "array must not contain infs or NaNs") ValueError: array must not contain infs or NaNs Press any key to continue . 

2 Solutions collect form web for “ValueError: массив не должен содержать inf или NaN во время Biclustering”

pd.isnull(DataFile).sum() проверяет только значения NaN как таковые:

 import pandas as pd df = pd.DataFrame([[1,2],[3,4],[np.NaN,6]]) df Out[12]: 0 1 0 1 2 1 3 4 2 NaN 6 pd.isnull(df).sum() Out[13]: 0 1 1 0 dtype: int64 

Но он не будет проверять наличие inf , согласно ошибке, это возможность.

 df3 = pd.DataFrame([[1,2],[3,4],[np.inf,6]]) pd.isnull(df3).sum() Out[23]: 0 0 1 0 dtype: int64 

Поэтому я подозреваю, что ошибка – это inf а не NaN .

 import numpy as np np.isinf(df3).sum() Out[25]: 0 1 1 0 dtype: int64 

На это был дан ответ: https://stackoverflow.com/a/42764378/2649309

Это может быть проблема с внедрением СПС в scikit-learn 0.18.1.

См. Отчет об ошибке https://github.com/scikit-learn/scikit-learn/issues/7568

Описанное обходное решение – использовать PCA с svd_solver = 'full'. Поэтому попробуйте этот код:

 pipe = [('pca',PCA(whiten=True,svd_solver='full')), ('clf' ,lm)] 

Я смог решить эту проблему.

  • многоклассовая классификация в xgboost (python)
  • Ошибка метрики Scikit F-score
  • TF * IDF для поисковых запросов
  • Подготовьте данные для классификации текста с помощью Scikit Learn SVM
  • Можно ли использовать scikit из IronPython?
  • ValueError: неизвестно, не поддерживается в sklearn.RFECV
  • Постоянная ошибка не поддерживается в RandomForestRegressor
  • Ошибка при попытке установить sklearn из Pycharm | arrayobject.h не может быть абсолютным
  •  
    Interesting Posts for Van-Lav

    Как извлечь zip-файл 7z в версии Python 2.7.3

    Преобразование строки в base64 в изображение и сохранение в файловой системе в Python

    Чтение с двух камер в OpenCV сразу

    Преобразование объекта unicode в латинскую строку с объектами

    преобразовать строку в массив

    Как получить родительский каталог в Python?

    Присвоение нескольких значений столбцам pandos pandas DataFrame в одной строке

    Rapsberry BLE периферийные устройства, альтернативные bleno

    C # – File.ReadAllBytes дает видимые неправильные значения

    SQLAlchemy: как упорядочить результаты запроса (order_by) в поле отношений?

    Удалите элементы при перемещении списка в Python

    Автоматическое оформление каждого метода экземпляра в классе

    Получить выделенный текст из формы с помощью wtforms SelectField

    Можно ли сделать класс старого стиля в класс нового стиля с использованием множественного наследования?

    Почему мой цикл while пропускает элемент в моем списке?

    Python - лучший язык программирования в мире.