Uni*_*orn 7 python machine-learning scikit-learn
我该如何解决这个错误?
警告:精度和 F 分数定义不明确,在没有预测样本的标签中设置为 0.0。使用
zero_division参数来控制此行为。_warn_prf(平均值,修饰符,msg_start,len(结果))
当我添加 Adam 的调整参数时出现错误。
# Tuning parameter from keras.optimizers import Adam
optimize = Adam(learning_rate=0.00001, beta_1=0.9, beta_2=0.99)
model.compile(optimizer=optimize, loss='categorical_crossentropy', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)
这段代码的错误是什么?
from sklearn.metrics import confusion_matrix, classification_report
prediksi = model.predict(test_data_generator)
y_pred = np.argmax(prediksi, axis=1)
print(confusion_matrix(test_data_generator.classes, y_pred))
print(classification_report(test_data_generator.classes, y_pred))
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用labels=np.unique(y_pred),但结果并没有显示 的准确性值。
出现此警告是因为y_true包含预测 ( y_pred) 中不存在的标签,如下例所示:
import numpy as np
from sklearn.metrics import confusion_matrix, classification_report
y_pred = np.ones(10,)
y_true = np.ones(10,)
y_true[0]=0
print(confusion_matrix(y_true,y_pred))
print(classification_report(y_true,y_pred))
Run Code Online (Sandbox Code Playgroud)
您可以通过设置classification_reportargument来删除此警告zero_division=1。
但这并不明智,因为它表明您的分类器存在问题。
| 归档时间: |
|
| 查看次数: |
13364 次 |
| 最近记录: |