相关疑难解决方法(0)

使用Scikit-learn时的Python MemoryError

我在具有24GB内存的Windows 8 64位系统上运行Python 2.7(64位).在进行通常的拟合时Sklearn.linear_models.Ridge,代码运行正常.

问题:然而,当Sklearn.linear_models.RidgeCV(alphas=alphas)用于拟合时,我MemoryErrorrr.fit(X_train, y_train)执行拟合程序的行上遇到下面显示的错误.

我该如何防止此错误?

代码段

def fit(X_train, y_train):
    alphas = [1e-3, 1e-2, 1e-1, 1e0, 1e1]

    rr = RidgeCV(alphas=alphas)
    rr.fit(X_train, y_train)

    return rr


rr = fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)

错误

MemoryError                               Traceback (most recent call last)
<ipython-input-41-a433716e7179> in <module>()
      1 # Fit Training set
----> 2 rr = fit(X_train, y_train)

<ipython-input-35-9650bd58e76c> in fit(X_train, y_train)
      3 
      4     rr = RidgeCV(alphas=alphas)
----> 5     rr.fit(X_train, y_train)
      6 
      7     return rr

C:\Python27\lib\site-packages\sklearn\linear_model\ridge.pyc in fit(self, X, …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy python-2.7 scikit-learn

13
推荐指数
2
解决办法
3万
查看次数

转换为数组时Python的内存错误

我的代码如下所示:

from sklearn.datasets import load_svmlight_files
import numpy as np

perm1 =np.random.permutation(25000)
perm2 = np.random.permutation(25000)

X_tr, y_tr, X_te, y_te = load_svmlight_files(("dir/file.feat", "dir/file.feat"))

#randomly shuffle data
X_train = X_tr[perm1,:].toarray()[:,0:2000]
y_train = y_tr[perm1]>5 #turn into binary problem
Run Code Online (Sandbox Code Playgroud)

代码工作正常,直到这里,但当我尝试将另一个对象转换为数组时,我的程序返回内存错误.

码:

X_test = X_te[perm2,:].toarray()[:,0:2000]
Run Code Online (Sandbox Code Playgroud)

错误:

---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)
<ipython-input-7-31f5e4f6b00c> in <module>()
----> 1 X_test = X_test.toarray()

C:\Users\Asq\AppData\Local\Enthought\Canopy\User\lib\site-packages\scipy\sparse\compressed.pyc in toarray(self, order, out)
    788     def toarray(self, order=None, out=None):
    789         """See the docstring for `spmatrix.toarray`."""
--> 790         return self.tocoo(copy=False).toarray(order=order, out=out)
    791 
    792     ##############################################################

C:\Users\Asq\AppData\Local\Enthought\Canopy\User\lib\site-packages\scipy\sparse\coo.pyc …
Run Code Online (Sandbox Code Playgroud)

python numpy python-2.7 scikit-learn canopy

2
推荐指数
1
解决办法
6183
查看次数

标签 统计

numpy ×2

python ×2

python-2.7 ×2

scikit-learn ×2

canopy ×1

scipy ×1