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

假设我们有一些数据点可以用作训练集。每行由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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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