Scikit -Изучение ошибки памяти логистической регрессии

Я пытаюсь использовать объект LogisticRegression sklearn 0.11, чтобы соответствовать модели на 200 000 наблюдений с примерно 80 000 функциями. Цель состоит в том, чтобы классифицировать краткие текстовые описания по 1 из 800 классов.

Когда я пытаюсь подобрать классификатор, pythonw.exe выдает мне:

Ошибка приложения «Инструкция по адресу... ссылается на память по адресу 0x00000000». Память не могла быть записана».

Признаки чрезвычайно разрежены, около 10 на наблюдение, и являются двоичными (либо 1, либо 0 ), поэтому, по моим подсчетам, мои 4 ГБ ОЗУ должны быть в состоянии справиться с требованиями к памяти, но это не так. похоже, это не так. Модели подходят только тогда, когда я использую меньше наблюдений и/или меньше признаков.

Во всяком случае, я хотел бы использовать еще больше наблюдений и возможностей. Мое наивное понимание состоит в том, что библиотека liblinear, работающая за кулисами, способна это поддерживать. Любые идеи о том, как я мог бы втиснуть еще несколько наблюдений?

Мой код выглядит так:

y_vectorizer = LabelVectorizer(y) # my custom vectorizer for labels
y = y_vectorizer.fit_transform(y)

x_vectorizer = CountVectorizer(binary = True, analyzer = features)
x = x_vectorizer.fit_transform(x)

clf = LogisticRegression()
clf.fit(x, y)

Функция features (), которую я передаю анализатору, просто возвращает список строк, указывающих особенности, обнаруженные в каждом наблюдении.

Я использую Python 2.7, sklearn 0.11, Windows XP с 4 ГБ оперативной памяти.

7
задан Alexander Measure 25 June 2012 в 18:47
поделиться