掌桥专利:专业的专利平台
掌桥专利
首页

使用特征分析解释机器学习结果

文献发布时间:2023-06-19 11:29:13


使用特征分析解释机器学习结果

技术领域

本公开通常涉及解释机器学习模型,包括由机器学习模型提供的结果和机器学习模型的操作。特定实施方式涉及分析用作机器学习模型的输入的特征以识别特征之间的关系,包括在实施例中将特征分组到特征组中。

背景技术

机器学习越来越多地被用于做出或帮助做出各种决策,或以其他方式分析数据。机器学习技术可以用来更快或更准确地分析数据,这可以由人类来完成。在一些情况下,人工分析数据集是不切实际的。因此,机器学习通过为这些数据的实际应用提供了路径而促进了“大数据”的兴起。

然而,即使对于该领域的专家来说,机器学习也可能难以理解。当机器学习应用于特定领域的特定应用时,情况会更加复杂。也就是说,计算机科学家可能理解在机器学习技术中使用的算法,但是可能没有足够好地理解主题领域以确保模型被准确地训练或者正确地评估由机器学习提供的结果。相反,领域专家可能精通给定的主题领域,但可能不理解机器学习算法是如何工作的。

因此,如果用户不理解机器学习模型是如何工作的,他们可能对机器学习提供的结果没有信心。如果用户对机器学习的结果没有信心,他们可能根本不太可能使用机器学习,不太可能使用可以获得的前述的优势。因此,存在改进的余地。

发明内容

提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在指出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

描述了用于分析机器学习模型的结果的技术和解决方案。为包括第一多个特征的数据集获得结果。定义多个特征组。至少一个特征组包括第一多个特征中的第二多个特征。第二多个特征少于所有第一多个特征。可以基于确定第一多个特征中的特征之间的依赖关系(dependency)(包括使用上下文贡献值),来定义特征组。可以通过聚合特征组的组成特征的上下文贡献值来为特征组确定组上下文贡献值。

提供了一种形成特征组的方法。接收训练数据集。训练数据集包括第一多个特征的值。使用训练数据集来训练机器学习算法,以提供机器学习算法。使用经训练的机器学习算法来处理分析数据集以提供结果。形成多个特征组。该特征组中的至少一个特征组包括第一多个特征中的第二多个特征。第二多个特征是第一多个特征的适当子集。

根据另一个实施例,提供了一种使用数据集中的特征之间的依赖关系来形成特征组的方法。接收训练数据集。训练数据集包括第一多个特征的值。使用训练数据集来训练机器学习算法,以提供经训练的机器学习算法。使用经训练的机器学习算法来处理分析数据集以提供结果。为第一多个特征中的第二多个特征确定上下文贡献值。确定第二多个特征中的特征之间的依赖关系。至少部分地基于所确定的依赖关系来形成多个特征组。所述多个特征组中的至少一个特征组包括第一多个特征中的第三多个特征。第三多个特征是第一多个特征的适当子集。

根据另一方面,提供了一种用于确定特征组贡献值的方法。确定机器学习算法中使用的第一多个特征。形成多个特征组,诸如使用机器学习结果的分析、语义分析、统计分析、数据沿袭(data lineage)、或它们的组合。所述多个特征组中的至少一个特征组包括第一多个特征中的第二多个特征。第二多个特征是第一多个特征的适当子集。使用机器学习算法来确定分析数据集的结果。对于特征组的至少一部分,聚合各个特征组中的特征对该结果的贡献值以提供特征组贡献值。

本公开还包括被配置为执行上述方法或包括用于执行上述方法的指令的计算系统和有形的非暂时性计算机可读存储介质。如本文所述,各种其他特征和优点可以根据需要结合到该技术中。

附图说明

图1是示出用作机器学习模型的输入的值(用于训练模型或用于分类)如何与特征相关联的示意图。

图2是示出用作机器学习模型的输入(用于训练模型或用于分类)的值如何与特征相关联、以及不同的特征如何以不同的程度对结果做出贡献的示意图。

图3是示出多个星型模式(star schema)是如何相关的数据模型的图。

图4是示出该模式中数据库表的至少一部分之间的关系的数据库模式(databaseschema)的示意图。

图5示出了可以被包括在数据字典中或者以其他方式用于定义数据库表的表元素之间的关系的示意图。

图6是示出数据字典的组件和数据库层的组件的示意图。

图7呈现了通过访问和处理来自多个数据源的数据来提供查询结果的包括联接(join)来自多个表的结果的操作的示例数据访问操作。

图8是示出用作机器学习模型的输入的特征之间的依赖关系信息的矩阵。

图9是示出用作机器学习模型的输入的特征之间的关系的绘图(plot)。

图10是示意性示出如何将用作机器学习模型的输入的特征中的至少一部分分配给特征组的示意图。

图11是呈现特征组及它们对机器学习模型提供的结果的贡献的示例用户界面屏幕。

图12示意性地示出了如何处理数据集以训练和使用机器学习模型、以及如何分析和使用在这些过程中用作输入的特征并形成特征组的图。

图13A是用于形成特征组的示例方法的流程图。

图13B是用于至少部分地通过分析用作机器学习模型的输入的特征之间的依赖关系来形成特征组的示例方法的流程图。

图13C是用于形成特征组并计算它们对由机器学习模型提供的结果的贡献的示例方法的流程图。

图14是其中可以实施一些所描述的实施例的示例计算系统的示意图。

图15是可结合本文描述的技术使用的示例云计算环境。

具体实施方式

示例1–概述

机器学习越来越多地被用于做出或帮助做出各种决策,或以其他方式分析数据。机器学习技术可以用来更快或更准确地分析数据,这可以由人类来完成。在一些情况下,人工分析数据集是不切实际的。因此,机器学习通过为这些数据的实际应用提供了路径而促进了“大数据”的兴起。

然而,即使对于该领域的专家来说,机器学习也可能难以理解。当机器学习应用于特定领域的特定应用时,情况会更加复杂。也就是说,计算机科学家可能理解在机器学习技术中使用的算法,但是可能没有足够好地理解主题领域以确保模型被准确地训练或者正确地评估由机器学习提供的结果。相反,领域专家可能精通给定的主题领域,但可能不理解机器学习算法是如何工作的。

因此,如果用户不理解机器学习模型是如何工作的,他们可能对机器学习提供的结果没有信心。如果用户对机器学习的结果没有信心,他们可能根本不太可能使用机器学习,不太可能使用可以获得的前述的优势。

作为示例,机器学习模型通常可以使用几十个、几百个或几千个输入参数,这些参数也可以被称为特征或变量。用户可能很难理解给定变量如何影响或贡献由机器学习模型提供的结果,诸如预测。至少在一些情况下,可以量化特定变量对特定类型的结果(例如,通常由机器学习模型提供的结果)、或者特定输入特征集的特定结果的贡献。然而,一旦给定的机器学习模型使用了除了少数变量之外的变量,用户可能很难理解单独的变量对模型的贡献。如果用户不理解变量是如何做贡献的,他们可能不信任模型或结果。

此外,即使用户充分信任该模型及其结果,如果用户不理解是什么对该结果做出贡献,则可能不会向用户提供可采取动作(actionable)的信息,从而降低了机器学习模型的使用。以这样的机器学习模型为例,其中该模型为给定的条件集提供了成功的预测。对于特定的条件集,假设机器学习模型提供了75%的几率的实现成功结果的预测。为了做出最终决定,用户可能会发现理解哪些因素倾向于指示成功或哪些因素倾向于指示失败是有帮助的。这可能是因为,对于特定的环境,人类可能比机器学习模型多或少地加权一因素,或者人类可能能够采取措施来减轻不利的变量。对于未来的行为,用户可能希望了解可以采取以提高成功率的步骤。如果机器学习模型考虑到比如说1000个变量,个人可能很难理解单个变量或变量组合是如何对结果做出贡献的,以及变量的不同值可能如何影响未来的结果。因此,存在改进的余地。

本公开通过将机器学习模型的至少一些输入参数(可以被称为特征)分组到一个或多个特征组中来促进机器学习模型的设计和机器学习结果的分析。可以使用所公开的技术的机器学习技术的示例包括但不限于逻辑回归(logistic regression)、贝叶斯算法(Bayesian algorithm)(例如,朴素贝叶斯(Naive Bayes))、k近邻(k-nearestneighbors)、决策树(decision tree)、随机森林(random forest)、梯度增强框架(gradient boosting framework)、支持向量机(support vector machine)和各种类型的神经网络。

可以针对特定机器学习技术(例如,针对特定应用)中使用的至少一部分特征(诸如针对特征组中的特征)确定对机器学习结果的贡献。对于给定的特征组,特征组中的特征的单独贡献可以被求和,或者以其他方式组合,以提供特征组对机器学习结果的贡献或重要性(significance)值。特征组的重要性值可以是特征组中的特征的贡献(或重要性值)的总和或其他聚合。在特定示例中,特征组的重要性值被计算为特征组中的特征的重要性值的平均值。

作为示例,考虑使用特征A-Z作为输入的机器学习模型。假设特征组被定义为包括特征A-D。如果确定特征A对结果的贡献为4%,特征B对结果的贡献为5%,特征C对结果的贡献为2%,并且特征D对结果的贡献为3%,则该特征组的总体贡献为14%。如果特征A-Z被划分成四组,比较各组对机器学习结果的贡献要比比较没有组织的26个单独特征容易得多。

因此,所公开的技术可以提供更易于人类理解和操作的关于机器学习模型的更高级别的信息。如果用户希望获得关于给定特征如何对其特征组或总体结果/模型做出贡献的更多信息,用户可以深入到特征组查看其组成特征的贡献。具有通过特征组组织的属性,并且首先查看特征组对预测的总体贡献,可以然后帮助用户理解单独的特征如何对预测做出贡献,以及它们如何在将来被调整以改变预测。

在一些情况下,给定的特征被包括在单个特征组中。在其他情况下,给定的特征可以被包括在多个特征组中,尽管在这种情况下,机器学习模型的所有特征/特征组的贡献可能超过100%。在其中特征被包括在多个组中的一些场景下,该特征一次只对单个组“有效(active)”。例如,如果特征分配给组A和组B,如果该特征在组A中是有效的,则在组B中是无效的。或者,在特定场景期间,组A或组B可以被设置为有效或无效。在另一种场景下,当特征被包括在多个特征组中时,可以使用不同的技术——诸如手动形成组、使用互信息(mutualinformation)、使用模式信息(schema information)等来确定多个组。而在一些情况下,特定分析中使用的组都是相同类型的(例如,使用互信息确定),在其他情况下,在特定分析中使用的组可以包括具有不同类型的组(例如,分析可以具有手动定义的组、使用模式信息确定的组和使用互信息确定的组)。或者,可以使用多种考虑因素来定义单个组——诸如使用模式信息和互信息的组合来定义组。

类似地,在一些情况下,机器学习模型的所有特征被包括在至少一个特征组中,而在其他情况下,一个或多个特征不需要被包括在特征组中。

可以以多种方式定义特征组。在一些情况下,可以基于一个或多个数据源的结构(有时称为数据沿袭(data lineage))来定义特征组。例如,机器学习模型的输入中的至少一些可以与存储在星型模式(star schema)中的数据相关联。特定表(诸如特定维度表)的数据至少可以假定(putatively)分配给特征组。类似地,具有属性之间的关系的表(诸如外键(foreign key)关系或关联)可以指示这些表或至少相关的属性应该被包括在特征组中,或者被考虑包括在特征组中。

数据访问模式也可以用于建议(suggest)特征组。例如,用于机器学习模型的数据可以通过联接关系数据库中的两个或更多个表来获得。包括在联接或其他数据访问操作中的表可以作为单独的特征组来被包括。

用户可以手动将特征分配给特征组,包括更改建议的特征组中的特征、将特征组分成子组、或者将两个或更多个组组合成一个更大的特征组。例如,特征组最初可以通过数据关系(例如,在公共表或相关表中)或数据访问考虑(例如,联接)来选择。然后,用户可以确定应该向这些组中添加特征或从这些组中移除特征,确定应该组合两个组,将单个组划分成两个或更多个组等。

在其他情况下,可以通过评估特征之间的关系来确定或修改特征组。例如,如果第一特征被确定为与第二特征相关,则第一特征和第二特征可以被指示为属于公共特征组。由其他方法(诸如基于数据关系或手动选择)建议的特征组可以基于评估特征之间的关系进行修改。在基于维度表的特征组的情况下,可以确定维度表的一个或多个属性不显著相关。这样的属性可以从该组中移除。类似地,可以确定另一个维度表的特征显著相关,并且可以将这样的维度添加到特征组。

可以根据其他标准修改或过滤特征组。特别地,如果特征的预测能力(predictivepower)低于阈值,则该特征可以从该特征组省略,否则它们可能属于该特征组。或者,在针对特征组中的成员资格(membership)对特征进行分析之前,可以以这种方式过滤特征,包括向用户呈现对满足可能包括在特征组中的阈值的特征的选择。

除了可以用于帮助分析机器学习模型提供的结果之外,特征组还可以用于开发或训练机器学习模型。例如,可以通过选择或强调(例如,加权)感兴趣的特征组来针对特定使用调整机器学习模型。类似地,通过消除对具有低预测能力/不属于相关特征组的特征的考虑,可以使机器学习模型更准确或更有效。

在一些实施方式中,针对因果循环(causality cycle)来分析特征组。也就是说,考虑特征组A和特征组B,允许组A的特征影响(或引起)组B的特征。然而,可以不同样允许组B的特征影响组A的特征。如果观测到因果循环,可以重新配置特征组以移除这种循环。然而,在其他情况下,可以不考虑因果循环来定义特征组。

在一些情况下,在确定使用什么特征/特征组来训练或重新训练机器学习模型时,包括或排除具有因果依赖关系的组可能是有用的。例如,通过从分析(或机器学习模型的训练)中排除对被选择的特征组中的特征具有因果依赖关系的特征组,来隔离特定特征的影响可能是有用的。

如上所述,虽然本公开的一些方面基于对机器学习结果的分析来定义特征组,但是其他方面可以用于在不使用这样的分析(诸如基于语义分析、数据沿袭或非机器学习统计方法来定义特征组)的情况下定义特征组。在又一方面,一种或多种基于机器学习的特征组定义方法可以与一种或多种基于非机器学习的特征组定义方法结合使用。

示例2–使用特征进行训练和使用机器学习模型的示例

图1示意性地描绘了如何将多个特征110用作机器学习模型120的输入来提供结果130。典型地,用作提供结果130的输入的特征110的类型是用于训练机器学习算法以提供机器学习模型120的那些特征。训练和分类可以使用特征110的离散输入实例,其中每个输入实例具有至少一部分特征的值。典型地,特征110及它们各自的值是以以特定方式使用特定特征的方式来提供的。例如,每个特征110可以被映射到在机器学习模型中使用的变量。

结果130可以是定性(qualitative)或定量(quantitative)值,诸如指示某个条件成立的可能性的数值或指示结果的相对强度的数值(例如,高数字指示更强/更有价值的结果)。对于定性结果,结果130可以是例如基于特定输入实例的输入特征110应用的标签。

注意,对于这些结果中的任何一个,通常结果130本身不提供关于如何确定结果的信息。具体地,结果130不指示任何给定特征110或特征集合对结果贡献多大。然而,在许多情况下,一个或多个特征110将对结果做出积极贡献,并且一个或多个特征可以反驳(argue)结果130,并且相反可以对机器学习模型120没有选择的另一个结果做出贡献。

因此,对于许多机器学习应用,用户可能不知道给定结果130如何与机器学习模型的特定使用的输入特征相关。如示例1中所述,如果用户不确定什么特征110对结果130有贡献,或者不确定他们如何进行贡献或在多大程度上进行贡献,他们可能对结果不太有信心。此外,用户可能不知道如何改变任何给定的特征110来尝试并获得不同的结果130。

至少在一些情况下,可以确定(对于作为机器学习模型120在多个输入实例上的平均值或其他统计度量的单独的分类结果)特征110如何对机器学习模型的结果做出贡献。特别地,Lundberg等人的“Consistent Individualized Feature Attribution for TreeEnsembles”(可以在https://arxiv.org/abs/1802.03888获得,并通过引用并入本文)描述了如何为机器学习模型中使用的属性计算SHAP(Shapley additive explanation,沙普利加法解释)值,从而允许确定特征110的相对贡献。然而,可以使用其他上下文可解释性度量(也可以称为上下文贡献值),诸如使用LIME(local interpretable model-agnosticexplanation,局部可解释的模型-不可知解释)技术(其在Ribeiro等人的“‘Why Should ITrust You?’Explaining the Predictions of Any Classifier”(可以在https://arxiv.org/pdf/1602.04938.pdf获得,并通过引用并入本文)中描述)计算的那些。通常,上下文贡献值是在生成结果时使用的其他特征的上下文中考虑特征对机器学习结果的贡献的值,而不是例如简单地孤立考虑单个特征对结果的影响。

上下文SHAP值可以按照Lundberg等人所描述的那样使用如Lundberg等人所定义和使用的如下公式进行计算:

单变量(single-variable)(或总体)SHAP贡献(该特征对结果的影响,不考虑上下文中的特征与模型中使用的其他特征的关系),φ

其中:

并且

上述值可通过使用以下公式转换为概率标度(probability scale):

其中s是sigmoid函数:

图2大体上类似于图1,但是示出了如何为特征110计算贡献值140(诸如使用SHAP方法计算的那些)。如示例1中所解释的,大量特征110与许多机器学习模型一起使用。特别地,如果特征110中的每个(或大多数或许多)特征的贡献值140相对小,用户可能难以理解任何特征如何对机器学习模型提供的结果(包括特征110的值的特定集的特定结果130)做出贡献。

类似地,用户可能难以理解特征110的不同组合如何一起影响机器学习模型120的结果。

示例3–数据模型及其组件之间的示例关系

如示例1中所解释的,所公开的技术涉及对机器学习模型使用的至少一些特征(例如,与图1和图2中的机器学习模型120一起使用的特征110)进行分组。分组可以基于或至少部分基于特征之间的关系。例如,特征110中的至少一些可以与数据模型(诸如在关系数据库系统或其他数据储存器中使用的数据库)相关联。在特定示例中,用于OLAP分析的数据可以结合OLAP立方体(cube)定义来存储,其中立方体定义可以相对于存储在多个表(诸如星型模式中的表)中的数据来定义。立方体定义和星型模式都可以用作可以从其中提取特征之间的关系的数据模型,并且用于形成所公开的技术的特征组。

图3示意性地描绘了包括两个星型模式310、320的数据模型300。星型模式310包括中心事实表314和三维表318。星型模式320包括中心事实(central fact)表324和四个维度表328。

为了从多个星型模式中获取数据,使用两个事实表通用的维度表来桥接两个模式。在一些情况下,如果一个维度表是另一个维度表的子集(例如,一个表包括另一个表的所有属性加上一个或多个附加属性),这种桥接可以发生。在其他情况下,只要两个星型模式之间至少有一个属性是共享的或一致的,桥接可以发生。

例如,在图3,维度表318a与维度表328a相同(除了记录ID或标识不传达实质性信息的元组的其他方式)。或者,不是具有重复的表,而是维度表318a和维度表328a可以是相同的表,但是被表示为多个星型模式的成员。维度表318a、328a中的每个属性可以用作事实表314中的事实和事实表324中的事实之间的路径。然而,这些路径中的每一个是不同的,因为不同的属性被链接在一起。哪些属性用于链接维度表318a和328a可能很重要。例如,实施路径的操作(例如,由SQL语句指定)可以不同。此外,该路径中的一些可以使用被索引的属性,而另一些则不使用,这会影响特定路径的执行速度。

在图3的示例场景中,从事实表314和事实表324获得事实的另一种方式是通过使用维度表318b的属性340和维度表328b的属性344。

数据模型300中的各种信息可以用于确定哪些特征(星型模式310、320中的表的属性)可以被放置到特征组中。在一些情况下,完全属于数据模型300可以建议数据模型300中的属性应该被放置到公共特征组中,或者可以是在确定是否将这种属性放置到公共特征组或多个特征组之一中时考虑的因素。例如,如果在训练或使用机器学习模型中使用的属性来自多个数据源,则使来自数据模型300的属性处于公共特征组中可能是有意义的。或者,当将来自多个数据源的属性分配给特征组时,作为数据模型300的一部分可以是权衡支持或反对将给定特征包括在给定特征组中的因素。

数据模型300的子元素中的成员资格(例如,属性/特征是否是星型模式310或320的一部分,或者是否在星型模式的单独的表314、318、324、328中)可以以类似的方式处理。因此,可以为星型模式310或320中的一个或多个,或者为表314、318、324、328中的一个或多个建议特征组。或者,成员资格是这种星型模式310、320或表314、318、324、328,这可能是确定数据模型300的给定属性/特征是否应该被包括在给定特征组中的因素,即使特征组不对应于数据模型或数据模型的单元(或元素,诸如表,视图,属性,OLAP立方体定义)。

数据模型300中的单独的属性之间的关系也可以用于确定要形成的特征组,或评估特征在特征组中的成员资格。例如,星型模式320的表350的属性可以被考虑包括在星型模式的特征组中,或者包括在其中星型模式320中的成员资格是积极因素的另一个特征组中。星型模式320的表328a和表324可以以与表350类似的方式进行评估。然而,如果表328a和表324通过关系354(例如,可以是具有一个或多个公共的属性,包括外键关系或关联)相关,则可以考虑它们在另一个特征组中的成员资格。

当两个或更多个表相关时,可以基于相关的表、相关的属性、或它们的组合来建议特征组或特征组成员资格。例如,关系354可以用于建议表324、328的所有属性应该是特征组的一部分,或者用于评估可能的特征组成员资格。或者,仅由关系354直接链接的属性356可以以这种方式被评估。或者,属性356之一及其相关联的表324、328可以以这种方式评估,但是仅另一个表的被链接的属性被考虑包括在给定的特征组中。

示例4–数据模型中的表之间的示例关系

图4提供了关于不同表的属性如何相关,以及如何使用这些关系来定义特征组或评估特征组中的潜在成员资格的附加细节。图4示出了表示汽车(car)的表404,表示执照持有者(license holder)的表408(例如,具有驾照的驾驶员)、提供事故历史(accidenthistory)的表412和表示执照号码(license number)的表416(例如,与牌照相关联)。

表404、408、412、416中的每一个具有多个属性420(尽管在一些情况下,一个表可以仅具有一个属性)。对于特定的表404、408、412、416,属性420中的一个或多个可以用作主键(primary key)——唯一地标识元组中的特定记录并被指定为访问表中元组的主要方法。例如,在表404中,Car_Serial_No属性420a用作主键。在表416中,属性420b和420c的组合一起用作主键。

表可以通过使用外键来引用与另一个表的主键相关联的记录。例如,执照号码表416具有表416中的汽车序列号的属性420d,该属性是外键并且与表404的相应属性420a相关联。外键的使用有多种用途。外键可以链接不同表中的特定元组。例如,属性420d的外键值8888将与表404中具有属性420a的值的特定元组相关联。外键也可以作为约束,其中不能创建具有(或更改为具有)在被引用的表中不作为主键值存在的外键值的记录。外键也可以用于维护数据库一致性,其中对主键值的改变可以传播到属性是外键的表中。

表可以具有其他属性,或者属性的组合,这些属性可以用来唯一地标识元组,但是它们不是主键。例如,表416具有由属性420c和属性420d形成的替换键(alternate key)。因此,可以使用主键(例如,作为另一个表中的外键)或通过与替换键的关联(association)来访问表416中的唯一的元组。

在图4的场景中,可以看出表之间存在多个路径。例如,考虑从表416和表408收集数据的操作。一个路径是使用外键420e从表416移动到表412。然后,可以通过表412的属性420l与表408的主键420m的外键关系到达表408。可替换地,因为表416具有用作表404的主键420a的外键的属性420d,并且属性420也是与表408的属性420g的替换键的关联,可以通过表404从表416到达表408。

在以上场景中,两个路径都具有相同的长度,但是链接到表412的不同属性。图4中的场景相对简单,所以可以看出,随着数据模型中表的数量增加,可能路径的数量可能大大增加。此外,即使在两个表之间,也可能存在多个不同的路径。例如,表408可以通过表408的外键属性420h、420i访问表416的元组,访问表416的主键属性420b、420c,或者使用表416的引用属性420k的属性420j提供的到表416的替换键的关联。尽管从表408到表416的最终路径不同,但路径不同之处在于连接了不同的属性420。

如果表404、408、412、416以图形表示,则每个表可以是节点。表404、408、412、416之间的路径可以是单向或双向的边。然而,表之间的不同路径形成不同的边。再次使用表408和表416之间的路径作为示例,通过外键属性420h、420i的路径与通过关联属性420j的路径是不同的边。

以与示例4中所述的类似方式,表404、408、412、416可以用于建议和填充特征组。类似地,外键、关联或表之间的其他关系(例如,使用定义视图、触发器、使用公共SQL语句,包括其单独的属性)可以用于建议或填充特征组。除了使用表之间存在的关系来建议或填充特征组之外,还可以考虑表之间的关系的数量、类型或方向,诸如在确定特征组的成员资格时更加重视外键关系。

示例5–数据库模式的元素之间的示例关系

在一些情况下,数据模型信息可以存储在数据字典或类似的存储库中,诸如信息模式(information schema)。信息模式可以存储定义总体数据模型或模式、模式中的表、表中的属性以及表及其属性之间的关系的信息。然而,数据模型信息可以包括如图5所示的附加类型的信息。

图5是示出数据库模式500的元素以及它们如何相互关联的示意图。这些相互关系可以用于定义特征组,或评估特征组中的成员资格。至少在一些情况下,数据库模式500可以被维护在数据库系统的数据库层之外。也就是说,例如,数据库模式500可以独立于包括用于底层数据库的模式的底层数据库。典型地,数据库模式500被映射到数据库层的模式(例如,图4的模式400),使得记录或其部分(例如,特定字段的特定值)可以通过数据库模式500来检索。

数据库模式500可以包括一个或多个包510。包510可以表示用于对模式500的其他元素进行归类或分类的组织部件。例如,包500可以复制或部署到各种数据库系统中。包510还可以用于实施安全限制,诸如通过限制特定用户或特定应用对特定模式元素的访问。包510可以用于定义特征组。或者,如果属性是给定包510的成员,这可能或多或少地使得它们应该被包括在另一个特征组中。

包510可以与一个或多个域(即,特定类型的语义标识符或语义信息)514相关联。反过来,域514可以与一个或多个包510相关联。例如,域1(514a)仅与包510a相关联,而域2(514b)与包510a和包510b相关联。至少在一些情况下,域514可以指定哪些包510可以使用该域。例如,与制造过程中使用的材料相关联的域514可以由过程控制应用使用,但是不能由人力资源应用使用。

至少在一些实施方式中,尽管多个包510可以访问域514(以及并入该域的数据库对象),但是域(以及可选地以下将更详细地描述的其他数据库对象,诸如表518、数据元素522和字段526)主要分配给一个包。将域514和其他数据库对象分配给唯一的包可以帮助创建数据库对象之间的逻辑(或语义)关系。在图5中,分配域514到包510被示为实线,而访问许可被示为虚线。因此,域514a分配给包510a,并且域514b分配给包510b。包510a可以访问域514b,但是包510b不能访问域514a。

注意,至少某些数据库对象(诸如表518),可以包括与多个包相关联的数据库对象。例如,表518(表1)可以分配给包A,并且具有分配给包A、包B和包C的字段。表1中分配给包A、包B和包C的字段的使用创建了包A和包B和包C之间的语义关系,其中如果字段与特定域514相关联,则可以进一步解释该语义关系(即,域可以为与另一个包的对象相关联的数据库对象提供进一步的语义上下文,而不是分配给公共包)。

如将更详细解释的,域514可以表示最精细(granular)的单元,从该单元可以构建数据库表518或其他模式元素或对象。例如,域514可以至少与数据类型相关联。每个域514与唯一的名称或标识符相关联,并且典型地与提供域的语义含义的描述相关联,诸如人类可读文本描述(或者可以与人类可读文本描述相关联的标识符)。例如,一个域514可以是表示电话号码的整数值,而另一个域可以是表示零件编号的整数值,而另一个整数域可以表示社会安全号码。因此,域514可以跨模式500保持提供公共和一致的使用(例如,语义含义)。也就是说,例如,每当使用表示社会安全号码的域时,对应的字段可以被识别为具有该含义,即使该字段或数据元素对于不同的表具有不同的标识符或其他特征。

由于域514可以用于帮助提供公共且一致的语义含义,因此它们可以用于定义特征组。或者,域514可以用于决定与域相关联的属性是否应该是给定特征组的一部分,其中特征组不是完全基于域来定义的。

模式500可以包括一个或多个数据元素522。每个数据元素522典型地与单个域514相关联。然而,多个数据元素522可以与特定域514相关联。尽管未示出,表518的多个元素可以与相同的数据元素522相关联,或者可以与具有相同域514的不同数据元素相关联。数据元素522尤其可以用于允许为特定表518定制域514。因此,数据元素522可以为表518的元素提供附加的语义信息。

表518包括一个或多个字段526,这些字段的至少一部分映射到数据元素522。字段526可以映射到数据库层的模式,或表518可以以另一种形式映射到数据库层。在任何情况下,在一些实施例中,字段526以某种方式映射到数据库层。或者,数据库模式可以包括等同于包括域514的模式500的元素的语义信息。

在一些实施例中,字段526中的一个或多个没有映射到域514。例如,字段526可以与原始(primitive)数据组件相关联(例如,原始数据类型,诸如整数、字符串、布尔值、字符数组等,其中原始数据组件不包括语义信息。或者,数据库系统可以包括一个或多个不包括与域514相关联的任何字段526的表518。然而,所公开的技术包括模式500(其可以与数据库模式分离或者并入到数据库模式中),该模式500包括多个表518,这些表518具有直接或者通过数据元素522与域514相关联的至少一个字段526。

因为数据元素522可以指示公共的或相关的属性,所以它们可以用于定义特征组,或者用于评估特征组中的成员资格,诸如针对域514和包510所描述的。

示例6–示例数据字典

模式信息(诸如与图5的模式500相关联的信息)可以存储在存储库(诸如数据字典)中。如前所述,至少在一些情况下,数据字典独立于但映射到底层关系数据库。这种独立性可以允许相同的数据库模式500被映射到不同的底层数据库(例如,使用来自不同供应商的软件、或来自同一供应商的不同软件版本或产品的数据库)。数据字典可以被持久化(诸如维护在存储的表中),并且可以全部或部分地维护在存储器中。数据字典的存储器内(in-memory)版本可以称为字典缓冲区。

图6示出了具有数据字典604的数据库环境600,该数据字典604可以(诸如通过映射来)访问数据库层608。数据库层608可以包括模式612(例如,如在PostgreSQL中的INFORMATION_SCHEMA)和数据616,诸如与表618相关联的数据。模式612包括可以与字段620相关联的各种技术数据项/组件622,诸如字段名称622a(其可以或可以不对应于对字段的目的的人类容易理解的描述,或者以其他方式明确描述该字段的值的语义)、字段数据类型622b(例如,整数、可变字符、字符串、布尔值)、长度622c(例如,字段中的值允许的数字的大小、字符串的长度等)、小数位(decimal place)数622d(可选地,对于合适的数据类型,诸如长度为6的浮点数,指定值是否表示XX.XXXX或者XXX.XXX)、位置622e(例如,表中应该显示字段的位置,诸如第一显示字段、第二显示字段等),可选地,默认值622f(例如,“空(NULL)”、“0”或一些其他值)、指示该字段是否允许空值的空标志622g、指示该字段是否是该表的主键或被用于该表的主键的主键标志622h、以及可以指示该字段620是否与另一个表的主键相关联的外键元素622i,以及可选地,由外键元素引用的表/字段的标识符。特定模式612可以包括比图6所示更多、更少或不同的技术数据项622。

技术数据项622的全部或一部分可以用于定义特征组或评估特征在特征组中的成员资格。特别地,外键元素622i可以用于识别可能与给定字段相关的其他表(及其特定属性),其中该其他表或字段可以被考虑用于特征组中的成员资格。

表618与一个或多个值626相关联。值626典型地与使用技术数据元素622中的一个或多个定义的字段620相关联。也就是说,每行628典型地表示唯一的元组或记录,并且每列630典型地与特定字段620的定义相关联。表618典型地被定义为字段620的集合,并且被给予唯一的标识符。

数据字典604包括一个或多个包634、一个或多个域638、一个或多个数据元素642和一个或多个表646,它们至少大体上可以分别对应于图5的类似被加标题的组件510、514、522、518。如在图5的讨论中所解释的,包634包括域638中的一个或多个(典型地,多个)。每个域638由多个域元素640定义。域元素640可以包括一个或多个名称640a。名称640a用于在一些情况下唯一地标识特定域638。域638包括至少一个唯一名称640a,并且可以包括可能是或可能不是唯一的一个或多个名称。名称(可以是唯一的,也可以不是唯一的)可以包括不同长度或详细程度的域名638的名称或描述的版本。例如,名称640a可以包括可以用作域638的标签的文本,并且可以包括短版本、中等版本和长版本、以及可以被指定为标题(heading)的文本。或者,名称640a可以包括主要名称或标识符以及为域638提供人类可理解语义的简短描述或字段标签。

至少在一些情况下,数据字典604可以以多种语言存储名称640a的至少一部分,诸如具有可以用于多种语言的域标签。在所公开的技术的实施例中,当域信息用于识别表或其他数据库元素或对象之间的关系,包括搜索特定值时,可以搜索多种语言的信息,诸如名称640a。例如,如果指定了“客户(customer)”,则可以搜索名称640a的德语和法语部分以及英语版本。

域元素640还可以包括至少类似于可以被包括在模式612中的信息的信息。例如,域元素640可以包括数据类型640b、长度640c和与相关数据类型相关联的小数位数640d,它们可以分别对应于技术数据元素622b、622c、622d。域元素640可以包括转换信息640e。转换信息640e可以用于转换(或相互转换)为域638输入的值(可选地,包括由数据元素642修改的值)。例如,转换信息640可以指定具有形式XXXXXXXXX的数字应该被转换成XXX-XX-XXXX,或者数字应该具有分隔各组数字的小数或逗号(例如,将1234567格式化为1,234,567.00)。在一些情况下,多个域638的字段转换信息可以存储在储存库中,诸如字段目录。

域元素640可以包括一个或多个值限制640f。值限制640f可以指定例如允许或不允许负值,或者域638可接受的值的特定范围或阈值。在一些情况下,当试图将不符合值限制640的值用于域638时,可以提供错误消息或类似指示。域元素640g可以指定被允许使用域638的一个或多个包634。

域元素640h可以指定记录与域元素638相关联的创建或修改事件的元数据。例如,域元素640h可以记录最近修改域元素640h的用户或应用的身份、以及修改发生的时间。在一些情况下,域元素640h存储域638的创建和修改的更大的历史(包括完整的历史)。

域元素640i可以指定与包括名称640a的域638相关联的原始语言。例如,当要确定名称640a是否应该被转换成另一种语言,或者应该如何完成这种转换时,域元素640i可以是有用的。

数据元素642可以包括数据元素字段644,其中数据元素字段644中的至少一些可以至少大体上类似于域元素640。例如,数据元素字段644a可以对应于名称域元素640a的至少一部分,诸如是(或包括)特定数据元素642的唯一标识符。针对名称域元素640a描述的字段标签信息被示为分成短描述标签644b、中等描述标签644c、长描述标签644d和头(header)描述644e。如针对名称域元素640a所述,标签和头644b-644e可以用一种语言或多种语言来维护。

数据元素字段644f可以指定与数据元素642一起使用的域638,从而将域元素640的特征并入到数据元素中。数据元素字段644g可以表示数据元素642的默认值,并且可以至少类似于模式612的默认值622f。被创建/修改的数据元素字段644h可以至少大体上类似于域元素640h。

表646可以包括一个或多个表元素648。表元素648的至少一部分可以至少类似于域元素640,诸如表元素648a至少大体上类似于域元素640a或数据元素字段644a。描述表元素648b可以类似于结合域元素640a描述的描述和头标签、或者标签和头数据元素字段644b-644e。表646可以使用表元素648c与类型相关联。示例表类型包括透明表、聚类表和池化表,如在德国沃尔多夫的SAP SE

表646可以包括一个或多个字段表元素648d。字段表元素648d可以定义特定数据库表的特定字段。每个字段表元素648d可以包括用于该字段的特定数据元素642的标识符650a。标识符650b-650d可以指定该字段是否是该表的主键或主键的一部分(标识符650b),或者是否与另一个数据库表的一个或多个字段具有关系,诸如是外键(标识符650c)或者关联(标识符650d)。

被创建/修改的表元素648e可以至少大体上类似于域元素640h。

包634、域638和数据元素642及它们的特定组件(例如,组件640、644)可以用于定义特征组或评估特征组中的成员资格的属性,诸如示例5中所描述的。类似地,表646及其元素(特别地,类型648c、主键650b、外键650c和关联650d)可以用于定义特征组或评估特征组中的成员资格的属性。例如,对于原始语言域元素640i具有公共值的特征可以被建议形成特征组,或者或多或少可能被包括在另一个特征组中。

示例7–基于数据访问操作的数据库对象之间的示例关系

数据请求也可以用于识别特征组,或评估特征在特征组中的成员资格。作为示例,数据请求(诸如在查询语言语句中指定的)可以用于识别特征组及其组成特征。

图7示出了涉及多个查询操作(包括几个联接操作)的查询的示例逻辑查询计划700。在一些情况下,总体查询计划700可以识别可能的特征组,或者用于评估特征组中的成员资格。例如,除了与查询计划700相关联的数据之外,机器学习模型的特征还可以来自一个或多个源。因此,在一些情况下,来自查询计划700的特征(包括在它们对预测机器学习模型的结果的贡献/能力方面)可以是相关的。

可以通过查询计划700中的一个或多个操作来建议附加的特征组或成员资格评估标准。例如,联接操作可以指示可能的特征组或成员资格评估标准,其中与该联接相关联的数据源的至少一些特征被包括在或被考虑包括在这种特征组中。

查询计划700包括联接连接714、716的结果的联接710。联接714本身联接来自表720和表728、730的联接724的结果。类似地,联接716包括表734和表742、744的联接738的结果。

在查询计划700的每个级别处,联接操作可以建议特征组,或者可以用于评估特征组中的成员资格的标准。例如,可以参考联接714来定义特征组或成员资格标准,然后该特征组或成员资格标准可以包括与表720、728、730相关联的特征。类似地,可以参考联接716来定义特征组或成员资格标准,该特征组或成员资格标准包括与表734、742、744相关联的特征。

在查询计划700中下移,可以基于联接724(表728、730)或联接738(表742、744)来定义特征组或成员资格标准。单独的数据源、表720、728、730、734、742、744也可以被认为是可能的特征组或成员标准。

每个联接710、714、716、724、738包括一个或多个联接条件。联接条件可以是一个表的特征或中间结果(例如,另一个联接的结果)与另一个表的特征或中间结果之间的关系。联接还可以包括过滤条件(例如,谓词(predicate))和针对被联接的数据源中的一个或多个的特征而定义的其他操作。包括在联接条件中的一个或多个特征可以被视为定义特征组或至少部分用于评估特征组中的成员资格。

类似地,查询计划700可以包括除了联接710、714、716、724、738之外的操作。这些操作可以包括谓词750(例如,过滤条件)、排序(sort)操作752(例如,升序排序)和投影(projection)操作754(例如,选择由更早的操作返回的结果的特定字段)。包括操作中使用的特定特征(例如,使用谓词评估或用于排序的字段)的这些操作750、752、754可以用于定义特征组或作为成员资格标准。作为示例,表720、728、730、734、742、744都可以具有投影754中使用的特征(例如,属性/字段/列),该特征/投影可以被定义为特征组,或者用于评估特征组中的成员资格。

示例8–特征之间的示例关系

在一些实施例中,可以通过评估特征之间的关系来确定特征组。这些关系可以通过各种技术(包括使用各种统计技术)来确定。一种技术涉及确定特征对的互信息(mutualinformation),这种互信息识别特征彼此的依赖关系。然而,可以使用其他类型的关系信息来识别相关特征,各种聚类技术也可以。

图8示出了十个特征的互信息的绘图800(例如,矩阵)。每个方块810表示不同特征的对的互信息或相关性或依赖关系。例如,正方形810a反映了特征3和特征4之间的依赖关系。正方形810可以与指示变量之间的任何依赖关系的离散数值相关联,或者这些值(包括提供依赖关系的热图(heat map))可以被分仓(binned)。

如图所示,绘图800示出了具有不同填充图案的正方形810,其中填充图案指示特征对之间的依赖强度。例如,更大的依赖关系可以通过更暗的填充值来表示。因此,正方形810a可以指示强相关性或依赖关系,正方形810b可以指示特征之间很少或没有依赖关系,并且正方形810c、810d、810e可以指示中等水平的依赖关系。

依赖关系信息可以用于定义特征组,并用于确定特征组中的成员资格。例如,对其他特征具有至少在给定阈值内的依赖关系的特征可以被认为是公共特征组的一部分。参考绘图800,可以看出特征10具有对特征1、3、4、6、7的不同程度的依赖关系。因此,特征1、3、4、6、7和10可以被定义为特征组。或者,如果阈值被设定为使得特征4不满足相互关系阈值,则可以排除特征4。在其他实施例中,具有对特征3、4、5、6、7的至少阈值依赖关系的特征可以被添加到与特征10相关联的特征组。

可以定义各种标准以用于建议特征组,包括特征组的最小或最大数量、或者特征组内特征的最小或最大数量。类似地,可以为被认为可能包括在特征组中的特征设置阈值(例如,其中可以从绘图800中省略不满足任何其他特征的阈值的特征)。还可以为符合特征组的成员资格的特征依赖关系设置阈值(也就是说,如果特征1对特征2的依赖关系满足阈值,则特征1或特征2可以被包括在不必基于对特征1或特征2的依赖关系来定义的特征组中)。

在一些情况下,可以在识别之前或之后手动调整使用相关性/相互依赖关系识别到的特征组。例如,在确定特征组之前,用户可以指定在确定特征组时必须考虑某些特征,或者从确定特征组中排除某些特征。或者,可以定义包括一个或多个特征的特征组,并且可以使用互信息来填充该组。可以向用户呈现信息(诸如绘图800),以便评估任何手动选择是否正确。例如,依赖性值可能指示用户对特征组的手动分配不正确。用户可以在被呈现绘图800或以其他方式具有可用的互信息(诸如将用户认为应该在特征组中的特征添加到特征组,即使依赖关系信息没有指示该特征应该在特征组中)之后,手动调整用于确定特征组的特征组/特征。

可以使用各种确定相关性的方法,诸如互信息。通常,互信息可以定义为

当用于相对于指定的(目标)第二特征评估第一特征时,可以使用监督相关:scorr(X,Y)=corr(ψ

在一些示例中,可以使用修改后的X

其中:

O

注意,该测试产生带符号的值,其中正值指示观测计数高于期望,负值指示观测计数低于期望。

同样,依赖的特征可以被认为包括在特征组中,或用于定义特征组。特征之间的依赖关系也可以用于以其他方式解释为机器学习模型提供的结果,或者用于单独的特征,或者作为将至少一些特征分组到特征组的分析的一部分。

在又一实施方式中,特征之间的相互关系(其可以与特征的SHAP值中的可变性相关)可以计算为:

其中φ

示例9-用于示出特征之间的关系的示例显示

可以以不同的格式向用户呈现诸如使用示例8中描述的技术确定的互信息或者其他类型的依赖关系或相关信息(或者在没有以视觉形式向用户呈现的情况下使用,诸如简单地提供由分析产生的特征组)。例如,图9示出了示出特征914之间的关系910的绘图900,特征914可以是关系强度满足阈值的特征。

关系910可以用指示关系的相对强度的信息来编码。如图所示,关系910被示为具有不同的线粗细(line weight)和样式,其中样式/粗细的各种组合可以与不同的强度相关联(例如,强度的范围或仓(bin))。例如,对于给定的线粗细,更密的虚线(highly dashedlines)可以指示更弱的关系,而越来越粗的线粗细可以指示更强的关系/依赖关系。在其他情况下,关系910可以以不同的颜色显示,以指示关系的强度。

利用绘图900(和/或绘图800)中的信息,用户可以调整特征组,诸如通过添加或移除特征组。也就是说,绘图900可以表示对机器学习模型中使用的特征或这些特征的子集的总体分析。可能所有特征914都应该被包括在特征组中。或者,用户可能希望例如改变阈值,使得具有较弱关系910的特征914从绘图900的更新版本中省略。或者,用户可能希望向绘图900中未示出(或者,未示出为由关系910链接)的特征组手动添加特征,或者可能希望从特征组手动移除特征。

特别地,对于用户来说,评估互信息结果以确认给定不同特征的含义的结果有意义可能是有帮助的。这有助于确保期望的关系不会被忽略,并且由虚假(spurious)关系进行相关的特征不会包括在特征组中。

示例10–向特征组分配特征的示例

图10是示出特征1010的至少一部分(例如,图1和2的特征110)可以如何(包括基于示例1-9中描述的一种或多种技术)分配给特征组1014的示意图。可以看出,特征组1014可以包括不同数量的特征。虽然未示出,但是特征组1014可能包括单个特征。

典型地,每个特征1010被包括在单个特征组1014中。然而,在一些情况下,给定特征1010可以被包括在多个特征组1014中。例如,特征1010a(特征_1)被显示为特征组1014a和1014b的成员。尽管特征组1014可以具有相同数量的特征1010,但是典型地允许特征组1014具有不同数量的特征,其中使用用户输入、统计方法、数据关系、其他信息、或它们的组合(包括如示例1-9中所述的)来确定组中特征的身份/数量。

在一些情况下,所有特征1010被分配给特征组1014。然而,特征组1014中的一个或多个可以简单地被指定为没有被具体分配给另一个特征组的“剩余(leftover)”特征。或者,如图10所示,特征1010、特征1010b中的一些不需要分配给特征组1014。

可以聚合特征的SHAP值(诸如针对特征组),包括:

在一些实施方式中,特征组的相对重要性可以定义为:

示例11–显示特征组信息的示例显示屏

图11示出了如何使用特征组来提供关于这样的特征组如何对机器学习模型做出贡献(包括对由机器学习模型为特定的特征输入值集提供的特定结果的贡献)的信息。

图11呈现了以预测形式提供结果1108的示例用户界面屏幕1100。结果1108可以是结果(例如,成功)是针对特定的输入值集的多大可能性的指示。

屏幕1100的面板1112列出了多个特征组1120。对于每个特征组1120,显示特征组对结果1108的贡献1124。如果贡献来自未分配给特征组的特征或者来自未在面板1112中显示的特征组,则贡献1124可以被归一化或以其他方式计算,使得所有贡献1124的总和为100%,或者至少贡献的总和小于100%。可以显示视觉指示器1132(诸如条),以帮助视觉地传达特征组1120的贡献1124。

用户可以选择展开或折叠特征组1120,以查看来自特征组中的各个特征1134的贡献1130。典型地,特征组1120中的贡献1130的总和将等于特征组的贡献1124。然而,可以使用其他指标。例如,某些特征组1120或特征1134可以比其他特征组或特征加权的更大或更小。或者,可以呈现特征组1120的重要性的度量,该度量考虑了特征组中的多个特征。例如,特征组1120的贡献或重要性可以被计算为该组中特征1134的平均(平均值)。在这种情况下,通过考虑特征组中的特征的数量来加权特征组1120的贡献。然而,在其他情况下,对特征组1120的贡献没有被加权,因为如果组对结果1108具有更高的绝对贡献,则该组可能具有更高的重要性,即使它也具有比其他特征组更多的特征1134。

如示例1中所述,用户可以基于特征组1124来调整机器学习模型。基于被选择的特征1134/特征组1120来重新训练机器学习模型可以至少对于某些场景来说改进模型的性能,其中改进的性能可以是改进的准确性或改进的性能(例如,速度或效率,诸如处理更少的特征/数据,使用更少的存储器或处理器资源)中的一个或两者。

如图11所示,用户可以为特征组1120或单独的特征1134选择框1140。通过选择图标1144,用户可以使用被选择的特征1134/特征组1120来重新训练模型。

示例12–特征组的构建和使用示例

图12是示出如何从数据集1210确定特征组并可选地用于训练(例如,重新训练)机器学习模型的示意图。数据集1210从一个或多个数据源(未示出)(包括如示例111中所述)获得。数据集1210包括多个特征1214,该多个特征121中的至少一部分用于训练机器学习模型或使用经训练的分类器提供分类结果。

数据集1210可以被划分成多个部分,包括用作训练数据1218的部分和用作分类数据1220的部分(或者更一般地,作为分析数据集)。训练数据1218可以由机器学习算法1224处理,以提供经训练的分类器1228。分类数据1220可以由经训练的分类器1228处理,以提供结果1232。结果1232和数据集1210的一部分可以被处理以提供特征贡献1236。特征贡献1236可以包括上下文贡献值,诸如上下文或总体SHAP或LIME值、总体贡献值(包括如示例13中定义的)、或它们的组合。

可以在1240提取特征组。在1240提取特征组可以包括分析特征贡献以确定相关/不相关特征。在1240提取特征组可以包括基于其他考虑(诸如用于形成数据集1210的一个或多个数据源中的特征之间的关系、获取数据集的数据时的数据访问请求、或者可能已经提供的任何预定义特征组),提取特征组或者确定特征组中的成员资格。在1240提取特征组还可以包括对特征应用一种或多种聚类技术,包括基于与数据集1210中的特征相关联的数据、结果1232、在1236确定的特征贡献、或这些因素的组合。

可以在1244查看或调整特征组。在1244查看和调整特征组可以包括用户手动查看或调整特征组,这可以包括添加或移除特征组、或者从特征组添加或移除特征。在其他情况下,可以自动执行特征组查看和调整(诸如通过使用规则来分析特征组中的特征之间的关系并拒绝例如不满足特征组中的成员资格的阈值的特征,或者移除不满足形成特征组的标准的特征组(例如,特征组中的特征不满足为特征组设置的最小预测贡献阈值,不满足特征组中特征的阈值数量,特征组中的特征不充分相关/依赖,其他因素,或者这些或其他因素的组合)。

作为1240处的提取和1244处检查/调整的结果而确定的特征组可以可选地用于重新训练经训练的分类器1228。或者特征组可以与相同的数据集1210或新的数据集一起用于训练机器学习算法1224,如已经描述的使用经训练的分类器1228对分类数据1220进行分类,之后可以提取特征贡献1236,可以在1240提取特征组,并且可以在1244再次进行检查/调整。然后,该过程可以根据需要继续。

虽然被示为包括被划分成训练数据1218和分类数据1220的数据集1210,但是在一些实施例中,训练数据和分类数据不需要来自训练数据集。至少在一些情况下,是否需要公共数据集可以取决于用于机器学习算法1224的特定技术。此外,在1236确定的特征贡献、在1240的特征组提取、和在1244的特征组检查/调整中的一个或多个可以使用来自多个数据集1210(其可以已经被单独用作分类数据或者可以是数据集的分类数据部分)的结果1232来执行。例如,可以从分类数据1220的多个集合的结果1232中确定聚合的SHAP值。其他技术(诸如交叉验证(cross-validation))可以用于帮助确定两组结果1232是否适合在步骤1236、1240、1244中使用。在一些情况下,训练数据1218的至少一部分可以用作分类数据1220。

此外,应当理解,并非所有公开的技术都需要使用机器学习模型1224来识别特征组。如示例1和3-7中所解释的,特征组可以手动确定或者基于与特征相关联的数据源或者特征/数据源之间的关系来确定。类似地,可以使用经训练的ML模型,使用诸如互信息或监督相关(supervised correlation)对特征进行聚类的技术来识别特征组。然而,如果需要,使用这种其他技术确定的特征组可以与机器学习算法1224/经训练的分类器1228一起使用,诸如用于确定如何训练ML算法1224或解释由经训练的分类器提供的结果1232。

虽然许多示例讨论了关于分类机器学习任务/算法的特征组的使用,但是应当进一步理解,所公开的技术(包括特征组的识别和使用)可以与其他类型的机器学习算法一起使用,包括用于多类(multi-class)分类或回归。

示例13–上下文和总体特征贡献的示例计算和比较

在一些情况下,关于特征对于机器学习模型(或使用这种模型提供的特定结果)的重要性的信息可以通过比较特征的上下文重要性(诸如由SHAP或LIME计算确定的)和基于单变量预测模型的特征的总体重要性(例如,特征和结果之间的关联的强度)来访问。也就是说,例如,上下文重要性和总体重要性之间的差异可以指示无法通过单特征(single-features)的典型总体重要性分析或者甚至是使用上下文分析来揭示的关系。

在具体示例中,特征X的总体重要性(例如,使用单变量SHAP值)可以计算为:

其中,x

在具体示例中,使用SHAP技术,特征X的上下文重要性(使用上下文SHAP值)可以计算为:

其中,φ

可以比较一个或多个特征的总体重要性和上下文重要性(包括使用柱形图或散点图)。总体重要性和上下文重要性之间存在大差异的特征可以标记出来用于查看。在一些情况下,可以设置阈值差异,并且可以向用户呈现满足阈值的特征。此外,特征的上下文重要性和总体重要性之间的相关性低(例如,<<1)可以指示该特征与结果的关系与从总体(单变量)SHAP值所期望的关系相反。

可以进一步分析使用该技术识别到的特征的统计,诸如分析特征的不同值的统计。数据集中具有特定值的数据点的数量的差异,以及该值与特定结果的关联,可以提供可以用于调整机器学习模型或改变行为以影响结果的信息,其中该结果可以是实际(模拟世界)结果或使用机器学习模型获得的结果。

特征的值的样式也可以使用总体和上下文度量进行比较。例如,总体度量和上下文度量之间的变化可能只发生在特征的值中的一个或指定子集。或者,可以更一致地观测到差异(例如,对于所有值或者对于值的更大子集)。差异的一致性可以计算为特征的上下文SHAP值及其与目标(结果)的总体关联(单变量SHAP值)之间的皮尔逊相关。接近1的值指示高一致性,而接近0的值指示低一致性或没有一致性。负值可以指示存在异常关系,诸如辛普森悖论(Simpson’s Paradox)。

在具体示例中,特征的总体重要性和上下文重要性可以在绘图上呈现,该绘图示出了在一系列值上的总体重要性和上下文重要性之间的一致性。例如,绘图可以具有在Y轴上呈现的重要性值和在X轴上的特定特征的值,其中上下文重要性值和总体重要性值被绘制(包括显示在数据集中的各种观测上上下文值和总体值的一致性的变化(例如,对于多个输入实例))。

示例14–因果关系信息的确定和使用的示例

如示例1所述,可以确定因果关系信息,并将其用于分析机器学习模型,也可能用于修改模型。例如,可以分析模型提供的初始结果集,包括确定影响其他特征的特征。至少依赖于其他特征的某些特征可以从保留该模型中排除。以这种方式,可以通过减少或消除依赖特征的影响来隔离特定特征(或特征组)对结果的影响。使用特征组可以进行类似的分析和训练。

可以使用各种方法(包括实施例1-13中描述的方法)确定特征之间的关系。对于给定的特征及其依赖特征,可以进一步对特征进行分类,包括手动分类。这种进一步的分类可以包括确定特征是可采取动作(actionable)特征还是不可采取动作特征。可采取动作特征可以是可能被影响或改变(诸如通过被某人使用ML模型的结果或者在使用ML模型建模的场景期间)的特征。作为示例,可以识别到性别或出生国的特征对诸如职业或教育的特征有影响。然而,尽管职业或教育可以是可采取动作的(例如,可以帮助某人具有不同的职业或具有不同的教育状态),但是诸如性别或出生国的特征是不可采取动作的。

可以使用特征(诸如它们是可采取动作的还是不可采取动作特征)将特征分类到特征组中。例如,对于给定的特征组类别,可以为可采取动作特征和不可采取动作特征形成附加的子类别。在这种情况下,该子类别中的一个或多个可以用作特征组,而不需要使用原始父组。

当分析特定问题时,用户可以选择使用相关特征/特征组来训练机器学习模型,或者选择经适当训练的ML模型。例如,如果对特定的可采取动作特征感兴趣,用户可能希望使用该可采取动作特征和相关特征/特征组的数据来训练模型。在一些情况下,相关特征/特征组可以是那些不依赖于感兴趣特征的特征/特征组(或者感兴趣特征是其成员的特征组)。在其他情况下,相关特征/特征组可以是或者可以包括依赖于感兴趣特征的特征(或者感兴趣特征是其成员的组)。类似地,在一些情况下,相关特征/特征组可以是可采取动作特征,而在其他情况下,相关特征/特征组是不可采取动作特征。可以根据需要使用可采取动作/不可采取动作和依赖/不依赖特征/特征组的各种组合。

使用这些技术可以提供各种优势,包括帮助用户理解可采取动作/不可采取动作特征/特征组的相对贡献。至少在一些情况下,可采取动作特征可以是在ML模型中使用的特征的相对小的子集。在任何情况下,能够关注可采取动作特征可以帮助用户更好地理解对于由ML模型建模的给定场景,不同的结果是如何实现的。

此外,使用因果关系信息,通过排除感兴趣特征的中间结果,用户可以从分析中排除依赖特征(例如,通过将它们从模型训练中排除),以更好地理解特征(诸如可采取动作的特征)对结果的总体影响。

示例15–训练和使用分类器的示例方法

图13A是形成特征组的示例方法1300的流程图。在1310,接收训练数据集。训练数据集包括第一多个特征的值。在1314,使用训练数据集来训练机器学习算法,以提供经训练的机器学习算法。在1318,使用经训练的机器学习算法处理分析数据集以提供结果。在1322形成多个特征组。特征组中的至少一个特征组包括第一多个特征中的第二多个特征。第二多个特征是第一多个特征的适当子集。

图13B是使用数据集中的特征之间的依赖关系形成特征组的示例方法1340的流程图。在1344,接收训练数据集。训练数据集包括第一多个特征的值。在1348,使用训练数据集来训练机器学习算法,以提供经训练的机器学习算法。在1352,使用经训练的机器学习算法来处理分析数据集以提供结果。在1356,为第一多个特征中的第二多个特征确定上下文贡献值。在1360,确定第二多个特征中的特征之间的依赖关系。在1364,至少部分地基于所确定的依赖关系来形成多个特征组。所述多个特征组中的至少一个特征组包括第一多个特征中的第三多个特征。第三多个特征是第一多个特征的适当子集。

图13C是确定特征组贡献值的示例方法1370的流程图。在1374,确定机器学习算法中使用的第一多个特征。在1378,形成多个特征组,诸如使用机器学习结果的分析、语义分析、统计分析、数据沿袭、或它们的组合。所述多个特征组中的至少一个特征组包括第一多个特征中的第二多个特征。第二多个特征是第一多个特征的适当子集。在1382,使用机器学习算法为分析数据集确定结果。在1386,对于特征组的至少一部分,聚合相应特征组的特征对结果的贡献值以提供特征组贡献值。

示例16–计算系统

图14描绘了其中可以实施所描述的创新的合适的计算系统1400的通用示例。计算系统1400不旨在对本公开的使用范围或功能提出任何限制,因为创新可以在不同的通用或专用计算系统中实施。

参考图14,计算系统1400包括一个或多个处理单元1410、1415和存储器1420、1425。在图14中,该基本配置1430包括在虚线内。处理单元1410、1415执行计算机可执行指令,诸如用于实施示例1-15中描述的技术。处理单元可以是通用中央处理单元(centralprocessing unit,CPU)、专用集成电路(application-specific integrated circuit,ASIC)中的处理器或任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令来提高处理能力。例如,图14示出了中央处理单元1410以及图形处理单元或协处理单元1415。有形存储器1420、1425可以是可由(多个)处理单元1410、1415访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)、或两者的某种组合。存储器1420、1425以适于由(多个)处理单元1410、1415执行的计算机可执行指令的形式存储实施本文描述的一个或多个创新的软件1480。

计算系统1400可以具有附加特征。例如,计算系统1400包括储存器1440、一个或多个输入设备1450、一个或多个输出设备1460以及一个或多个通信连接1470。互连机制(未示出)(诸如总线、控制器或网络)将计算系统1400的组件互连。典型地,操作系统软件(未示出)为在计算系统1400中执行的其他软件提供操作环境,并协调计算系统1400的组件的活动。

有形储存器1440可以是可移动的或不可移动的,并且包括磁盘、磁带或盒式磁带、CD-ROM、DVD或任何其他可以用于以非暂时性方式存储信息并且可以在计算系统1400内访问的介质。储存器1440存储用于软件1480实施本文描述的一个或多个创新的指令。

(多个)输入设备1450可以是触摸输入设备,诸如键盘、鼠标、笔或轨迹球、语音输入设备、扫描设备或向计算系统1400提供输入的其他设备。(多个)输出设备1460可以是显示器、打印机、扬声器、光盘刻录机或从计算系统1400提供输出的另一设备。

(多个)通信连接1470使得能够通过通信介质与另一计算实体进行通信。通信介质传达信息,诸如计算机可执行指令、音频或视频输入或输出、或调制数据信号中的其他数据。调制数据信号是具有以在信号中编码信息的方式设置或改变的其特征中的一个或多个的信号。作为示例而非限制,通信介质可以使用电、光、RF或其他载体。

这些创新可以在计算机可执行指令(诸如那些包括在程序模块中、在目标真实或虚拟处理器上的计算系统中执行的指令)的通常上下文中描述。通常,程序模块或组件包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种实施例中,程序模块的特征可以根据需要在程序模块之间组合或分离。用于程序模块的计算机可执行指令可以在本地或分布式计算系统中执行。

术语“系统”和“设备”在本文中可互换使用。除非上下文另有明确指示,否则这两个术语都不意味着对计算系统或计算设备的类型的任何限制。通常,计算系统或计算设备可以是本地的或分布式的,并且可以包括与实施本文描述的功能的软件的专用硬件和/或通用硬件任意组合。

在本文描述的各种示例中,模块(例如,组件或引擎)可以被“编码”以执行某些操作或提供某些功能,指示用于该模块的计算机可执行指令可以被执行以执行这些操作,使得这些操作被执行或以其他方式提供这些特征。尽管关于软件组件、模块或引擎描述的功能可以作为离散软件单元(例如,程序、函数、类方法)来执行,它不必需作为离散单元来实施。也就是说,该功能可以被并入到更大或更通用的程序中,诸如更大或通用的程序中的一行或多行代码。

为了呈现,详细描述使用类似“确定”和“使用”的术语来描述计算系统中的计算机操作。这些术语是计算机执行的操作的高级抽象,不应与人类执行的行为混淆。对应于这些术语的实际计算机操作取决于实施方式而变化。

示例17–云计算环境

图15描绘了其中可以实施所描述的技术的示例云计算环境1500。云计算环境1500包括云计算服务1510。云计算服务1510可以包括各种类型的云计算资源,诸如计算机服务器、数据存储库、网络资源等。云计算服务1510可以位于中心(例如,由企业或组织的数据中心提供)或是分布式的(例如,由位于不同位置(诸如不同的数据中心和/或位于不同的城市或国家)的各种计算资源提供)。

云计算服务1510由各种类型的计算设备(例如,客户端计算设备)(诸如计算设备1520、1522和1524)利用。例如,计算设备(例如,1520、1522和1524)可以是计算机(例如,台式或膝上型计算机)、移动设备(例如,平板电脑或智能手机)或其他类型的计算设备。例如,计算设备(例如,1520、1522和1524)可以利用云计算服务1510来执行计算操作(例如,数据处理、数据存储等)。

示例18–实施方式

尽管为了便于呈现,以特定的顺序描述了所公开的方法的一些的操作,但是应当理解,这种描述方式包括重新排列,除非所阐述的特定语言要求特定的顺序。例如,顺序描述的操作在一些情况下可以重新排列或同时执行。此外,为了简单起见,附图可能没有示出其中所公开的方法可以与其他方法结合使用的各种方法。

任何公开的方法可以实施为存储在一个或多个计算机可读存储介质(诸如有形的、非暂时性的计算机可读存储介质)上的计算机可执行指令或计算机程序产品,并且在计算设备(例如,任何可用的计算设备,包括智能电话或包括计算硬件的其他移动设备)上执行。有形计算机可读存储介质是可以在计算环境中访问的任何可用有形介质(例如,一个或多个光学介质盘(诸如DVD或CD)、易失性存储器组件(诸如DRAM或SRAM)、或非易失性存储器组件(诸如闪存或硬盘驱动器)。举例来说,并且参考图14,计算机可读存储介质包括存储器1420和1425以及储存器1440。术语计算机可读存储介质不包括信号和载波。此外,术语计算机可读存储介质不包括通信连接(例如,1470)。

用于实现所公开的技术的任何计算机可执行指令以及在所公开的实施例的实施期间创建和使用的任何数据可以存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如专用软件应用或经由网络浏览器或其他软件应用(诸如远程计算应用)访问或下载的软件应用的一部分。这种软件可以例如在单个本地计算机上(例如,任何合适的市售计算机)或在使用一个或多个网络计算机的网络环境中(例如,经由互联网、广域网、局域网、客户机-服务器网络(诸如云计算网络)或其他这种网络)执行。

为了清楚起见,仅描述了基于软件的实施方式的某些选定方面。省略了本领域公知的其他细节。例如,应当理解,所公开的技术不限于任何特定的计算机语言或程序。例如,所公开的技术可以由用C、C++、C#、Java、Perl、JavaScript、Python、Ruby、ABAP、SQL、XCode、GO、Adobe Flash或任何其他合适的编程语言编写的软件来实施,或者在一些示例中,由标记语言诸如html或XML之类或者合适的编程语言和标记语言的组合来实施。同样,所公开的技术不限于任何特定的计算机或硬件类型。合适的计算机和硬件的某些细节是众所周知的,不需要在本公开中详细阐述。

此外,任何基于软件的实施例(包括例如用于使计算机执行任何所公开的方法的计算机可执行指令)可以通过合适的通信方法上传、下载或远程访问。这种合适的通信方法包括例如互联网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括射频、微波和红外通信)、电子通信或其他这种通信方法。

所公开的方法、装置和系统不应被理解为以任何方式进行限制。相反,本公开单独地以及以各种组合和彼此的子组合针对各种公开的实施例的所有新颖和非显而易见的特征和方面。所公开的方法、装置和系统不限于任何特定的方面或特征或其组合,所公开的实施例也不要求存在任何一个或多个特定的优点,或者解决问题。

任何示例中的技术都可以与任何一个或多个其他示例中描述的技术相结合。鉴于可以应用所公开技术的原理的许多可能的实施例,应当认识到,所示实施例是所公开技术的示例,并且不应当被视为对所公开技术的范围的限制。相反,所公开技术的范围包括由以下权利要求的范围和精神所覆盖的内容。

相关技术
  • 使用特征分析解释机器学习结果
  • 用于编辑机器学习结果的方法和信息处理设备
技术分类

06120112940299