Tôi đang sử dụng tính năng tìm hiểu scikit cho một số phân tích dữ liệu và tập dữ liệu của tôi có một số giá trị bị thiếu (được biểu thị bằng NA
). Tôi tải dữ liệu với genfromtxt
với dtype='f8'
và tiếp tục đào tạo trình phân loại của tôi.Làm thế nào để SVM chơi độc đáo với dữ liệu bị thiếu trong scikit-learning?
Việc phân loại là tốt trên RandomForestClassifier
và GradientBoostingClassifier
đối tượng, nhưng sử dụng SVC
từ sklearn.svm
gây lỗi sau:
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
gì cho? Làm thế nào tôi có thể làm cho SVM chơi độc đáo với dữ liệu bị thiếu? Lưu ý rằng dữ liệu bị thiếu hoạt động tốt đối với các khu rừng ngẫu nhiên và các loại phân loại khác ..
gì về giá trị Infinite? Điều này cho thấy một chiến lược chỉ với NaN (tức là chia cho số không) – lefterav
Tôi đã làm điều này nhưng việc chuyển đổi đã thay đổi dữ liệu thành một mảng không nguyên. Nếu tôi không impute phân loại svm hoạt động tốt, nhưng khi tôi impute dữ liệu tôi nhận được lỗi 'IndexError: chỉ số nguyên, lát (': '), ellipsis (' ... '), numpy.newaxis (' None ') và số nguyên hoặc mảng boolean là các chỉ số hợp lệ'. Có lời khuyên nào không? –