机器学习中的概率模型2025年6月24日 | 阅读 8 分钟 机器学习中的概率模型是现实世界过程的数学表示,它包含不确定或随机变量。概率建模的目标是根据数据或先验知识来估计系统可能结果的概率。 概率模型用于各种机器学习任务,如分类、回归、聚类和降维。一些流行的概率模型包括
概率模型允许表达不确定性,这使得它们特别适合数据经常存在噪声或不完整性的现实应用。此外,这些模型可以在新数据可用时进行更新,这在许多动态和演变系统中非常有用。 为了更好地理解,我们将使用kaggle上的OSIC肺纤维化问题来实施概率模型。 问题陈述:“在此比赛中,您将根据患者的肺部CT扫描图像预测患者肺功能的下降严重程度。您将根据肺活量计的输出来确定肺功能,肺活量计用于测量吸入和呼出的空气量。挑战在于利用机器学习技术,以图像、元数据和基线 FVC 作为输入进行预测。” 导入库EDA让我们来看看这三个不同患者的肺功能下降情况。 输出 ![]() 肺容量在下降是显而易见的。但正如我们所见,它们因病例而异,患者之间差异很大。 建立模型是时候发挥想象力了。这个表格数据集可以以多种方式建模。以下是我们可能会用到的一些工具
在我们仍在学习的过程中,我们将从尝试最简单的模型——线性回归开始。然而,我们将变得更复杂一些。以下是我们的假设
我们的模型由下图所示的贝叶斯网络表示 ![]() 该模型背后的逻辑
数学模型规范 ![]() 简单数据预处理输出 ![]() 输出 ![]() 在 PyMC3 中建模拟合模型输出 ![]() 我们仅采样了 4000 个不同的模型,这些模型都能解释数据。 检查模型让我们看一下我们开发的生成模型。 输出 ![]() 似乎我们的模型为每个患者学习了独特的 alpha 和 beta。 检查一些患者PyMC3 包含一个非常强大的可视化工具 ArviZ。尽管如此,我们还是使用了 Seaborn 和 Matplotlib。 输出 ![]() 这里绘制了每个患者拥有的 4000 个不同模型中的 100 个。拟合的回归线用绿色表示,标准差用黄色表示。让我们把它们整合起来! (迭代并)使用模型现在让我们使用我们的生成模型。 简单数据预处理输出 ![]() 输出 ![]() 后验预测PyMC3 提供了两种方法来对未见过的、已隐藏的数据进行预测。第一步涉及使用 theano.shared 变量。我们只需要写 4-5 行代码即可完成。我们进行了测试,并且它运行完美,但为了更好地理解,我们还将使用第二种方法。 虽然它比 4-5 行代码稍微长一些,但我们发现它更具启发性。PyMC3 的开发者在 Luciano Paz 的这个回答中解释了该概念。我们将使用第一个模型上学习到的参数的分布作为先验,构建第二个模型来预测隐藏数据上的 FVC。根据贝叶斯方法,当我们收集新数据时,我们会不断更新我们的模型。 输出 ![]() 输出 ![]() 来吧!每一点都有 4000 个预测! 生成最终预测输出 ![]() 注意:我们生成最终预测是为了能够将其提交给比赛进行评估。结论本质上,概率模型就是一个包含不确定性的模型。在机器学习中,这通常涉及使用概率分布来表示系统中不同变量之间的关系。例如,在分类任务中,概率模型可能会表示某个输入属于每个可能类的概率。 下一主题最大池化 |
我们请求您订阅我们的新闻通讯以获取最新更新。