2016-07-20 2 views
1

나는 2,000 만 개의 행을 갖는 train 팬더의 df와 약 1000 만 개의 행을 갖는 test 팬의 df를가집니다.scikit-learn의 LabelEncoder() 메모리 문제

LabelEncoder()를 적용하려는 df의 열이 있지만 내 랩톱 및 64 기가 RAM AWS 인스턴스에서도 계속 Memory Error이 표시됩니다.

맵핑을 잃지 않고 청크로 처리 할 수있는 방법이 있습니까? 여기

내가 사용하던 코드 : 나는 각에서 50 개 행을 샘플링 에러없이 코드를 실행 할 수 있었다

from sklearn.preprocessing import LabelEncoder 
le = LabelEncoder() 

for col in cols_to_encode: 
    le.fit(list(train[col])+list(test[col])) 
    train[col] = le.transform(train[col]) 
    test[col] = le.transform(test[col]) 

, 그래서 그것을 구문 오류 또는 뭔가 아니다 알고있다.

도움을 주시면 감사하겠습니다.

답변

1

이전에는 LabelEncoder를 사용하지 않았지만 Sklearn과의 작업에서 병렬 처리에 도움이되는 옵션이 있다는 것을 알고 있습니다. 이 작업을 병렬 처리하려고 했습니까? 많은 sklearn 분류기가 가지고있는 n_jobs와 같은 매개 변수를 사용하거나 심지어 파이썬 다중 처리 라이브러리를 사용합니다.

+0

내가 한 첫 번째 일은'n_jobs' 매개 변수를 검사하는 것이지만이 함수에는 존재하지 않는 것 같습니다. 보통'n_jobs '는 헬퍼 함수가 아닌 분류자를위한 것입니다. –