【发布时间】:2012-07-11 14:35:38
【问题描述】:
我正在使用 scikit-learn 进行一些数据分析,我的数据集有一些缺失值(由 NA 表示)。我用genfromtxt 和dtype='f8' 加载数据,然后开始训练我的分类器。
在RandomForestClassifier 和GradientBoostingClassifier 对象上分类正常,但使用sklearn.svm 中的SVC 会导致以下错误:
probas = classifiers[i].fit(train[traincv], target[traincv]).predict_proba(train[testcv])
File "C:\Python27\lib\site-packages\sklearn\svm\base.py", line 409, in predict_proba
X = self._validate_for_predict(X)
File "C:\Python27\lib\site-packages\sklearn\svm\base.py", line 534, in _validate_for_predict
X = atleast2d_or_csr(X, dtype=np.float64, order="C")
File "C:\Python27\lib\site-packages\sklearn\utils\validation.py", line 84, in atleast2d_or_csr
assert_all_finite(X)
File "C:\Python27\lib\site-packages\sklearn\utils\validation.py", line 20, in assert_all_finite
raise ValueError("array contains NaN or infinity")
ValueError: array contains NaN or infinity
什么给了?我怎样才能让 SVM 很好地处理丢失的数据?请记住,丢失的数据适用于随机森林和其他分类器。
【问题讨论】:
标签: python machine-learning scikit-learn