预测班级或班级概率?

发布于 2021-01-29 19:36:28

我目前正在将H2O用于分类问题数据集。我正在H2ORandomForestEstimatorpython
3.6环境中对其进行测试。我注意到预测方法的结果是给出0到1之间的值(我假设这是概率)。

在我的数据集中,目标属性是数字,即True值是1且False值是0。我确保将类型转换为目标属性的类别,但仍得到相同的结果。

然后我修改了代码,asfactor()仍然使用H2OFrame上的方法将目标列转换为因数,结果没有任何变化。

但是,当我分别将target属性中的值分别更改为1和0的True和False时,我得到了预期的结果(即输出)是分类而不是概率。

  • 什么是获得分类预测结果的正确方法?
  • 如果概率是数字目标值的结果,那么在进行多类分类时如何处理?
关注者
0
被浏览
67
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    从原理和理论上讲,硬分类和软分类(即分别返回 概率
    )是不同的方法,每种方法都有其优点和缺点。例如,从论文硬分类还是软分类中考虑以下内容大利润统一机

    基于边距的分类器已在机器学习和分类问题的统计中广受欢迎。在众多分类器中,有些是 分类器,而有些是
    分类器。软分类器显式估计类的条件概率,然后根据估计的概率执行分类。相反,硬分类器直接针对分类决策边界,而不产生概率估计。这两种类型的分类器基于不同的哲学,每种都有其优点。

    也就是说,实际上,当今使用的大多数分类器,包括随机森林(我能想到的唯一例外是SVM系列)实际上都是
    分类器:它们在底层实际产生的是类似于概率的量度,其后,结合隐式 阈值 (在二进制情况下,默认情况下通常为默认
    0.5)会产生硬类成员资格,例如0/1True/False

    什么是获得分类预测结果的正确方法?

    对于初学者来说,从概率到困难的类别总是可能的,但事实并非如此。

    一般而言,考虑到您的分类器实际上是一个
    分类器,仅对最终的硬分类器(True/False)进行分类就可以给该过程带来“黑匣子”味道,这在原则上应该是不受欢迎的;直接处理产生的概率,并且(重要!)明确控制
    决策阈值
    应该是此处的首选方法。根据我的经验,这些都是新手往往会迷失的精妙之处。从“交叉验证线程分类”概率阈值中考虑以下内容:

    当您为新样本的每个类别输出概率时,练习的统计部分结束。选择一个阈值,将新观察值分类为1 vs. 0不再是 统计信息的 一部分。它是 决策
    组件的一部分。

    除了上面提到的“软”自变量(非双关语)外,在某些情况下,您 需要
    直接处理基础的概率和阈值,即二进制分类中默认阈值0.5会使您误入歧途,尤其是在您的课堂上不平衡
    有关此类情况的具体示例,请参见我在高AUC中的答案,但对于不平衡数据(及其中的链接)的错误预测

    老实说,我对您报告的H2O行为感到惊讶(我个人没有使用过),即输出的种类受输入的表示形式影响;事实并非如此,如果确实如此,我们可能会遇到设计不良的问题。比较scikit-
    learn中的Random Forest分类器,它包括两种不同的方法,predictpredict_proba,分别获得硬分类和潜在概率(并检查文档,很明显,的输出predict基于
    概率估计 ,之前已经计算过)。

    如果概率是数字目标值的结果,那么在进行多类分类时如何处理?

    原则上,这里没有什么新内容,除了简单的阈值不再有意义的事实之外;再次,来自predictscikit-
    learn中的Random Forest文档:

    预测类别是具有最高平均概率估计的类别

    也就是说,对于3个类别(0, 1, 2),您将获得的估计值[p0, p1, p2](根据概率规则,元素加总为1),而预测的类别是概率最高的类别,例如,对于,类别为#1 [0.12, 0.60, 0.28]。这是3类虹膜数据集的可重现示例(用于GBM算法和R中,但基本原理相同)。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看