TypeError: f1_score () получил неожиданный аргумент ключевого слова «средний» - PullRequest
0 голосов
/ 30 мая 2019

Я извлекаю значение F1_macro с помощью функции f1_score sklearn.

Я делаю это для своей сети Keras, это код:

Y_dev_pred = self.model.predict([self.dev[0], self.dev[1]], batch_size=self.BatchSize, verbose=0)
Y_dev_pred = np.argmax(Y_dev_pred, axis=1)
self.Y_dev = np.argmax(self.dev[2], axis=1)
print('####### ', self.Y_dev.shape, ' ', Y_dev_pred.shape)
print(self.Y_dev, ' ### ', Y_dev_pred)
print(f1_score(self.Y_dev, Y_dev_pred, average='macro'))

Выход:

#######  (19647,)   (19647,)
[1 0 0 ... 2 0 2]  ###  [0 0 0 ... 2 1 0]

Traceback (most recent call last):
  File "main.py", line 185, in <module>
    deep.run_model(reTrain=True)
  File ".../models/DL.py", line 477, in run_model
    self.evaluate_on_test()
  File ".../models/DL.py", line 448, in evaluate_on_test
    print(f1_score(self.Y_dev, Y_dev_pred, average='macro'))
TypeError: f1_score() got an unexpected keyword argument 'average'

В чем проблема, я что-то упустил?

1 Ответ

0 голосов
/ 30 мая 2019

Проверьте, имеет ли какой-либо из ваших ярлыков y_true или y_predicted только два класса? проверьте уникальные значения в каждом. Средний макрос работает только для мультикласса, если какая-либо из переменных имеет только два класса, она выдает ошибку, подобную этой! и да, проверьте версию своего sklearn,

...