我使用scikit-learn和SGD分类器在小批量中训练SVM。这里有一个小代码片段:
for row in reader:
if row[0] in model.docvecs:
TRAINING_X.append(model.docvecs[row[0]])
TRAINING_Y.append(row[2])
if count % 10000 == 0:
np_x = np.asarray(TRAINING_X)
np_y = np.asarray(TRAINING_Y)
clf.partial_fit(np_x,np_y, np.unique(np.asarray))
TRAINING_X = []
TRAINING_Y = []
count += 1
我使用partial_fit函数读取每1000个数据点,并使用np.unique()根据文档生成类标签。
然而,当我运行这个程序时,我会得到以下错误:
引发ValueError("类标签的数目必须为"ValueError:类标签的数量必须大于一个。
我有点困惑。我是否错误地生成了类标签?
partial_fit
的文档显示Classes across all calls to partial_fit. Can be obtained by via np.unique(y_all), where y_all is the target vector of the entire dataset.
。
你似乎通过了np.unique(np.asarray)
,这似乎不正确。
根据程序抛出的错误,我认为目标变量中只有一个唯一的类。请使用np.unique(np_y)
,并获取要输入到模型中的唯一类的数量,并确保它不止一个。
此外,classes
参数的值似乎不正确,它应该是np.unique(np_y)
而不是np.unique(np.asarray)