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)] 

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

  • Подготовьте данные для классификации текста с помощью Scikit Learn SVM
  • Проблема с scipy install на окнах
  • Матрица путаницы Scikit-learn
  • Выполнение PCA на большой разреженной матрице с использованием sklearn
  • Ошибка импорта: Отсутствует DLL в Windows 7 при попытке импортировать модуль Python
  • использование matplotlib на Mac для Python 2.7
  • Можно ли настраивать параметры с помощью поиска сетки для пользовательских ядер в scikit-learn?
  • склеарная стратифицированная выборка на основе столбца
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.