Scikit NaN или сообщение об ошибке бесконечности
Я импортирую некоторые данные из CSV-файла. Файл имеет значения nan, помеченные текстом «NA». Я импортирую данные с:
X = genfromtxt(data, delimiter=',', dtype=float, skip_header=1)
Я использую этот код для замены nan на ранее вычисленное среднее значение столбца.
inds = np.where(np.isnan(X))
X[inds]=np.take(col_mean,inds[1])
Затем я запускаю пару проверок и получаю пустые массивы:
np.where(np.isnan(X))
np.where(np.isinf(X))
Наконец я запускаю классификатор scikit:
RF = ensemble.RandomForestClassifier(n_estimators=100,n_jobs=-1,verbose=2)
RF.fit(X, y)
и получите следующую ошибку:
File "C:\Users\m&g\Anaconda\lib\site-packages\sklearn\ensemble\forest.py", line 257, in fit
check_ccontiguous=True)
File "C:\Users\m&g\Anaconda\lib\site-packages\sklearn\utils\validation.py", line 233, in check_arrays
_assert_all_finite(array)
File "C:\Users\m&g\Anaconda\lib\site-packages\sklearn\utils\validation.py", line 27, in _assert_all_finite
raise ValueError("Array contains NaN or infinity.")
ValueError: Array contains NaN or infinity.
Любые идеи, почему это говорит мне, что есть NaN или бесконечность? Я читаюэта почта и попытался запустить:
RF.fit(X.astype(float), y.astype(float))
но я получаю ту же ошибку.