Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.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 安装任何类型的模型时出现scikit内存错误_Python_Out Of Memory_Scikit Learn - Fatal编程技术网

Python 安装任何类型的模型时出现scikit内存错误

Python 安装任何类型的模型时出现scikit内存错误,python,out-of-memory,scikit-learn,Python,Out Of Memory,Scikit Learn,我试图用scikit的线性模型(Ridge()、Lasso()、LinearRegression())拟合(223129108)数据集,并得到以下错误。 不知道该怎么办,数据似乎不够大,无法用光内存(我有16GB)。 有什么想法吗 --------------------------------------------------------------------------- MemoryError Traceback (most

我试图用scikit的线性模型(Ridge()、Lasso()、LinearRegression())拟合(223129108)数据集,并得到以下错误。 不知道该怎么办,数据似乎不够大,无法用光内存(我有16GB)。 有什么想法吗

---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)
<ipython-input-34-8ea705d45c5d> in <module>()
----> 1 cv_loop(T,yn, model=reg, per_test=0.2,cv_random=False,tresh=450)

<ipython-input-1-ea163943e461> in cv_loop(X, y, model, per_test, cv_random, tresh)
     48     preds_all=np.zeros((y_cv.shape))
     49     for i in range(y_n):
---> 50         model.fit(X_train, y_train[:,i])
     51 
     52         preds = model.predict(X_cv)

C:\Users\m&g\AppData\Local\Enthought\Canopy32\User\lib\site-packages\scikit_learn-0.14.1-py2.7-win32.egg\sklearn\linear_model\coordinate_descent.pyc in fit(self, X, y, Xy, coef_init)
    608                           "estimator", stacklevel=2)
    609         X = atleast2d_or_csc(X, dtype=np.float64, order='F',
--> 610                              copy=self.copy_X and self.fit_intercept)
    611         # From now on X can be touched inplace
    612         y = np.asarray(y, dtype=np.float64)

C:\Users\m&g\AppData\Local\Enthought\Canopy32\User\lib\site-packages\scikit_learn-0.14.1-py2.7-win32.egg\sklearn\utils\validation.pyc in atleast2d_or_csc(X, dtype, order, copy, force_all_finite)
    122     """
    123     return _atleast2d_or_sparse(X, dtype, order, copy, sparse.csc_matrix,
--> 124                                 "tocsc", force_all_finite)
    125 
    126 

C:\Users\m&g\AppData\Local\Enthought\Canopy32\User\lib\site-packages\scikit_learn-0.14.1-py2.7-win32.egg\sklearn\utils\validation.pyc in _atleast2d_or_sparse(X, dtype, order, copy, sparse_class, convmethod, force_all_finite)
    109     else:
    110         X = array2d(X, dtype=dtype, order=order, copy=copy,
--> 111                     force_all_finite=force_all_finite)
    112         if force_all_finite:
    113             _assert_all_finite(X)

C:\Users\m&g\AppData\Local\Enthought\Canopy32\User\lib\site-packages\scikit_learn-0.14.1-py2.7-win32.egg\sklearn\utils\validation.pyc in array2d(X, dtype, order, copy, force_all_finite)
     89         raise TypeError('A sparse matrix was passed, but dense data '
     90                         'is required. Use X.toarray() to convert to dense.')
---> 91     X_2d = np.asarray(np.atleast_2d(X), dtype=dtype, order=order)
     92     if force_all_finite:
     93         _assert_all_finite(X_2d)

C:\Users\m&g\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.0.3.1262.win-x86\lib\site-packages\numpy\core\numeric.pyc in asarray(a, dtype, order)
    318 
    319     """
--> 320     return array(a, dtype, copy=False, order=order)
    321 
    322 def asanyarray(a, dtype=None, order=None):

MemoryError: 
---------------------------------------------------------------------------
MemoryError回溯(上次最近调用)
在()
---->1个cv_循环(T,yn,model=reg,per_test=0.2,cv_random=False,tresh=450)
在cv_循环中(X、y、模型、每_测试、cv_随机、tresh)
48 preds_all=np.零((y_cv.形状))
49适用于范围内的i(y\n):
--->50型号。配合(X_系列,y_系列[:,i])
51
52预测=模型预测(X_cv)
C:\Users\m&g\AppData\Local\enthund\Canopy32\User\lib\site packages\scikit\u learn-0.14.1-py2.7-win32.egg\sklearn\linear\u model\coordinate\u destine.pyc in fit(self、X、y、Xy、coef\u init)
608“估计器”,stacklevel=2)
609 X=至少2d\u或\u csc(X,dtype=np.float64,order='F',
-->610 copy=self.copy\u X和self.fit\u截距)
611#从现在起,X可以在原地触摸
612y=np.asarray(y,dtype=np.float64)
C:\Users\m&g\AppData\Local\enthund\Canopy32\User\lib\site packages\scikit\u learn-0.14.1-py2.7-win32.egg\sklearn\utils\validation.pyc至少在2D\u或\u csc中(X、数据类型、顺序、复制、强制所有\u有限)
122     """
123返回_至少2D_或_稀疏(X,数据类型,顺序,复制,稀疏.csc_矩阵,
-->124“tocsc”,强制力(有限)
125
126
C:\Users\m&g\AppData\Local\enthund\Canopy32\User\lib\site packages\scikit\u learn-0.14.1-py2.7-win32.egg\sklearn\utils\validation.pyc至少在二维或稀疏(X,dtype,order,copy,sparse\u类,convmethod,force\u all\u finite)中
109其他:
110 X=array2d(X,dtype=dtype,order=order,copy=copy,
-->111力\u全部\u有限=力\u全部\u有限)
112如果力是有限的:
113(X)断言(X)
C:\Users\m&g\AppData\Local\enthund\Canopy32\User\lib\site packages\scikit\u learn-0.14.1-py2.7-win32.egg\sklearn\utils\validation.pyc在array2d中(X、数据类型、顺序、副本、强制所有有限)
89 raise TypeError('传递了稀疏矩阵,但数据密集'
90'是必需的。请使用X.toarray()转换为稠密。“)
--->91 X_2d=np.asarray(np.至少X_2d(X),dtype=dtype,order=order)
92如果力是有限的:
93 assert all Limited(X 2d)
C:\Users\m&g\AppData\Local\enthund\Canopy32\App\AppData\canopy-1.0.3.1262.win-x86\lib\site packages\numpy\core\numeric.pyc(a,数据类型,顺序)
318
319     """
-->320返回数组(a,数据类型,副本=False,顺序=order)
321
322 def asanyarray(a,数据类型=无,订单=无):
记忆错误:

由于32位的处理,您的16Gb RAM有效地减少到4Gb(因为32位意味着您只能区分2^32个内存地址,即4Gb)。如果您想处理大型数据集,我建议您切换到64位版本

如果您不能求助于更改比特率,那么您应该准备好对代码进行规避。您应该仔细查看您的代码,寻找可能的内存分配(感觉像C,不是吗?),有时甚至可以执行一些
del
s(在您不再需要变量但解释器不知道它的情况下)


或者,因为所有的数据都是一个100维的向量,并且有很多数据(200K),所以你可能只需要,比如说,10%的数据,并且仍然具有代表性。但这取决于数据的性质,需要进一步的研究。

尝试使用SGDRegressor而不是您尝试过的估计器。它也适合线性回归模型,但设计用于处理大型数据集,占用的内存要少得多。

Python会话中还加载了其他内容吗?如果您关闭Python并重新启动它并尝试使用相同的数据会怎么样?完成。多次。每次都是相同的错误。你在使用64位python吗?这很奇怪:
np.ones((223129108)).astype(np.float64)
给了我一个大约183兆字节的数组。我在使用32位python