Sklearn 0.11'in LogisticRegression nesnesini, yaklaşık 80.000 özelliğe sahip 200.000 gözlemde bir modele uyacak şekilde kullanmaya çalışıyorum. Amaç, kısa metin açıklamalarını 800 sınıftan 1'ine ayırmaktır. Scikit-Öğrenin Lojistik Regresyon Bellek Hatası
Ben sınıflandırıcı pythonw.exe sığdırmak girişiminde
bana verir:Uygulama Hatası "0x00000000 en ... başvurulan belleğe talimatı". Bellek yazılamadı ".
Özellikler son derece seyrek, gözlem başına yaklaşık 10'dur ve ikilidir (1 veya 0), bu yüzden zarfın arka yüzüne göre 4 GB RAM'im hesaplayabilmeli bellek gereksinimlerini işlemekle birlikte, bu durum böyle görünmüyor.Menel modeller yalnızca daha az gözlem ve/veya daha az özellik kullandığımda beliriyor
Daha fazla gözlem ve özellik kullanmak istiyorum. saf anlayışı, sahnelerin arkasındaki şeyleri çalıştıran liblinear kütüphanesinin bunu destekleyebilmesidir: Bir kaç tane daha gözlem yapabildiğime dair herhangi bir fikir.
Kodum şunun gibi görünüyor:
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)
Analizöre aktardığım özellikler() işlevi, her bir gözlemde algılanan özellikleri belirten bir dizelerin listesini döndürür.
Python 2.7, sklearn 0.11, Windows XP 4 GB RAM kullanıyorum. Bir C olduğu için
Python yorumlayıcısı kilitlendi mi? '0x0'ya yazmak oldukça büyük bir hatadır, biz (scikit-geliştiricileri geliştirir), ona bakmalıyız. –
Python yorumlayıcısı çöküyor. –
Genel olarak kullandığınız veri kümesi var mı? Bu çökmeyi daha küçük bir veri kümesiyle (örneğin x_first_half = x [: x.shape [0]/2] 'veya x_second_half = x [x.şekil [0]/2:] '? – ogrisel