当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.metric.MCC用法及代码示例


用法:

class mxnet.metric.MCC(name='mcc', output_names=None, label_names=None, average='macro')

参数

  • name(str) - 此度量实例的名称用于显示。
  • output_names(list of str, or None) - 使用update_dict 更新时应使用的预测名称。默认情况下包括所有预测。
  • label_names(list of str, or None) - 使用update_dict 更新时应使用的标签名称。默认情况下包括所有标签。
  • average(str, default 'macro') -
    用于跨小批量聚合的策略。

    ”macro”:平均每批次的 MCC。 “micro”:跨所有批次计算单个 MCC。

基础: mxnet.metric.EvalMetric

计算二元分类问题的马修斯相关系数。

虽然计算速度比 F1 慢,但 MCC 可以提供 F1 或 Accuracy 无法提供的洞察力。例如,如果网络总是预测相同的结果,那么 MCC 将立即显示这一点。 MCC 在正分类和负分类方面也是对称的,但是,标签中需要同时存在正样本和负样本,否则它将始终返回 0。MCC 为 0 是不相关的,1 是完全相关的,-1 是负样本相关。

其中分母中的 0 项被 1 替换。

注意

此版本的 MCC 仅支持二进制分类。见 PCC。

例子

>>> # In this example the network almost always predicts positive
>>> false_positives = 1000
>>> false_negatives = 1
>>> true_positives = 10000
>>> true_negatives = 1
>>> predicts = [mx.nd.array(
    [[.3, .7]]*false_positives +
    [[.7, .3]]*true_negatives +
    [[.7, .3]]*false_negatives +
    [[.3, .7]]*true_positives
)]
>>> labels  = [mx.nd.array(
    [0.]*(false_positives + true_negatives) +
    [1.]*(false_negatives + true_positives)
)]
>>> f1 = mx.metric.F1()
>>> f1.update(preds = predicts, labels = labels)
>>> mcc = mx.metric.MCC()
>>> mcc.update(preds = predicts, labels = labels)
>>> print f1.get()
('f1', 0.95233560306652054)
>>> print mcc.get()
('mcc', 0.01917751877733392)

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.metric.MCC。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。