【发布时间】:2021-12-02 02:25:42
【问题描述】:
我是一个 NLP 菜鸟,正在做一个项目,我需要计算几种不同方法的准确度;但是,我在运行代码时不断收到内存错误。例如,我不断收到“无法为形状 (38045, 50000) 和数据类型 float64 的数组分配 14.2 GiB”,即使我转换为 uint8 数据类型并弄乱了 Windows 高级设置以更改内存分配。我的代码如下。
import sklearn
import numpy as np
import sklearn.feature_extraction.text
import pandas as pd
df = pd.read_csv ('amprocessed.csv')
labels = df.iloc[:, 0]
import sklearn.model_selection
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer(max_features=50000, dtype="uint8")
#vectorizer = TfidfVectorizer()
X = (vectorizer.fit_transform(df["Source"]).toarray()).astype(dtype="uint8")
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
xscale = scaler.fit_transform(X).astype(dtype=np.uint8)
from sklearn import svm
x_train, x_test, y_train, y_test = sklearn.model_selection.train_test_split(xscale, labels, test_size=0.2, random_state=42)
clf = svm.SVC(kernel='linear') # Linear Kernel
clf.fit(x_train, y_train).astype(dtype=np.uint8)
y_pred = clf.predict(x_test)
from sklearn import metrics
print("Accuracy:",metrics.accuracy_score(y_test, y_pred)
【问题讨论】:
-
在一个地方你使用
dtype=np.uint8,但在其他地方它是dtype="uint8"。我认为后者应该是像第一个一样的 numpy 类型对象。
标签: python pandas numpy scikit-learn nlp