2016-04-19 2 views
0

Я использую scikit-learn и классификатор SGD для обучения SVM в мини-пакетах. Вот небольшой фрагмент кода:Sci-kit Learn SGD Classifier Partial_Fit Error

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() для создания класса этикетки согласно документации (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier.partial_fit).

Однако, когда я запускаю это, я получаю следующее сообщение об ошибке:

raise ValueError("The number of class labels must be " 
ValueError: The number of class labels must be greater than one. 

Я немного запутался. Я неправильно генерирую метки классов?

Спасибо!

+0

Я также получил аналогичную ошибку. Может быть, мы можем подделывать лейблы и переписывать их позже? – user1

ответ

0

В документации для 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), что кажется неправильным.

Смежные вопросы