Precision

class paddle.metric.Precision [源代码]

精确率Precision(也称为 positive predictive value,正预测值)是被预测为正样例中实际为正的比例。 https://en.wikipedia.org/wiki/Evaluation_of_binary_classifiers 该类管理二分类任务的precision分数。

注意:这个metric只能用来评估二分类。

参数:

  • name (str,可选) – metric实例的名字,默认是’precision’。

代码示例:

独立使用示例:

  1. import numpy as np
  2. import paddle
  3. x = np.array([0.1, 0.5, 0.6, 0.7])
  4. y = np.array([0, 1, 1, 1])
  5. m = paddle.metric.Precision()
  6. m.update(x, y)
  7. res = m.accumulate()
  8. print(res) # 1.0

在Model API中的示例:

  1. import numpy as np
  2. import paddle
  3. import paddle.nn as nn
  4. class Data(paddle.io.Dataset):
  5. def __init__(self):
  6. super(Data, self).__init__()
  7. self.n = 1024
  8. self.x = np.random.randn(self.n, 10).astype('float32')
  9. self.y = np.random.randint(2, size=(self.n, 1)).astype('float32')
  10. def __getitem__(self, idx):
  11. return self.x[idx], self.y[idx]
  12. def __len__(self):
  13. return self.n
  14. model = paddle.Model(nn.Sequential(
  15. nn.Linear(10, 1),
  16. nn.Sigmoid()
  17. ))
  18. optim = paddle.optimizer.Adam(
  19. learning_rate=0.001, parameters=model.parameters())
  20. model.prepare(
  21. optim,
  22. loss=nn.BCELoss(),
  23. metrics=paddle.metric.Precision())
  24. data = Data()
  25. model.fit(data, batch_size=16)

update ( preds, labels, \args* )

更新Precision的状态。

参数:

  • preds (numpy.array | Tensor): 预测输出结果通常是sigmoid函数的输出,是一个数据类型为float64或float32的向量。

  • labels (numpy.array | Tensor): 真实标签的shape和:code: preds 相同,数据类型为int32或int64。

返回: 无。

reset ( )

清空状态和计算结果。

返回:无

accumulate ( )

累积的统计指标,计算和返回precision值。

返回:precision值,一个标量。

name ( )

返回Metric实例的名字, 参考上述的name,默认是’precision’。

返回: 评估的名字,string类型。