甲骨文

如何比较Oracle Analytics Cloud中的机器学习模型

以应用现代化加速业务创新。

到目前为止,你可能已经知道Oracle Analytics Cloud (OAC)提供了几种机器学习(ML)算法来支持预测分析,而不需要编码。在OAC中有多个ML模型可供选择,因此了解如何比较模型非常重要。在这篇博客文章中,我们将讨论如何评估和比较ML模型来预测人力资源流失的具体任务。我们将通过创建、训练和测试OAC中可用的3ml模型来实现这一点,这些模型使用所有三个模型的相同训练数据集。然后,我们将比较每个模型的质量和度量,看看哪个最适合我们期望的最终结果。我们将使用从Kaggle免费下载的与人力资源减员相关的数据集:

https://www.kaggle.com/pavansubhasht/ibm-hr-analytics-attrition-dataset

这个训练数据集是一个“标记”数据集,这意味着每一行都有一个减员值——是或否。

这给我们带来了关于机器学习的两种主要类型——监督学习和无监督学习的一些定义。

在监督学习中,我们使用标记数据集训练模型。实际上,我们给模型提供答案,并要求它使用这些“答案”来推断预测特定值的规则——在这种情况下是减员。一旦模型经过训练,它就可以用于未标记的数据集,以预测所需的值。

在无监督学习中,模型使用未标记的数据集进行训练。在这种情况下,答案并没有给模型。该模型被要求在数据中找到以前未知的模式,这些模式可用于聚类、异常检测和关联挖掘(例如用于市场篮子分析)。

Oracle Analytics Cloud提供了监督学习和无监督学习的算法。下表列出了Oracle Analytics Cloud中可用的所有机器学习算法。本文将用黄色标注的算法作为示例。请注意,预测算法用于预测数值,而分类算法用于预测非数值值,如属性、类别、二进制值等。

以下是我们将采取的步骤:

  1. 将标记好的人力资源减员数据集上传到OAC并训练Naïve贝叶斯模型
  2. 分析和解释Naïve贝叶斯模型的质量和关键指标
  3. 重复第1步来训练神经网络和SVM模型
  4. 分析神经网络和支持向量机模型的质量和关键指标
  5. 比较所有三个模型

上传训练数据集,训练Naïve贝叶斯模型

步骤1:上传标签训练数据集到OAC

第二列包含磨损的值。这是我们标记的训练数据集。

步骤2:创建数据流-添加标记训练数据集

下一步是创建一个数据流,我们将在其中使用该数据集来训练模型。在下面的屏幕中,您可以在红色圆圈区域中看到标记的训练数据集已添加到数据流中。

步骤3:创建数据流-选择机器学习算法

接下来,我们将选择机器学习算法来预测流失。我们将使用“Naïve贝叶斯分类”模型。

步骤4:创建数据流—指定预测目标

在这一步中,我们需要指定预测的目标列。您可以在红色圆圈区域中看到,我们选择了名为“Attrition”的列作为预测的目标。

步骤5:创建数据流——给训练模型一个名称

当这个数据流被执行时,它将创建一个训练模型。在接下来的步骤中,我们给训练模型起了一个名字(即Naïve Bayes model for prediction Attrition)。

Oracle云指南:确保成功迁移到云的5个步骤
Oracle云指南:确保成功迁移到云的5个步骤

探讨主要考虑事项、将云与遗留应用程序集成以及当前云实现的挑战。

获取指南

步骤6:保存并执行数据流以创建、训练和测试模型

现在我们需要保存数据流,然后执行它来“训练模型”。模型是通过成功执行数据流创建的。

现在我们有了一个训练有素的ML模型来预测人力资源流失。接下来,我们将分析该模型的质量和关键指标。

分析和解释Naïve贝叶斯模型的质量和关键指标

当我们在OAC中训练一个模型时,我们需要定义有多少数据集将用于训练模型,以及有多少数据集将用于测试模型。在这种情况下,我们选择使用80%的数据集来训练模型,20%的数据集来测试模型。

下面是我们刚刚训练的Naïve贝叶斯模型测试结果的总结。这个图表被称为混淆矩阵,包含了可用于评估模型质量的关键指标,并了解当用于预测未标记数据集中的流失率时,它将如何表现。

以下是对这些重要关键指标的解释:

积极的标签:在这个模型中,正面的流失率标签是“是”。

模型的准确性:这将模型做出的正确预测的数量定义为测试数据集中所有行的百分比。该模型的总体精度为87%-计算公式为(238+17)/294。

精度:真正预测阳性实例占预测总阳性实例的百分比[17/17+9=65%].请注意,Precision的分母是模型预测的正面实例的总数。精确度并没有说有多少正面的例子应该是由模型预测(例如,在这种情况下,模型预测了总共26个正面实例,但实际有47个正面实例-因此模型没有解决大量真正的正面实例)。虽然精度是一个重要的度量标准,但具有最高精度的模型不一定是最好的模型。

回忆:真正阳性的预测实例占实际阳性实例总数的百分比[17/17+30=36%].召回率与精确度一起分析是很重要的,因为召回率解决了模型应该做出多少真正积极的预测。它会告诉你这个模型是正确地处理数据集的一小部分,还是有广泛的覆盖范围。就像Precision一样,具有高召回率的模型不一定是最好的模型。

F1值:这是谐波平均值(互惠算术平均值(2/((1/.65)+(1/.36) =.47)。F1值是测量精度和召回率之间的平衡。F1的测量值为1意味着完美的精度和召回率(这是非常罕见的)。

假阳性率:假阳性实例占实际阴性实例总数的百分比[9/247=4%].低假阳性率是精度高所必需的。

训练神经网络和支持向量机模型

我将重复用于训练Naïve贝叶斯模型的相同步骤来训练神经网络和SVM模型。为此,在上面的步骤3中,我将选择神经网络作为算法,而不是Naïve贝叶斯。

分析支持向量机和神经网络模型的质量和关键指标

在训练了神经网络和支持向量机模型之后,我们现在可以看看每个模型的混淆矩阵。

下面是神经网络模型的混淆矩阵。

让我们分析一下与Naïve贝叶斯模型相关的神经网络模型的质量和关键指标:

模型的准确性:80% -这比Naïve贝叶斯模型的87%略低。

精度:38%——这明显低于Naïve贝叶斯模型的65%。

回忆:36% -这与Naïve贝叶斯模型相同。不幸的是,尽管在这个模型中精度较低,但没有以更高召回%的形式来抵消好处。

假阳性率:11%——这比Naïve贝叶斯模型高,但召回率没有增加。

与Naïve Bayes模型相比,神经网络模型并没有提供任何显著的优势。精度远低于Naïve贝叶斯,召回率没有抵消性增加。此外,假阳性率也更高——同样没有增加召回率。

现在让我们看一下SVM模型的指标。下面是SVM模型的混淆矩阵。

让我们分析一下这个SVM模型相对于Naïve贝叶斯模型的质量和关键指标:

模型的准确性:76% -这小于Naïve贝叶斯的87%。

精度:37%——这明显低于Naïve贝叶斯模型的65%。

回忆:72%——这是Naïve贝叶斯模型和神经网络模型36%的两倍。这个支持向量机模型比Naïve贝叶斯模型和神经网络模型有更多真正积极的预测。它涵盖了比Naïve贝叶斯和神经网络模型更准确的预测数据集。

假阳性率:23%——这比Naïve贝叶斯模型和神经网络模型都高。因此,SVM模型更高召回率的代价(可以这么说)是更高的假阳性率。

比较所有三个模型

下面的图表比较了这三种模式。

为了决定哪种模型最适合预测人员流失率,我们必须定义什么是重要的。因为我们预测的是人员流失,所以我们不想错过任何员工有可能离开公司的情况。换句话说,我们希望最大限度地提高召回率。这就相当于说,我们想要一个模型,准确预测尽可能多的真正积极的情况。

另一个要分析的标准是假阳性和假阴性的影响。关于人员流失,假阴性意味着我们错误地认为一个人没有离开公司的风险。我们可能会失去阻止这样一个人离开的机会。如果出现假阳性,就意味着我们可能会采取一些措施来留住一个实际上从一开始就没有离开公司风险的人。

最终结论

虽然没有绝对正确的答案(取决于对每个公司来说什么是重要的),但如果我们认为假阴性的后果(有人离开公司)比假阳性的后果(关注一些可能不需要关注的人)更有害,并且我们愿意“忍受”假阳性,那么SVM模型可能是正确的模型。

留下回复

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

麦尔斯Gilsenan,Oracle业务分析总监

Myles在大型ERP、数据仓库和商业智能解决方案的设计和部署方面拥有超过25年的全球经验。他职业生涯的前10年在四大咨询公司领导国际ERP和BI部署。随后,他进入行业,在商业智能和全球金融技术领域担任高级管理职位。在过去的15年里,他一直在利用甲骨文BI技术将公司转变为数据驱动型组织。他是数据仓库和商业智能领域的思想领袖,专注于甲骨文云技术。他经常在oracle相关的会议上就BI和分析的主题发表演讲。迈尔斯曾在东京、伦敦和香港生活和工作,并在复杂环境中有良好的交付记录。

更多来自作者

订阅每周博客文摘:

报名
关注我们
推特 Linkedin 脸谱网 Youtube Instagram