Python 2.7 Scikit学习-值错误:数组包含NaN或无穷大
我的数据集中没有NAN,我已经彻底检查过了。为什么我在尝试适合我的分类器时总是出现这个错误?数据集中的一些数字相当大,有些小数点会超出10个小数点,但我不认为这会导致错误。我在下面包括了一些熊猫数据帧信息以及错误本身。有什么想法吗Python 2.7 Scikit学习-值错误:数组包含NaN或无穷大,python-2.7,machine-learning,scikit-learn,random-forest,Python 2.7,Machine Learning,Scikit Learn,Random Forest,我的数据集中没有NAN,我已经彻底检查过了。为什么我在尝试适合我的分类器时总是出现这个错误?数据集中的一些数字相当大,有些小数点会超出10个小数点,但我不认为这会导致错误。我在下面包括了一些熊猫数据帧信息以及错误本身。有什么想法吗 <class 'pandas.core.frame.DataFrame'> DatetimeIndex: 6244 entries, 1985-02-06 00:00:00 to 2009-11-05 00:00:00 Data columns (tota
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 6244 entries, 1985-02-06 00:00:00 to 2009-11-05 00:00:00
Data columns (total 86 columns):
dtypes: float64(86)
clf = RandomForestClassifier(n_estimators=100,min_samples_split=4)
clf.fit(train, train_target)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-150-fa4acb362bc6> in <module>()
1 clf = RandomForestClassifier(n_estimators=100,min_samples_split=4)
----> 2 clf.fit(train, train_target)
3 clf.score(test, test_target)
C:\Anaconda\lib\site-packages\sklearn\ensemble\forest.pyc in fit(self, X, y, sample_weight)
255 # Convert data
256 X, = check_arrays(X, dtype=DTYPE, sparse_format="dense",
--> 257 check_ccontiguous=True)
258
259 # Remap output
C:\Anaconda\lib\site-packages\sklearn\utils\validation.pyc in check_arrays(*arrays, **options)
231 else:
232 array = np.asarray(array, dtype=dtype)
--> 233 _assert_all_finite(array)
234
235 if copy and array is array_orig:
C:\Anaconda\lib\site-packages\sklearn\utils\validation.pyc in _assert_all_finite(X)
25 if (X.dtype.char in np.typecodes['AllFloat'] and not np.isfinite(X.sum())
26 and not np.isfinite(X).all()):
---> 27 raise ValueError("Array contains NaN or infinity.")
28
29
ValueError: Array contains NaN or infinity.
日期时间索引:6244条条目,1985-02-06 00:00:00至2009-11-05 00:00:00
数据列(共86列):
数据类型:float64(86)
clf=RandomForestClassifier(n_估计器=100,最小样本数_分割=4)
clf.配合(训练、训练目标)
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
1 clf=RandomForestClassifier(n_估计值=100,最小样本数=4)
---->2级配合(训练、训练目标)
3 clf分数(测试、测试目标)
C:\Anaconda\lib\site packages\sklearn\employee\forest.pyc适合(自身、X、y、样本重量)
255#转换数据
256 X,=检查数组(X,dtype=dtype,稀疏格式=“密集”,
-->257检查(连续=正确)
258
259#重新映射输出
检查数组(*数组,**选项)中的C:\Anaconda\lib\site packages\sklearn\utils\validation.pyc
231其他:
232数组=np.asarray(数组,dtype=dtype)
-->233断言所有有限(数组)
234
235如果复制和数组是数组源:
C:\Anaconda\lib\site packages\sklearn\utils\validation.pyc in\u assert\u all\u finite(X)
25如果(np.typecode['AllFloat']中的X.dtype.char而不是np.isfinite(X.sum())
26而不是np.isfinite(X.all()):
--->27 raise VALUERROR(“数组包含NaN或无穷大”)
28
29
ValueError:数组包含NaN或无穷大。
您是否尝试过使用X=np.asarray(train)
运行这些检查?@larsmans谢谢,我只需要将功能转换为浮动。