sklearn 0.11의 LogisticRegression 객체를 사용하여 약 80,000 개의 기능으로 200,000 회의 관측치에 모형을 맞추려고합니다. 목표는 짧은 텍스트 설명을 800 개의 클래스 중 하나로 분류하는 것입니다. Scikit- 로지스틱 회귀 메모리 기억 오류
나는 분류 pythonw.exe에 맞게하려고
저를 제공합니다응용 프로그램 오류 "0x00000000의에서에서 ... 메모리를 참조 명령". 메모리를 쓸 수 없습니다. "라는 메시지가 표시됩니다.
기능은 매우 희소하며 관찰 당 약 10 개이며 바이너리 (1 또는 0)이므로 봉투 계산에서 내 4GB의 RAM으로 메모리 요구 사항을 처리하지만 그럴 듯하지는 않습니다. 관측치가 적고 기능이 적을 때만 모델이 적합합니다.
더 많은 관찰과 기능을 사용하고 싶습니다. 순진한 이해는 뒷 배경을 다루는 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() 함수는 각 관찰에서 감지 된 피쳐를 나타내는 문자열 목록을 반환합니다.
sklearn 0.11, Windows XP 및 4GB RAM을 사용하고 있습니다. 그것은 C 때문에
파이썬 인터프리터가 충돌 했습니까? '0x0'에 쓰는 것은 꽤 심각한 오류입니다, 우리는 (scikit-learn 개발자들) 그것을 조사해야합니다. –
파이썬 인터프리터가 작동하지 않습니다. –
사용중인 데이터 세트가 공개되어 있습니까? 이 충돌을 작은 데이터 세트 (예 :'x_first_half = x [: x.shape [0]/2]'또는'x_second_half = x [x.모양 [0]/2 :]'? – ogrisel