我試圖使用sklearn 0.11的邏輯迴歸對象擬合模型200,000觀察與約80000特點。目標是將短文描述分爲800個類中的1個。Scikit-瞭解Logistic迴歸內存錯誤
當我嘗試以適應分類pythonw.exe給我:
應用程序錯誤「在00000000 ...在引用內存的指令」。內存不能被寫入「。
功能非常稀疏,每次觀察約10次,並且是二進制(1或0),所以通過我的信封計算背面我的4 GB RAM應該能夠處理內存需求,但似乎並非如此,只有當我使用較少的觀測和/或較少的特徵時,模型才適用。天真的理解是,運行在幕後的線性庫能夠支持這一點。任何想法如何我可能擠壓更多的觀察?
我的代碼如下所示:
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 GB的RAM。因爲它是一個C
做了Python解釋器會崩潰嗎?寫入'0x0'是一個非常嚴重的錯誤,我們(scikit-learn開發者)應該研究它。 –
Python解釋器確實崩潰。 –
您正在使用的數據集是公開的嗎?你能用小數據集(例如'x_first_half = x [:x.shape [0]/2]'或者'x_second_half = x [x。形狀[0]/2:]'? – ogrisel