Próbuję użyć obiektu LogisticRegression sklearn 0.11, aby dopasować model do 200 000 obserwacji przy użyciu około 80 000 funkcji. Celem jest klasyfikacja krótkich opisów tekstowych na 1 z 800 klas.Błąd pamięci regresji logiki Scikit-Learn
Gdy próbuję dopasować pythonw.exe klasyfikatora daje mi:
Application Error „Instrukcja w ... pamięci odwołuje się 0x00000000”. Pamięć nie mogła zostać zapisana. "
Funkcje są bardzo rzadkie, około 10 na obserwację i są binarne (1 lub 0), więc moim zdaniem obliczenia obwiedni moje 4 GB pamięci RAM powinno być w stanie poradzić sobie z wymaganiami dotyczącymi pamięci, ale wydaje się, że nie jest tak w przypadku modeli, które pasują tylko wtedy, gdy używam mniej obserwacji i/lub mniej funkcji,
Jeśli w ogóle, chciałbym użyć jeszcze więcej obserwacji i funkcji. naiwne zrozumienie polega na tym, że biblioteka liblinear działająca za kulisami jest w stanie ją wspierać.Wszelkie pomysły na to, jak mogę wycisnąć kilka dodatkowych obserwacji w?
Mój kod wygląda następująco:
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)
Funkcja() Funkcja, którą przekazuję do analizatora, zwraca listę ciągów wskazującą cechy wykryte w każdej obserwacji.
Używam Python 2.7, sklearn 0.11, Windows XP z 4 GB pamięci RAM.
Czy interpreter w języku Python zawiesił się? Zapisywanie do '0x0' jest dość poważnym błędem, powinniśmy (scikit-learn developerzy) zajrzeć do niego. –
Interpreter Pythona ulega awarii. –
Czy używany zestaw danych jest publiczny? Czy możesz odtworzyć tę awarię za pomocą mniejszego zestawu danych (na przykład z 'x_first_half = x [: x.shape [0]/2]' lub 'x_second_half = x [x.kształt [0]/2:] '? – ogrisel