python - tutorial - Sklearn: no se pueden usar datos codificados en el clasificador de bosques aleatorios
scikit learn español (1)
Los bosques aleatorios sklearn no funcionan en entradas dispersas y la forma de su conjunto de datos es demasiado grande y escasa para que una versión densa encaje en la memoria.
Probablemente tenga algunas características categóricas con una cardinalidad muy grande (por ejemplo, un campo de texto libre o identificadores de entrada únicos). Intenta eliminar esas características y comienza de nuevo.
Soy nuevo en scikit-learn. Estoy intentando usar el preprocesamiento. OneHotEncoder para codificar mis datos de entrenamiento y prueba. Después de la codificación intenté entrenar al clasificador de bosques aleatorios usando esa información. Pero recibo el siguiente error al ajustarlo. (Aquí el rastro de error)
99 model.fit(X_train, y_train)
100 preds = model.predict_proba(X_cv)[:, 1]
101
C:/Python27/lib/site-packages/sklearn/ensemble/forest.pyc in fit(self, X, y, sample_weight)
288
289 # Precompute some data
--> 290 X, y = check_arrays(X, y, sparse_format="dense")
291 if (getattr(X, "dtype", None) != DTYPE or
292 X.ndim != 2 or
C:/Python27/lib/site-packages/sklearn/utils/validation.pyc in check_arrays(*arrays, **options)
200 array = array.tocsc()
201 elif sparse_format == ''dense'':
--> 202 raise TypeError(''A sparse matrix was passed, but dense ''
203 ''data is required. Use X.toarray() to ''
204 ''convert to a dense numpy array.'')
TypeError: A sparse matrix was passed, but dense data is required. Use X.toarray() to convert to a dense numpy array.
Traté de convertir la matriz dispersa en densa usando X.toarray () y X.todense () Pero cuando hago eso, obtengo el siguiente rastro de error.
99 model.fit(X_train.toarray(), y_train)
100 preds = model.predict_proba(X_cv)[:, 1]
101
C:/Python27/lib/site-packages/scipy/sparse/compressed.pyc in toarray(self)
548
549 def toarray(self):
--> 550 return self.tocoo(copy=False).toarray()
551
552 ##############################################################
C:/Python27/lib/site-packages/scipy/sparse/coo.pyc in toarray(self)
236
237 def toarray(self):
--> 238 B = np.zeros(self.shape, dtype=self.dtype)
239 M,N = self.shape
240 coo_todense(M, N, self.nnz, self.row, self.col, self.data, B.ravel())
ValueError: array is too big.
¿Alguien puede ayudarme a solucionar esto?
Gracias