[scikit-learn] Ipython Jupyter Kernel Dies when I fit an SGDClassifier
Sebastian Raschka
se.raschka at gmail.com
Fri Jun 2 13:30:30 EDT 2017
I also think that this could be likely a memory related issue. I just ran the following snippet in a Jupyter Nb:
import numpy as np
from sklearn.linear_model import SGDClassifier
model = SGDClassifier(loss='log',penalty=None,alpha=0.0,
l1_ratio=0.0,fit_intercept=False,n_iter=1,shuffle=False,learning_rate='constant',
eta0=1.0)
X = np.random.random((1000000, 1000))
y = np.zeros(1000000)
y[:1000] = 1
model.fit(X, y)
The dataset takes approx. 8 Gb, but the model fitting is consuming ~16 Gb -- probably due to making a copy of the X array in the code. The Notebook didn't crash but I think on machines with smaller RAM, this could be an issue. One workaround you could try is to fit the model iteratively using partial_fit. For example, 1000 samples at a time or so:
indices = np.arange(y.shape[0])
batch_size = 1000
for start_idx in range(0, indices.shape[0] - batch_size + 1,
batch_size):
index_slice = indices[start_idx:start_idx + batch_size]
model.partial_fit(X[index_slice], y[index_slice], classes=[0, 1])
Best,
Sebastian
> On Jun 2, 2017, at 6:50 AM, Iván Vallés Pérez <ivanvallesperez at gmail.com> wrote:
>
> Are you monitoring your RAM memory consumption? I would say that it is the cause of the majority of the kernel crashes
> El El vie, 2 jun 2017 a las 12:45, Aymen J <ay.j at hotmail.fr> escribió:
> Hey Guys,
>
>
> So I'm trying to fit an SGD classifier on a dataset that has 900,000 for about 3,600 features (high cardinality).
>
>
> Here is my model:
>
>
> model = SGDClassifier(loss='log',penalty=None,alpha=0.0,
> l1_ratio=0.0,fit_intercept=False,n_iter=1,shuffle=False,learning_rate='constant',
> eta0=1.0)
>
> When I run the model.fit function, The program runs for about 5 minutes, and I receive the message "the kernel has died" from Jupyter.
>
> Any idea what may cause that? Is my training data too big (in terms of features)? Can I do anything (parameters) to finish training?
>
> Thanks in advance for your help!
>
>
>
> _______________________________________________
> scikit-learn mailing list
> scikit-learn at python.org
> https://mail.python.org/mailman/listinfo/scikit-learn
> _______________________________________________
> scikit-learn mailing list
> scikit-learn at python.org
> https://mail.python.org/mailman/listinfo/scikit-learn
More information about the scikit-learn
mailing list