Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sklearn-无法在随机林分类器中使用编码数据_Python_Encoding_Numpy_Scipy_Scikit Learn - Fatal编程技术网

Python Sklearn-无法在随机林分类器中使用编码数据

Python Sklearn-无法在随机林分类器中使用编码数据,python,encoding,numpy,scipy,scikit-learn,Python,Encoding,Numpy,Scipy,Scikit Learn,我是新手。我正在尝试使用预处理。OneHotEncoder对我的培训和测试数据进行编码。在编码之后,我尝试使用这些数据来训练随机森林分类器。但我在安装时遇到以下错误。 (这里是错误跟踪) 我尝试使用X.toarray()和X.todense()将稀疏矩阵转换为稠密矩阵 但是当我这样做的时候,我得到了下面的错误跟踪 99 model.fit(X_train.toarray(), y_train) 100 preds = model.predict_prob

我是新手。我正在尝试使用预处理。OneHotEncoder对我的培训和测试数据进行编码。在编码之后,我尝试使用这些数据来训练随机森林分类器。但我在安装时遇到以下错误。 (这里是错误跟踪)

我尝试使用X.toarray()和X.todense()将稀疏矩阵转换为稠密矩阵 但是当我这样做的时候,我得到了下面的错误跟踪

 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.
有人能帮我修一下吗


谢谢

sklearn random forests不适用于稀疏输入,并且您的数据集形状太大,太稀疏,无法在内存中容纳密集版本


您可能有一些分类功能,其基数非常大(例如自由文本字段或唯一条目ID)。尝试放弃这些功能并重新开始。

是时候修复随机林了:)同意,尽管在这种情况下,很可能在非常高的基数功能上天真地应用onehotencoder将无法工作,即使我们在RFs中有稀疏的输入支持。嘈杂的功能永远不会有帮助。你的意思是OP应该首先进行功能选择?我的意思是OP不应该在具有唯一值的功能上使用OneHotEncoder,例如示例标识符或自由文本字段。
 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.