我正在從csv文件導入一些數據。該文件具有用文本「NA」標記的nan值。 我導入數據有:Scikit NaN或無窮大錯誤消息
X = genfromtxt(data, delimiter=',', dtype=float, skip_header=1)
我使用這個代碼用previosly計算列替換楠的意思。
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或無限? 我讀this post想跑:
RF.fit(X.astype(float), y.astype(float))
,但我得到了同樣的錯誤。
是什麼'np.max(np.abs(X))'返回? –
np.max(np.abs(X))= 8.9932064170227995e + 41 – ADJ