如何仅针对 1 调整精度?
how to adjust accuracy only for 1's?
假设我有这样的数据:
x1 x2 x3 y
0.85 0.95 0.22 1
0.35 0.26 0.42 0
0.89 0.82 0.82 1
0.36 0.14 0.32 0
0.44 0.53 0.82 1
0.75 0.78 0.52 1
我预测二进制分类,但唯一重要的是 1 的正确预测,如果预测为 0,则不会影响我的准确性。
我只是使用了以下代码:
model.compile(optimizer=keras.optimizers.Adam(learning_rate=0.001),
loss='binary_crossentropy',
metrics=['accuracy'])
但是此代码的准确性也包括零。
如何将只有 1 的预测重要的网络应用到网络中?
换句话说,在拟合模型期间,如果预测为零,则此零预测不适用于模型精度。
看起来你很关心模型的 precision
。精度意味着对于你预测为 1 的所有实例,它们中的哪一部分是正确的。
如果是,请使用 tf.keras.metrics.Precision()
作为指标。
model.compile(optimizer=keras.optimizers.Adam(learning_rate=0.001),
loss='binary_crossentropy',
metrics=[tf.keras.metrics.Precision()])
假设我有这样的数据:
x1 x2 x3 y
0.85 0.95 0.22 1
0.35 0.26 0.42 0
0.89 0.82 0.82 1
0.36 0.14 0.32 0
0.44 0.53 0.82 1
0.75 0.78 0.52 1
我预测二进制分类,但唯一重要的是 1 的正确预测,如果预测为 0,则不会影响我的准确性。
我只是使用了以下代码:
model.compile(optimizer=keras.optimizers.Adam(learning_rate=0.001),
loss='binary_crossentropy',
metrics=['accuracy'])
但是此代码的准确性也包括零。
如何将只有 1 的预测重要的网络应用到网络中?
换句话说,在拟合模型期间,如果预测为零,则此零预测不适用于模型精度。
看起来你很关心模型的 precision
。精度意味着对于你预测为 1 的所有实例,它们中的哪一部分是正确的。
如果是,请使用 tf.keras.metrics.Precision()
作为指标。
model.compile(optimizer=keras.optimizers.Adam(learning_rate=0.001),
loss='binary_crossentropy',
metrics=[tf.keras.metrics.Precision()])