如何在机器学习问题中计算概率而不是实际分类

假设我们有一些数据点可以用作训练集。每行由4个列(特征)组成,这些列取布尔值。第5列表示类别,它也取布尔值。以下是一个例子(几乎是随机的):

1,1,1,0,10,1,1,0,11,1,0,0,10,0,0,0,01,0,0,1,00,0,0,0,0

现在,我想构建一个模型,使得对于任何给定的输入(新行),系统不返回类别本身(就像常规分类问题的情况),而是返回该特定输入属于类别0或类别1的概率。我该怎么做?此外,我如何生成与该计算相关的置信区间或错误率?


回答:

并非所有分类算法都会返回概率,因为并非所有算法都有潜在的概率模型。例如,分类树只是一组规则,你可以遵循这些规则将每个新输入分配到特定类别。

一个具有潜在概率模型的分类算法的例子是逻辑回归。在这个算法中,特定输入x属于某个类的概率是

prob = 1 / (1 + exp( -theta * x ))

其中theta是一个与x维数相同的系数向量。通常,要从概率转化为分类,你只需设定一个阈值,例如

if prob < 0.5  return 0;else  return 1;end

其他分类算法可能有概率解释,例如随机森林本质上是一个具有多个分类树的投票算法。如果80%的树投票支持类别1,而20%的树投票支持类别2,那么你可以输出80%的概率属于类别1。但这是模型工作方式的一个副作用,而不是一个明确的潜在概率模型。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注