所以我有一个包含5300万行及其类别标签的文本文档,我正在尝试使用scikit-learn为这个多类分类问题调整分类器。
我已经尝试了很多东西,我再也无法解决这个问题了。
所以我使用块大小= 100的pandas以块的形式加载数据
使用HashingVectorizer对数据进行矢量化,并对我的数据使用SGDClassigier.partial_fit。
由于稀疏数组在内存中是9992字节(我使用data.nbytes检查),因此出现内存错误本身就是错误的
代码是:
data_iterator = pd.read_csv(foo,chunksize=100)
vectorizer = HashingVectorizer()
classifier = SGDClassifier(n_jobs=-1,verbose=1)
for data_set in data_iterator:
data_set = data_set.dropna()
X = data_set[data_set.columns[1]]
y = data_set[data_set.columns[0]]
X_train = vectorizer.transform(X)
classifier.partial_fit(X_train,y,classes=unique_ids)
文件“/usr/local/lib/python3.4/dist-packages/sklearn/linear_model/stochastic_gradient.py”,第168行,在_allocate_parameter_mem中 dtype = np.float64,order =“C”)
的MemoryError
我该怎么办?我一直在尝试这个很长一段时间
修改 好的,我想出了这个问题。我的数据集中有1e5个类。如果我使用1000个类就可以了。我所拥有的课程数量正在产生问题。我该如何解决这个问题?