TypeError: f1_score() got an unexpected keyword argument 'average'
TypeError: f1_score() got an unexpected keyword argument 'average'
我正在使用 f1_score sklearn 函数提取 F1_macro 值。
我为我的 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'
有什么问题,我是不是遗漏了什么?
检查您的 y_true 标签或 y_predicted 标签是否只有两个 类?检查每个中的唯一值。如果任何变量只有两个 类,average 宏仅适用于多类,它会抛出这样的错误!
是的,检查你的 sklearn 版本,
当我在我的代码中还有另一个名为 f1_score 的函数时,我遇到了这个错误。
我的 scikit 学习是 Name: scikit-learn Version: 0.24.2
我仍然遇到这个问题。我的问题是 multi-class 而不是二进制。
如果我删除平均值,我会收到此错误 Target is multiclass but average='binary'. Please choose another average setting, one of [None, 'micro', 'macro', 'weighted'].
我正在使用 f1_score sklearn 函数提取 F1_macro 值。
我为我的 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'
有什么问题,我是不是遗漏了什么?
检查您的 y_true 标签或 y_predicted 标签是否只有两个 类?检查每个中的唯一值。如果任何变量只有两个 类,average 宏仅适用于多类,它会抛出这样的错误! 是的,检查你的 sklearn 版本,
当我在我的代码中还有另一个名为 f1_score 的函数时,我遇到了这个错误。
我的 scikit 学习是 Name: scikit-learn Version: 0.24.2
我仍然遇到这个问题。我的问题是 multi-class 而不是二进制。
如果我删除平均值,我会收到此错误 Target is multiclass but average='binary'. Please choose another average setting, one of [None, 'micro', 'macro', 'weighted'].