CN109804362A - 通过机器学习确定主键-外键关系 - Google Patents
通过机器学习确定主键-外键关系 Download PDFInfo
- Publication number
- CN109804362A CN109804362A CN201780056658.6A CN201780056658A CN109804362A CN 109804362 A CN109804362 A CN 109804362A CN 201780056658 A CN201780056658 A CN 201780056658A CN 109804362 A CN109804362 A CN 109804362A
- Authority
- CN
- China
- Prior art keywords
- key
- machine learning
- data
- relationship
- primary key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 449
- 238000012549 training Methods 0.000 claims abstract description 296
- 238000007635 classification algorithm Methods 0.000 claims abstract description 146
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 131
- 238000000034 method Methods 0.000 claims abstract description 95
- 238000010200 validation analysis Methods 0.000 claims description 107
- 238000012360 testing method Methods 0.000 claims description 56
- 238000004590 computer program Methods 0.000 claims description 51
- 238000007637 random forest analysis Methods 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000001052 transient effect Effects 0.000 claims description 13
- 238000006073 displacement reaction Methods 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 4
- 238000013480 data collection Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 claims description 2
- 238000012706 support-vector machine Methods 0.000 claims description 2
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 230000001186 cumulative effect Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 20
- 230000003466 anti-cipated effect Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 10
- 239000000203 mixture Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 239000012141 concentrate Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 238000013138 pruning Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Abstract
提供了一种用于通过机器学习(ML)来确定目标数据库的表中的数据之间的主键‑外键(PK‑FK)关系的方法和机器学习关系确定系统(MLRDS)。MLRDS选择目标数据库中表的列,并从所选列中标识包含依赖(ID)对。MLRDS从源数据库接收训练数据和验证数据,计算包含依赖对、训练数据和验证数据的PK‑FK特征,并使用PK‑FK特征生成训练ML模型和验证ML模型。MLRDS确定所选机器学习分类算法(MLCA)的最优算法判定阈值,MLRDS使用该最优算法判定阈值确定包含依赖对是PK‑FK对还是非PK‑FK对的结果。MLRDS对多个MLCA的结果执行多数投票,以确认包含依赖对之间的PK‑FK关系。
Description
本申请要求2016年7月15日向美国专利商标局提交的题为“Primary Key-ForeignKey Relationship Determination Through Machine Learning”的非临时专利申请的优先权和权益,非临时专利申请号为15/210,889。上述引用的专利申请的说明书全文通过引证结合于此。
背景技术
为了在大型企业中执行数据集成,必须了解和理解数据库的数据库结构和模式元素之间的语义关系。由于大型企业中的传统数据管理,模式元素之间的语义关系(例如,数据库中的表列)经常丢失或损坏。确定模式元素之间的语义关系是一个耗时且昂贵的过程。当显式语义关系不可用时,由于数据库的巨大规模和存储在表中的数据的性质,识别语义关系变得非常耗时。
模式元素之间的一类重要语义关系是主键-外键(primary key-foreign key)关系。主键是表中唯一标识表中每个记录的列。外键是另一个表中的属性或列,外键映射到主键以形成表之间的关系。主键和外键之间的关系称为“主键-外键关系”。主键-外键关系有助于快速获取由数据库用户查询的记录,而不必访问企业中的许多表,从而节省了时间和精力。主键-外键关系允许每当数据库中的任何记录发生任何形式的扰动、插入或删除时确定模式中的数据流。然而,在大型企业的数据库中确定主键-外键关系是一个时间密集型、处理器密集型和计算密集型的过程。考虑一个示例,其中必须在100个表之间找到主键-外键关系,每个表有20列。为了找到可能的主键-外键关系,必须研究大约400万对列。无法使用蛮力方法在400万对列中查找可能的主键-外键关系。为了在模式元素之间存在主键-外键关系,需要满足包含依赖性的前提条件。包含依赖项是数据的一个属性,当满足该属性时,要求表中一列的每个值都作为另一列的值存在于不同或相同的表中。在确定模式元素之间的包含依赖性时,要针对主键-外键关系评估的模式元素对的数量显著减少,但是对于手动确定主键-外键关系而言仍然显著较大。因此,需要使用计算密集型处理器来自动化用于确定模式元素之间的主键-外键关系的过程。
有几种确定主键-外键关系的常规方法。在一种常规方法中,使用来自表中列对的元数据来确定主键-外键关系。在该方法中,使用单个功能(例如列名称)来确定主键-外键关系。对于单个特征,即列名称,主键-外键关系的确定可能不像所标识的主键具有重复值那样精确,并且可能不满足主键的属性。需要一种通过使用表中数据的特征的智能组合并且不依赖于单个特征来确定表中数据之间的主键-外键关系的方法。
在用于确定表中数据之间的主键-外键关系的另一常规方法中,采用剪枝标准和排序函数。剪枝标准排除了表中不大可能具有主键-外键关系的列对。排序函数对满足剪枝标准的表中的列对进行排序。剪枝标准和排序函数受程序员定义的限制。在其他常规方法中,使用基于规则的方法来找到主键-外键关系。基于规则的方法之一是确定表中列对中主键和外键的累积概率分布,并计算列队中的每一对的分数。然而,使用基于规则的方法确定主键-外键关系的范围受限于为确定而定义的规则,这通常是不准确的。基于规则的方法还需要一个专家或程序员来定义规则和执行算法。分数的计算是一个处理器密集型和耗时的过程。需要一种方法,用于基于过去的观察更准确地确定数据之间的主键-外键关系,同时消耗更少的时间。基于机器学习的方法是精确确定主键-外键关系的一种方法。基于机器学习的方法从已经分类的数据中学习主键-外键关系的固有属性,并且因此是确定主键-外键关系的稳健方法。
在机器学习方法中,机器学习分类算法从已经分类的数据的模式中学习。已经分类的数据作为训练数据用于训练机器学习分类算法。如果机器学习分类算法被应用于分类问题,则在已经分类的数据上训练机器学习分类算法,已经分类的数据被分类为两类:包括主键-外键对的正训练数据和包括非主键-外键对的负训练数据。如果在主要为负训练数据上训练机器学习分类算法,则从机器学习分类算法的应用生成的经训练的机器学习模型将偏向于负训练数据。当经受实际数据的主键-外键关系有待确定时,经训练的机器学习模型对实际数据进行伪分类。此外,使用单个机器学习分类算法来确定模式元素之间的主键-外键关系可能导致伪分类。多个机器学习分类算法的组合将导致更好地确定实际数据之间的主键-外键关系。
因此,长期以来一直需要一种方法和系统来确定模式元素之间的主键-外键关系,即通过使用计算密集型处理器的机器学习来确定多个表中的数据。此外,需要一种智能地组合表中的数据特征的方法和系统,用于确定实际模式元素之间的主键-外键关系。此外,需要一种方法和系统,其以避免训练数据向负训练数据倾斜的方式分割训练数据,以避免通过机器学习分类算法对模式元素进行错误分类。此外,需要一种智能地组合多个机器学习分类算法的方法和系统,用于确定实际模式元素之间的主键-外键关系。
发明内容
提供本概述是为了以简化的形式介绍在本发明的详细描述中进一步公开的概念的选择。本概述不旨在确定所要求保护的主题的范围。
本文公开的方法和系统解决了上述确定模式元素之间的主键-外键关系的需要,即通过使用计算密集型处理器的机器学习来确定多个表中的数据。此外,本文公开的方法和系统智能地组合每个表中的数据的特征,以确定实际模式元素之间的主键-外键关系。此外,本文公开的方法和系统分割训练数据,以避免训练数据向负训练数据倾斜的方式训练机器学习分类算法,以避免机器学习分类算法对模式元素的错误分类。此外,本文公开的方法和系统智能地组合多个机器学习分类算法,以确定实际模式元素之间的主键-外键关系。
本文公开的方法采用机器学习关系确定系统(MLRDS),该系统包括至少一个处理器,该处理器被配置为执行计算机程序指令,用于通过机器学习确定目标数据库的多个表中的数据之间的主键-外键关系。MLRDS针对目标数据库中的每一个表从该表中的第一表选择第一列数据,并从该表中的第二表选择第二列数据。第一列数据包括第一列名称。第二列数据包括与第一列名称不同的第二列名称。在确定所选定的第二列数据的数据元素整体存在于所选定的第一列数据中时,MLRDS将所选定的第一列数据标识为预期主键,并将所选定的第二列数据标识为预期外键,以形成包含依赖对。MLRDS从源数据库接收多个预定包含依赖对,该多个预定包含依赖对包括被分类为正训练数据和正验证数据的主键-外键对,以及被分类为负训练数据和负验证数据的非主键-外键对。正验证数据和负验证数据形成验证数据集。MLRDS将正训练数据和负训练数据分割为训练数据集。MLRDS计算预期主键和预期外键的包含依赖对、训练数据集和验证数据集的多个主键-外键特征。通过使用训练数据集和计算出的训练数据集的主键-外键特征来训练每个机器学习分类算法,MLRDS生成与训练数据集相对应的经训练的机器学习模型。
在使用计算出的验证数据集的主键-外键特征利用验证数据集来测试所生成的与训练数据集相对应的经训练的机器学习模型时,通过机器学习关系确定系统(MLRDS)针对每个机器学习分类算法来生成经验证的机器学习模型。MLRDS使用所生成的经验证的机器学习模型来确定每个机器学习分类算法的最优算法判定阈值。然后,MLRDS使用所确定的最优算法判定阈值和计算出的预期主键和预期外键的包含依赖对的主键-外键特征,针对每个机器学习分类算法确定包含依赖对的结果是主键-外键对或非主键-外键对。MLRDS对每个机器学习分类算法的确定结果执行多数投票,以确定第一表的所选定的第一列数据中的数据和第二表的所选定的第二列数据中的数据之间的主键-外键关系。
在一个或多个实施方式中,相关系统包括用于实现本文所公开的方法的电路和/或编程;电路和/或编程可以是硬件、软件和/或固件的任意组合,该硬件、软件和/或固件被配置为根据系统设计者的设计选择来实现本文所公开的方法。此外,根据系统设计者的设计选择,可以采用各种结构元素。
附图说明
当结合附图阅读时,可以更好地理解本发明的前述概述以及下面的详细描述。为了说明本发明,在附图中示出了本发明的示例性结构。然而,本发明不限于本文公开的具体方法和组件。在附图中由数字表示的方法步骤或组件的描述适用于本文中任何后续附图中由相同数字表示的方法步骤或组件的描述。
图1A至图1B示出了用于通过机器学习确定目标数据库的多个表中的数据之间的主键-外键关系的方法。
图2示例性地示出了包括由机器学习关系确定系统执行的用于训练和验证机器学习分类算法以及用于确定目标数据库的多个表中的数据之间的主键-外键关系的步骤的流程图。
图3A至图3B示例性地示出了目标数据库的两个表,该表具有要确定其主键-外键关系的相应列。
图4示例性地示出了将正训练数据和负训练数据分割成多个训练数据集的示意图。
图5示例性地示出了包含在针对验证数据集测试经训练的机器学习模型时由机器学习关系确定系统获得的经训练的机器学习模型的测试输出的表。
图6示例性地示出了包含验证数据集的实例数量的表,该表定义了验证数据集的实例之间的主键-外键关系,用于使用经验证的机器学习模型来确定最优算法判定阈值。
图7示例性地示出了包含验证数据集的实例的累积数量的表,该表定义了验证数据集的实例之间的主键-外键关系,用于使用经验证的机器学习模型来确定最优算法判定阈值。
图8示例性地示出了用于使用经验证的机器学习模型来确定最优算法判定阈值的示意性表示。
图9示例性地示出了示出针对多个机器学习分类算法中的每一个的所标识的包含依赖对的结果的多数投票的流程图。
图10A至图10B示例性地示出了目标数据库的两个表,该表具有要确定其主键-外键关系的相应列。
图11示例性地示出了来自包含训练数据的源数据库的表。
图12示例性地示出了来自包含验证数据集的源数据库的表。
图13示例性地示出了示出将训练数据分割成多个训练数据集的示意图。
图14A至图14B示例性地示出了包含训练数据的表,该训练数据具有由机器学习关系确定系统针对训练数据计算的主键-外键特征。
图15A至图15B示例性地示出了包含验证数据集的表,该验证数据集具有由机器学习关系确定系统针对验证数据集计算的主键-外键特征。
图16示例性地示出了包括由机器学习关系确定系统执行的用于生成机器学习分类算法的有效机器学习模型的步骤的流程图。
图17示例性地示出了包含在针对验证数据集验证经训练的机器学习模型时由机器学习关系确定系统获得的经训练的机器学习模型的输出的表。
图18A至图18C示例性地示出了包含验证数据集的实例的累积数量的表,该表定义了验证数据集的实例之间的主键-外键关系,用于使用经验证的机器学习模型来确定最优算法判定阈值。
图19示例性地示出了用于使用经验证的机器学习模型来确定最优算法判定阈值的示意性表示。
图20示例性地示出了示出由机器学习关系确定系统使用最优算法判定阈值生成的、从图10A至10B所示的表中标识的包含依赖对的结果是主键-外键对或非主键-外键对的表。
图21示例性地示出了包含在对图20所示的结果执行多数投票时由机器学习关系确定系统生成的、从图10A至10B所示的表中标识的包含依赖对的最终结果是主键-外键对或非主键-外键对的表。
图22示例性地示出了包括机器学习关系确定系统的系统,该机器学习关系确定系统用于通过机器学习确定目标数据库的多个表中的数据之间的主键-外键关系。
具体实施方式
图1A至图1B示出了用于通过机器学习来确定目标数据库的多个表中的数据之间的主键-外键关系的方法。如本文所使用的,“目标数据库”是指以确定数据集合中的主键-外键关系为目标的数据库,该数据集合被组织在多个表中以用于数据的访问、管理和更新。目标数据库的每个表包含多行和多列。在目标数据库中,将确定表列中数据之间的主键-外键关系。如本文所使用的,“主键-外键关系”是指表中的主键与另一表中的外键之间的关系。表中的主键是表中唯一标识表中一行的列。具有主键的表被标识为父表。外键是另一表(通常称为子表)中的列,它映射到父表中的主键以控制要存储在子表中的数据。当外键引用或映射到主键时,将在父表和子表之间创建一个链接,该链接定义父表和子表中列之间的主键-外键关系。机器学习是指一种人工智能,它为处理器提供了一种无需显式编程就能从数据中学习并对数据进行预测的能力。机器学习关注的是计算机程序的开发,这些程序可以教会其自身在接触新数据时如何成长和变化。针对机器学习的算法被称为“机器学习算法”。机器学习算法在用于训练机器学习算法的数据中搜索模式,并使用该模式来检测新数据中的模式并相应地调整程序动作。用于训练机器学习算法的数据称为“训练数据”。机器学习算法被分类为有监督或无监督。有监督机器学习算法从训练数据进行推理,并将学习应用于新数据。无监督机器学习算法从训练数据中进行推理。
本文所公开的方法采用机器学习关系确定系统(MLRDS),该系统包括至少一个处理器,该处理器被配置为执行计算机程序指令,用于通过机器学习确定目标数据库中多个表中的数据之间的主键-外键关系。在一个实施方式中,MLRDS是包括至少一个处理器的计算机系统,该处理器被配置为执行计算机程序指令,用于通过机器学习来确定目标数据库中的多个表中的数据之间的主键-外键关系。在另一实施方式中,MLRDS包括可下载并可在用户设备上使用的软件应用程序。在另一实施方式中,MLRDS被实现为基于web的平台,例如,托管在服务器上的网站或用户设备经由网络(例如,因特网、无线网络、移动电信网络等)可访问的服务器的网络。在另一实施方式中,MLRDS在云计算环境中实现,并提供开放的通信社区服务。如本文所使用的,“云计算环境”是指包括可配置计算物理和逻辑资源(例如,网络、服务器、存储、应用、服务等)以及分布在网络(例如,因特网)上的数据的处理环境。云计算环境提供对可配置计算物理和逻辑资源的共享池的按需网络访问。在另一实施方式中,MLRDS被配置为基于云计算的平台,该平台被实现为用于通过机器学习来确定目标数据库中的多个表中的数据之间的主键-外键关系的服务。
机器学习关系确定系统(MLRDS)针对目标数据库中的多个表中的每个表从目标数据库的多个表中的第一表选择第一列数据和从目标数据库的多个表中的第二表选择第二列数据(101)。如本文所使用的,“第一表”是指具有预期主键的预期父表,并且“第二表”指的是具有预期外键的预期子表。MLRDS从目标数据库中的多个表中选择第一表和第二表。此外,如本文所使用的,“第一列”是指预期父表的列,并且“第二列”是指预期子表的列。第一列数据包括第一列名称。第一列名称形成第一列的元数据。第二列数据包括第二列名称。第二列名称形成第二列的元数据,并且第二列名称与第一列名称不同。MLRDS迭代地从目标数据库中的不同表中选择列对,以确定列对中数据之间的主键-外键关系。考虑一个示例,其中目标数据库包含5个表,每个表有100列。该目标数据库中的列总数为500。MLRDS从这500列中选择一对列。可以从500列中选择的列对数为500P2=500*499~250000。MLRDS从目标数据库中的5个表中选择约250000列对的可能数量,以确定500列之间的主键-外键关系。
在确定所选定的第二列数据的数据元素整体存在于所选定的第一列数据中时,机器学习关系确定系统(MLRDS)将所选定的第一列数据标识为预期主键,并将所选定的第二列数据标识为预期外键,以形成包含依赖对(102)。如本文所使用的,“包含依赖对”是指所选定的第一列和所选定的第二列的一对,其中所选定的第二列中的数据元素是所选定的第一列中的数据元素的子集。即,所选定的第二列中的所有数据元素都存在于所选定的第一列中。此外,如本文所使用的,“数据元素”是指目标数据库的表中的列中的数据或值。MLRDS确定第二列的所有数据元素都存在于第一列中,并标识第一列和第二列以形成包含依赖对。为了标识第一列和第二列之间的包含依赖,MLRDS对两列进行排序,并且针对第二列中的每个数据元素,MLRDS搜索该数据元素是否存在于第一列中。
要在第一列和第二列之间存在主键-外键关系,一个必要条件是第一列和第二列形成包含依赖对。仅仅确定第一列和第二列形成包含依赖对不足以确定主键-外键关系。虽然所有主键-外键关系都具有包含依赖,但并非所有包含依赖对都是主键-外键对。在满足形成包含依赖对的条件时,机器学习关系确定系统(MLRDS)将所选定的第一列标识为预期主键,并将所选定的第二列标识为预期外键。标识目标数据库中的列的包含依赖对导致目标数据库的多个表中的列的可能列对的数量显著减少,多个表中的列的可能列对的数量将被评估以确定目标数据库中的多个表之间的主键-外键关系。列对要满足多个先决条件,例如,相同的数据类型、NULL值等,以保持主键-外键关系。当列对的数据元素具有相同的数据类型时,列对满足相同数据类型的前提条件。当标识为主键或外键的列不包含空值时,满足空值的前提条件。MLRDS排除了不满足预定条件的列对。以这种方式,MLRDS排除了大量杂散对。考虑一列队的示例,即唯一标识组织员工的EMP_ID和唯一标识组织部门的DEP_KEY。此外,考虑列EMP_ID中数据元素的数据类型为整数。要使列对EMP_ID和DEP_KEY保持主键-外键关系,列DEP_KEY中数据元素的数据类型必须为整数。如果列DEP_KEY中的数据元素的数据类型不是整数,MLRDS会将列对EMP_ID和DEP_KEY排除为不能保持主键-外键关系的伪对。如果列DEP_KEY中数据元素的数据类型为整数,则MLRDS估计EMP_ID和DEP_KEY列对的包含依赖。满足包含依赖条件的列对经受机器学习,并排除不满足包含依赖条件的剩余列对。
机器学习关系确定系统(MLRDS)从源数据库接收包括主键-外键对和非主键-外键对的多个预定包含依赖对(103)。如本文所使用的,“预定包含依赖对”是指源数据库的表中被发现为包含依赖对的列对。此外,如本文所使用的,“主键-外键对”是指被确认为具有主键-外键关系的包含依赖对。此外,如本文所使用的,“非主键-外键对”是指被确认为不具有主键-外键关系的包含依赖对,即列对不由主键和外键相关。此外,如本文所使用的,“源数据库”是指具有与目标数据库分开的表的外部数据库。在源数据库中,表中列的主键-外键对和非主键-外键对已经标识。因此,源数据库充当包括主键-外键对和非主键-外键对的预定包含依赖对的源。在源数据库中,表中列的元数据可用,并且有助于识别主键-外键关系。
主键-外键对分类为正训练数据和正验证数据。非主键-外键对分类为负训练数据和负验证数据。如本文所使用的,“训练数据”是指包括用于训练机器学习分类算法的输入值和预定输出值对的标记数据。如本文所使用的,“机器学习分类算法”是指将目标数据库的表中的列分类为主键-外键对和非主键-外键对的机器学习算法。机器学习分类算法从已分类的数据中学习,并将其学习应用于未分类的包含依赖对。由机器学习关系确定系统(MLRDS)使用的训练数据包括源数据库中的表的列的预定包含依赖对,预定包含依赖对包括预定主键-外键对和预定非主键-外键对。训练数据的输入值包括,例如,源数据库中表的列的预定包含依赖对中的列名称或数据。训练数据的预定输出值包括,例如,主键-外键标志,其指示预定包含依赖对是否保持主键-外键关系。例如,如果预定包含依赖对是主键-外键对,则主键-外键标志为“Y”,并且如果预定包含依赖对是非主键-外键对,则主键-外键标志为“N”。“Y”指示YES,表示预定包含依赖对是主键-外键对,并且“N”指示NO,表示预定包含依赖对是非主键-外键对。来自预定包含依赖对的主键-外键对形成由MLRDS使用的“正训练数据”,而非主键-外键对形成由MLRDS使用的“负训练数据”,以训练机器学习分类算法。正训练数据包括,例如,作为源数据库中作为主键-外键对的列对的列名称的输入值和作为预定输出值的主键-外键标志“Y”。负训练数据包括,例如,作为源数据库中作为非主键-外键对的列对的列名称的输入值和作为预定输出值的主键-外键标志“N”。
同样,如本文所使用的,“验证数据”是指包括用于测试在训练数据上训练的机器学习分类算法的输入值和预定输出值对的标记数据。由机器学习关系确定系统(MLRDS)使用的验证数据包括源数据库中的所表的列的预定包含依赖对,该预定包含依赖对包括预定主键-外键对和预定非主键-外键对。验证数据的输入值包括,例如,源数据库中表的列的预定包含依赖对中的列名称或数据。验证数据的预定输出值包括,例如,主键-外键标志,该主键-外键标志指示预定包含依赖对是否保持主键-外键关系。例如,主键-外键对构成正验证数据并且用“Y”作为主键-外键标志来指示,而非主键-外键对构成负验证数据并且用“N”作为主键-外键标志来指示。MLRDS从源数据库接收预先分类为正训练数据、负训练数据、正验证数据和负验证数据的预定包含依赖对。所述正验证数据和所述负验证数据形成验证数据集。在一个实施方式中,MLRDS仅接收正训练数据和负训练数据。在该实施方式中,MLRDS使用接收到的正训练数据的预定百分比来训练机器学习分类算法,并且使用接收到的正训练数据的剩余百分比作为正验证数据来验证经训练的机器学习分类算法。类似地,MLRDS使用所接收的负训练数据的预定百分比来训练机器学习分类算法,并且使用所接收的负验证数据的剩余百分比来验证经训练的机器学习分类算法。例如,如果MLRDS接收到100个正训练数据样本和100个负训练数据样本,则MLRDS使用30个正训练数据样本作为正验证数据,并且使用30个负训练数据样本作为负验证数据。剩余的70个正训练数据样本和剩余的70个负训练数据样本构成MLRDS用于训练机器学习分类算法的训练数据。
机器学习关系确定系统(MLRDS)使用正训练数据和负训练数据来训练机器学习分类算法的组合中的每一个,以确定目标数据库中数据之间的主键-外键关系。MLRDS使用正验证数据和负验证数据对经训练的机器学习分类算法进行测试和验证。然后,MLRDS使用经验证的机器学习分类算法将包含依赖对的主键-外键关系确定为主键-外键对或非主键-外键对。机器学习关系确定系统(MLRDS)使用机器学习分类算法(例如,J48算法、k-最近邻算法、朴素贝叶斯算法、随机森林算法、贝叶斯网络模型、多层感知器模型、支持向量机模型等)的组合,用于从目标数据库的表中的列中标识主键-外键对和非主键-外键对。由于在训练数据集中使用非主键-外键对来训练单个机器学习分类算法,因此单个机器学习分类算法可以导致输出可能偏向于例如非主键-外键对。在使用机器学习分类算法的组合时,MLRDS消除了单个机器学习分类算法输出中的偏差,因为MLRDS使用多个机器学习分类算法的输出来确定无偏差的结果。MLRDS对多个机器学习分类算法的输出执行多数投票以获得无偏差的结果。
机器学习关系确定系统(MLRDS)将正训练数据和负训练数据分割成训练数据集(104)。如本文所使用的,“训练数据集”是指用于训练机器学习分类算法的训练数据集。只有一部分训练数据是正的,即只有一部分训练数据包括主键-外键对,而剩余的训练数据包括非主键-外键对。如果机器学习分类算法使用大多数的负训练数据来训练,则机器学习分类算法将偏向于非主键-外键对,并且将导致对预期主键-预期外键对的错误分类。因此,MLRDS将训练数据分割成多个训练数据集,以减少MLRDS朝向所识别的包含依赖对中的主键-外键关系的错误确定的偏斜。MLRDS将负训练数据分割为多个训练数据集,并将正训练数据添加到每个训练数据集中。考虑一个示例,其中MLRDS接收1000个非主键-外键对作为负训练数据,以及接收20个主键-外键对作为正训练数据。为了将负训练数据和正训练数据分割成训练数据集,MLRDS在每个训练数据集中确定正训练数据和负训练数据的1:5的可配置比率。然后,MLRDS将负训练数据分割为具有100个非主键-外键对的10个训练数据集,并将20个主键-外键对添加到每个训练数据集。然后,MLRDS用10个训练数据集训练机器学习分类算法,每个训练数据集具有20个主键-外键对和100个非主键-外键对。
机器学习关系确定系统(MLRDS)针对预期主键和预期外键的包含依赖对、训练数据集和验证数据集计算多个主键-外键特征(105)。如本文所使用的,“主键-外键特征”是指使MLRDS能够提供关于该包含依赖对是主键-外键对还是非主键-外键对的指示的包含依赖对的特征。主键-外键特征的选择影响机器学习分类算法的性能。MLRDS计算主键-外键特征,例如,基于由于几乎所有主键都由外键覆盖的覆盖率,列的名称是相似的,诸如包含“_ID”的列名的名称模式、主键和外键的统计分布是相同的等。MLRDS计算主键-外键特征,包括例如归一化秩和、唯一外键比率、唯一外键份额、名称相似性指数、名称模式接受度、分布位移和元素计数比,用于确定包含依赖对是主键外键对还是非主键外键对。为了计算主键-外键特征,MLRDS使用从源数据库和目标数据库的表中标识的项的组合。MLRDS使用来自目标数据库的多个项中的一个来计算预期主键和预期外键的包含依赖对的主键-外键特征,该多个项包括例如,由所选定的第一列数据标识的预期主键的数据元素、由所选定的第二列数据标识的预期外键的数据元素、预期外键的唯一数据元素的数量、预期主键和预期外键的名称之间的Levenshtein距离、从预期主键和预期外键的名称获取的前缀匹配分数、通过对预期主键和预期外键的名称应用Metaphone获得的声音代码、预期主键和预期外键的名称的模式、统计度量以及其任意组合。Levenshtein距离是用于测量两个字符串之间差异的字符串度量。Metaphone算法是一种语音算法,它根据单词的英语发音来索引单词。
机器学习关系确定系统(MLRDS)还使用来自源数据库的多个项中的一个来计算训练数据集和验证数据集的主键-外键特征,该多个项包括例如,预定包含依赖对的数据元素、预定包含依赖对中的外键的唯一数据元素的数量、在预定包含依赖对中的主键和外键的名称之间的Levenshtein距离、从预定包含依赖对中的主键和外键的名称获得的前缀匹配分数、通过对预定包含依赖对中的主键和外键的名称应用Metaphone算法获得的声音代码、诸如预定包含依赖对中的主键和外键的名称的后缀的模式、统计度量以及其任意组合。
考虑包含依赖对(F,P)的示例,其中F是预期外键,并且P是预期外键F所引用的预期主键。机器学习关系确定系统(MLRDS)计算主键-外键特征,即,通过按升序排列F和P中的数据元素并在P中插入F的所有元素,将由预期外键F和预期主键P表示的两列的秩和归一化。在该示例中,P的数据元素表示为{AB,CD,EF,GH,IJ,KL},并且F的数据元素表示为{AB,EF,IJ}。在P中插入F的所有数据元素时,P并F(P∪F)表示为{AB,AB,CD,EF,EF,GH,IJ,IJ,KL}。MLRDS计算P∪F中每个数据元素的秩如下:AB的秩为(1+2)/2=1.5。类似地,CD、EF、GH、IJ和KL的秩分别为3、4.5、6、7.5和9。MLRDS将归一化秩和计算为秩的总和除以数据元素的总数和预期外键F中的数据元素的数量的乘积。即,MLRDS将归一化秩和计算为31.5/6*3=1.75。MLRDS计算主键-外键特征,即作为预期外键F中的唯一数据元素的数量与预期外键F中的总数据元素的比率的唯一外键比率。MLRDS计算主键-外键特征,即作为预期外键F中的唯一数据元素的总数除以预期主键P中的数据元素的数量的唯一外键份额。
机器学习关系确定系统(MLRDS)计算主键-外键特征,即使用预期主键P和预期外键F的名称之间的Levenshtein距离的名称相似性指数、从预期主键和预期外键的名称获得的前缀匹配分数,以及从预期主键P和预期外键F的名称获得的声音代码分数。考虑预期主键P和预期外键F的名称分别被给出为Np和Nf的示例。Np和Nf之间的Levenshtein距离表示为Ld。Levenshtein距离度量两个名称(例如Np和Nf)之间的相似性。两个名称(Np和Nf)之间的Levenshtein距离是将一个名称Np更改为另一个名称Nf所需的单个字符编辑(即插入、删除或替换)的最小数量。MLRDS将前缀匹配分数Pr计算为Np和Nf中初始匹配字符的数量除以Np和Nf之间较长名称的长度。MLRDS通过在名称字符串Np和Nf上应用Metaphone算法来计算声音代码。Np和Nf的声音代码分别表示为Sp和Sf。声音代码分数Sc是Sp和Sf的前缀分数,并且被给出为前缀分数(Sp,Sf),即Sp和Sf的前缀中的匹配字符的数量除以Sp和Sf之间的较长声音代码的长度。MLRDS计算Levenshtein距离Ld并计算Sp和Sf之间的Levenshtein距离分数Ls,即Ls=1-(Ld)除以Np和Nf之间较长名称的长度。然后,MLRDS将名称相似性指数计算为Ls、Pr和Sc的最大值。
机器学习关系确定系统(MLRDS)通过检查预期主键P的名称或预期外键F的名称是否以预定模式(例如,“KEY”或“ID”)结尾来计算主键-外键特征,即预期主键P和预期外键F的名称模式接受度。如果Np或Nf以“KEY”或“ID”结尾,则MLRDS将名称模式接受值指定为1。如果Np或Nf不以“KEY”或“ID”结尾,则MLRDS将名称模式接受值指定为0。MLRDS计算主键-外键特征,即,通过计算P和F之间的地球移动距离来计算P和F的包含依赖对的分布位移。地球移动距离是区域D上P和F的概率分布之间的距离的量度。MLRDS还计算主键-外键特征,即,作为F中的数据元素的数量和P中的数据元素的数量的比率的P和F的元素计数比率。根据上述方法步骤,使用通用程序的通用计算机不能计算预期主键和预期外键的包含依赖对、训练数据集和验证数据集的主键-外键特征。计算出的主键-外键特征不能确定地决定给定的包含依赖对是否是主键-外键对。MLRDS将计算出的主键-外键特征呈现给机器学习分类算法以生成机器学习模型,该机器学习模型确定给定的包含依赖对是否是主键-外键对。
机器学习关系确定系统(MLRDS)通过使用训练数据集和计算出的训练数据集的主键-外键特征来训练每个机器学习分类算法,来生成对应于训练数据集的经训练的机器学习模型(106)。如本文所使用的,“经训练的机器学习模型”是指由使用计算出的主键-外键特征在训练数据集上训练的机器学习分类算法生成的模型。对于每个机器学习分类算法,MLRDS使用计算出的训练数据集的主键-外键特征来生成对应于每个训练数据集的训练机器学习模型。当机器学习分类算法基于计算出的训练数据集的主键外键特征和相应的预定输出值(即,训练数据集的相应主键-外键标志)进行训练时,获得经训练的机器学习模型。考虑MLRDS将训练数据分割为20个训练数据集的示例。MLRDS在20个训练数据集上训练机器学习分类算法,并生成20个经训练的机器学习模型。根据上述公开的方法步骤,使用通用程序的通用计算机不能通过使用训练数据集和计算出的训练数据集的主键-外键特征训练每个机器学习分类算法来生成与训练数据集相对应的经训练的机器学习模型。
机器学习关系确定系统(MLRDS)使用计算出的验证数据集的的主键-外键特征,在用验证数据集测试与训练数据集相对应的生成的经训练的机器学习模型时,针对每个机器学习分类算法生成经验证的机器学习模型(107)。如本文所使用的,“经验证的机器学习模型”是指针对验证数据集的正验证数据和负验证数据测试的经训练的机器学习模型。考虑一个示例,其中MLRDS使用20个训练数据集生成20个经训练的机器学习模型,并且验证数据集中的预定包含依赖对的数量是60。针对验证数据集中的60个预定包含依赖对来测试20个经训练的机器学习模型。将20个经训练的机器学习模型到验证数据集的测试输出与预期输出(即,验证数据集的预定输出值)列表。
当将20个经训练的机器学习模型到验证数据集中的60个预定包含依赖对的测试输出与验证数据集中的60个预定包含依赖对的预期输出进行比较时,机器学习关系确定系统(MLRDS)计算参数,例如,针对验证数据集中的每个预定包含依赖对的YES计数(YESCOUNT)和%YES。参数YES计数(YES COUNT)是指预测验证数据集中的预定包含依赖对为主键-外键对的经训练的机器学习模型的数量。即,经训练的机器学习模型预测验证数据集中的预定包含依赖对是主键-外键对,并且用“Y”指示预定包含依赖对的主键-外键标志。%YES是指向验证数据集中的预定包含依赖对输出“Y”主键-外键标志的经训练的机器学习模型的百分比。%YES由(YES计数*100)(YES COUNT*100)除以经训练的机器学习模型的总数得出。
针对验证数据集中的预定包含依赖对,经训练的机器学习模型的测试输出和预期输出的四个组合可以如下获得:如果预定包含依赖对的预期输出是YES,并且预定包含依赖对的测试输出是YES,则经训练的机器学习模型的测试输出是真阳性。如果预定包含依赖对的预期输出是YES,并且预定包含依赖对的测试输出是NO,则经训练的机器学习模型的测试输出是假阴性。如果预定包含依赖对的预期输出为NO,并且预定包含依赖对的测试输出是NO,则经训练的机器学习模型的测试输出是真阴性。如果预定包含依赖对的预期输出是NO,并且预定包含依赖对的测试输出是YES,则经训练的机器学习模型的输出是假阳性。经训练的机器学习模型对验证数据集的可能测试输出是真阳性、假阳性、真阴性和假阴性。
在使用验证数据集中的预定包含依赖对测试所生成的经训练的机器学习模型时,机器学习关系确定系统(MLRDS)生成针对每个机器学习分类算法的经验证的机器学习模型。验证数据集中的每个预定包含依赖对具有使用所生成的经训练的机器学习模型的测试输出计算的相应的YES计数(YES COUNT)计数和%YES参数。根据上述公开的方法步骤,使用通用程序的通用计算机在使用计算出的验证数据集的主键-外键特征利用验证数据集来测试与训练数据集相对应的生成的经训练的机器学习模型时,不能针对每个机器学习分类算法生成经验证的机器学习模型。
机器学习关系确定系统(MLRDS)还使用所生成的经验证的机器学习模型为每个机器学习分类算法确定最优算法判定阈值(108)。如本文所使用的,“最优算法判定阈值”是指判定阈值的最优值。此外,如本文所使用的,“判定阈值”是指经验证的机器学习模型的数量,该经验证的机器学习模型对于验证数据集中的预定包含依赖对的输出需要为“Y”以确认包含依赖对是主键-外键对。作为非主键-外键对的包含依赖对由“N”指示。最优算法判定阈值是判定阈值的值,其中经验证的机器学习模型的假阳性输出的数量显著较少,且经验证的机器学习模型的真阳性输出的数量显著较高。%YES参数与预期输出为YES和预期输出为NO的验证数据集的预定包含依赖对的数量一起以从100到0的降序列表。%YES参数是判定阈值。
机器学习关系确定系统(MLRDS)还将验证数据集中的累计YES计数(CUMULATIVEYES COUNT)和累计NO计数(CUMULATIVE NO COUNT)列表。累计YES计数(CUMULATIVE YESCOUNT)表示具有真阳性输出的验证数据集的实例数,并且累计NO计数(CUMULATIVE NOCOUNT)表示具有假阳性输出的验证数据集的实例数。如本文所使用的,“验证数据集的实例”是指验证数据集的预定包含依赖对。100%YES的极端条件对应于仅当所有经验证的机器学习模型输出包含依赖对是主键-外键对时才确认包含依赖对是主键-外键对的判定阈值。0%YES的极端条件对应于确认包含依赖对是主键-外键对,而不管经验证的机器学习模型的输出的判定阈值。MLRDS便于在两个极端条件之间选择最优算法判定阈值,使得假阳性输出的数量最小,而真阳性输出的数量最大。MLRDS将每个机器学习分类算法的所选最优算法判定阈值存储在阈值数据库中。根据上述公开的方法步骤,使用通用程序的通用计算机不能使用所生成的经验证的机器学习模型来确定针对每个机器学习分类算法的最优算法判定阈值。
使用最优算法判定阈值,机器学习关系确定系统(MLRDS)针对每个机器学习分类算法确定预期主键和预期外键的包含依赖对的结果是主键-外键对或非主键-外键对(109)。MLRDS使用计算出的预期主键和预期外键的包含依赖对的主键-外键特征,使预期主键和预期外键的包含依赖对经受经验证的机器学习模型。MLRDS接收经验证的机器学习模型的输出,并基于最优算法判定阈值,MLRDS确定预期主键和预期外键的包含依赖对是主键-外键对还是非主键-外键对。MLRDS迭代确定每个机器学习分类算法的预期主键和预期外键的包含依赖对是主键-外键对还是非主键-外键对的过程。根据上述公开的方法步骤,使用通用程序的通用计算机不能针对每个机器学习分类算法确定预期主键和预期外键的包含依赖对的结果是主键-外键对或非主键-外键对。
然后,机器学习关系确定系统(MLRDS)针对每个机器学习分类算法的确定结果执行多数投票,以确定第一表的所选定的第一列数据和第二表的所选定的第二列数据中的数据之间的主键-外键关系,即,确认在预期主键和预期外键之间存在主键-外键关系(110)。根据上述公开的方法步骤,使用通用程序的通用计算机不能针对每个机器学习分类算法的确定结果执行多数投票,以确定第一表的所选定的第一列数据和第二表的所选定的第二列数据中的数据之间的主键-外键关系。
机器学习分类算法的数量和机器学习分类算法的组合是可配置的。在一个实施方式中,机器学习关系确定系统(MLRDS)选择奇数个机器学习分类算法,用于确定所选定的第一列和所选定的第二列中的数据之间的主键-外键关系。在针对奇数个机器学习分类算法的确定结果执行多数投票时,MLRDS获得明显多数的结果,这使得MLRDS能够快速地确定奇数个机器学习分类算法的最终结果。当具有相同结果的机器学习分类算法的数量大于机器学习分类算法的奇数的50%时,MLRDS获得奇数个机器学习分类算法的明显多数的结果。在另一实施方式中,MLRDS选择偶数个机器学习分类算法,用于确定所选定的第一列和所选定的第二列中的数据之间的主键-外键关系。在针对偶数个机器学习分类算法的确定结果执行多数投票时,MLRDS将不能获得明显多数的结果。在该实施方式中,MLRDS接收偶数个机器学习分类算法的50%的最小限度的选择,以定义来自用户设备的大多数。即,50%或更多偶数的机器学习分类算法的结果定义了多数。
在实现本文公开的方法时,机器学习关系确定系统(MLRDS)生成的最终结果是对目标数据库的表中的数据之间的主键-外键关系的有形确定。主键-外键关系的确定维护了目标数据库中表的引用完整性。通过引用完整性,可以提高目标数据库表中存储的数据的质量。在维护引用完整性的情况下,排除了单独编写表的自定义编程代码,并减少了编程代码中出现bug的可能性。访问目标数据库中的表的应用程序之间的数据引用也将保持一致,从而减少应用程序的开发时间。
在本文公开的方法中,机器学习关系确定系统(MLRDS)确定元数据未被更新或维护的表中的数据之间的主键-外键关系。MLRDS利用机器学习分类算法的组合来确定主键-外键关系。机器学习分类算法识别计算出的训练数据的主键-外键特征中的隐藏模式,并将隐藏模式应用于表的数据以确定主键-外键关系。以这样的方式选择训练数据的主键-外键特征,使得机器学习分类算法在训练数据的所有可能的组合和模式上被训练。主键-外键特征也是相互依赖的。
本文所公开的方法提供了与机器学习相关的计算机相关技术的改进,如下所述:在由机器学习关系确定系统(MLRDS)实现本文所公开的方法时,确定表中数据之间的主键-外键关系,其中目标数据库中表之间的数据流由于任何类型的扰动(例如,删除、插入等)而受到影响,这导致表的元数据不被更新。MLRDS通过排除不满足包含依赖条件的表中的列对,简化了对表的主键和外键的搜索。在排除非包含依赖对时,可能仍然存在大量具有包含依赖项的列对。对于所识别的包含依赖对,MLRDS使用机器学习分类算法的组合来在短时间内对大量包含依赖对进行分类,从而减少人工干预,并利用计算密集型处理器将包含依赖对分类为主键-外键对和非主键-外键对。机器学习分类算法的组合识别已知主键-外键对的隐藏特征,并应用隐藏特征来标识具有主键-外键关系的新包含依赖对。要从目标数据库的表中标识包含依赖对、计算主键-外键特征、使用训练数据集和验证数据集生成经训练和经验证的机器学习模型、确定每个机器学习分类算法的最优算法阈值、确定包含依赖对的结果是主键-外键对或非主键-外键对,并且对每个机器学习分类算法的所确定的结果执行多数投票需要六个或更多单独的计算机程序,这些计算机程序的执行不能由使用通用计算机的人员执行。
输入到机器学习关系确定系统(MLRDS)的数据,例如,用于训练机器学习分类算法的训练数据、用于验证经训练的机器学习模型的验证数据集、识别的包含依赖对、最优判定阈值、以及用于训练的机器学习模型的可接受精度,由MLRDS中的算法来转换、处理和执行。在将训练数据分割成多个训练数据集时,MLRDS转换训练数据以训练机器学习分类算法,以确保每个训练数据集中的正训练数据和负训练数据的适当组合。在计算主键-外键特征(例如,训练数据、验证数据集和所识别的包含依赖对的名称相似度指数)时,MLRDS使用Metaphone算法将训练数据、验证数据集和所识别的包含依赖对,例如转换成相应的声音代码。MLRDS将最优算法判定阈值转换为整数个经验证的机器学习模型,其对验证数据集中的预定包含依赖对的输出为“Y”,以确认预定包含依赖对是主键-外键对。MLRDS使用整数个经验证的机器学习模型来确定来自目标数据库的表的所识别的包含依赖对的结果是主键-外键对或非主键-外键对。MLRDS将经训练的机器学习模型的可接受精度从百分比值转换为整数,以在使用经训练的机器学习模型针对验证数据集进行验证时,将经训练的机器学习模型的输出与验证数据集中的预期输出进行比较。所确定的主键-外键关系控制目标数据库中数据的任何转换。
要全面了解目标数据库中的数据,了解架构中不同列中的数据之间的关系是很重要的。其中一个关系是主键-外键关系。如果关于架构的显式信息不可用,那么确定大型目标数据库架构中列之间的主键-外键关系就很困难。包含依赖的前提条件在一定程度上解决了为确定主键-外键关系而对目标数据库的每对列进行求值的问题,但该问题对于主键-外键关系的手动确定仍然是重要的。机器学习分类算法识别已知主键-外键对的隐藏特征并应用相同的特征以确定所识别的包含依赖对之间的主键-外键关系。在实现了机器学习分类算法的组合时,机器学习关系确定系统(MLRDS)提高了确定目标数据库中的数据之间的主键-外键关系的预测精度和计算时间。这是因为某些机器学习分类算法比其他算法更优选地适合于特定类型的数据,并且允许识别和学习数据中的某些模式。本文所公开的方法提供了一种利用适当的主键-外键特征和适当的机器学习分类算法的组合来确定目标数据库中的数据之间的主键-外键关系的专用方法。通过确定目标数据库中的数据之间的主键-外键关系,MLRDS解决了检测目标数据库中的数据流或其他数据分析的问题,例如,在短时间内以改进的精确度确定执行报告中的信息源。
图2示例性地示出了包括由机器学习关系确定系统(MLRDS)执行的用于训练和验证机器学习分类算法以及用于确定目标数据库的多个表中的数据之间的主键-外键关系的步骤的流程图。MLRDS接收训练数据并将训练数据分割成多个训练数据集201。MLRDS还从源数据库接收验证数据集203。MLRDS使用训练数据集201作为训练202机器学习分类算法的输入。在训练202的机器学习分类算法中,MLRDS生成如图1A至图1B的详细描述中所公开的经训练的机器学习模型。MLRDS使用验证数据集203中的预定包含依赖对对照验证数据集203验证204所生成的经训练的机器学习模型。
机器学习关系确定系统(MLRDS)确定205训练的机器学习模型是否具有可接受的精度。经训练的机器学习模型的精度是指当与验证数据集203中包含依赖对的预期输出相比较时,经训练的机器学习模型针对验证数据集203中包含依赖对的主键-外键关系进行正确预测的次数。在一个实施方式中,MLRDS的用户为经训练的机器学习模型配置可接受的精度。如果经训练的机器学习模型针对验证数据集203表现出可接受的精度,则MLRDS从经训练的机器学习模型生成经验证的机器学习模型206。如果针对验证数据集203,经训练的机器学习模型没有表现出可接受的精度,则MLRDS重新训练经训练的机器学习模型,直到满足可接受的精度205。即,在针对验证数据集203测试所生成的经训练的机器学习模型时,当所生成的与训练数据集201相对应的经训练的机器学习模型满足预定标准(即,可接受的精度)时,MLRDS针对每个机器学习分类算法202生成经验证的机器学习模型206。MLRDS在训练数据集201上重新训练所生成的经训练的机器学习模型,直到所生成的经训练的机器学习模型满足预定标准,即,可接受的精度,用于为每个机器学习分类算法202生成经验证的机器学习模型206。MLRDS将使用数据207(即目标数据库的表中的数据)输入到经验证的机器学习模型206。经验证的机器学习模型206输出使用结果208,即目标数据库的表中的使用数据207之间所确定的主键-外键关系。经验证的机器学习模型206确定使用数据207是主键-外键对还是非主键-外键对。
图3A至图9示例性地示出了机器学习关系确定系统(MLRDS)通过机器学习来确定目标数据库的表301和表302中的数据之间的主键-外键关系的示例。
图3A至图3B示例性地示出了目标数据库的两个表301和302,其具有要确定其主键-外键关系的相应列301a、301b、301c、302a、302b和302c。为了在表301和302之间存在主键-外键关系,表301和302的列301a、301b、301c、302a、302b和302c必须满足包含依赖性的条件,如图1A至图1B的详细描述中所公开的。机器学习关系确定系统(MLRDS)从表301中选择列301a并且从表302中选择列302a。MLRDS确定列302a中的所有数据元素是否存在于列301a中。由于列302a中的所有数据元素不是列301a中的数据元素的子集,所以列302a与列301a没有包含依赖。MLRDS分别从表301和表302中选择列301a和列302b。列302b中的数据元素是列301a中的数据元素的子集。因此,列301a和列302b满足包含依赖的条件,即使列301a和列302b的名称不同。因此,MLRDS将列301a标识为预期主键,并将列302b标识为预期外键,并且表301和302分别是预期父表和预期子表。
机器学习关系确定系统(MLRDS)从源数据库接收包括主键-外键对和非主键-外键对的多个预定包含依赖对。主键-外键对分类为正训练数据和正验证数据。非主键-外键对分类为负训练数据和负验证数据。正训练数据和负训练数据用于训练所选机器学习分类算法中的每一个,并且正验证数据和负验证数据用于验证所选机器学习分类算法中的每一个。考虑MLRDS接收包括正训练数据和负训练数据的2050个预定包含依赖对作为训练数据以训练机器学习分类算法的示例。在2050个预定包含依赖对中,50个预定包含依赖对构成正训练数据,并且2000个预定包含依赖对构成负训练数据。MLRDS将正训练数据和负训练数据分割为多个训练数据集。
图4示例性地示出了将正训练数据和负训练数据分割成多个训练数据集401a、401b、401c、401d、…和401t的示意图。机器学习关系确定系统(MLRDS)在每个训练数据集401a、401b、401c、401d、…和401t中将正训练数据与负训练数据的比率确定为1:2。MLRDS将训练数据401分割成(2000)/(50*2)=20个训练数据集401a、401b、401c、401d、…和401t。训练数据集401a、401b、401c、401d、…和401t中的每一个具有50个主键-外键对和100个非主键-外键对。MLRDS还接收验证数据作为验证数据集,该验证数据集包括1200个预定包含依赖对,如图5中示例性示出的。1200个预定包含依赖对被分类为50个主键-外键对和1150个非主键-外键对。50个主键-外键对构成正验证数据,并且1150个非主键-外键对构成负验证数据。
机器学习关系确定系统(MLRDS)计算从图3A中的表301和表302识别的预期主键和预期外键的包含依赖对的多个主键-外键特征。MLRDS还计算训练数据集和验证数据集中的预定包含依赖对的主键-外键特征。MLRDS使用机器学习分类算法(例如,J48算法、k-最近邻算法、随机森林算法、朴素贝叶斯算法、支持向量机模型等)的组合,用于从表301和表302中识别的预期主键和预期外键的包含依赖对中识别主键-外键对和非主键-外键对。MLRDS在计算出的训练数据集的主键-外键特征上训练每个机器学习分类算法。机器学习分类算法从训练数据集中计算出的主键-外键特征的模式中学习。对于图4中示例性示出的训练数据集401a、401b、401c、401d、…和401t中的每一个,MLRDS生成经训练的机器学习模型,机器学习分类算法(例如,随机森林算法)在该训练数据集上被训练。因此,MLRDS生成20个经训练的随机森林模型。MLRDS针对验证数据集测试20个经训练的随机森林模型。
图5示例性地示出了表501,其包含在针对验证数据集测试20个经训练的随机森林模型时通过机器学习关系确定系统(MLRDS)获得的经训练的机器学习模型(即,20个经训练的随机森林模型)的测试输出。在表501中,列示例(INSTANCE)引用实例标识符(ID),并且列实际结果(ACTUAL RESULT)指示实例是否为实际的主键-外键对。对于验证数据集的每个实例,MLRDS将基于计算出的验证数据集的主键-外键特征而获得的20个经训练的随机森林模型的测试输出与预期输出列表。MLRDS针对验证数据集的每个实例计算参数YES计数(YESCOUNT)和%YES。在表501中,主键-外键标志“Y”指示经训练的随机森林模型的YES输出,而主键-外键标志“N”指示经训练的随机森林模型的NO输出。
考虑图5中示例性示出的验证数据集的实例2。如表501的YES计数(YES COUNT)列中所示,输出“Y”的经训练的随机森林模型的数量是4。机器学习关系确定系统(MLRDS)将%YES参数计算为(YES计数*100)(YES COUNT*100)除以经训练的随机森林模型的总数=4*100/20=20%,如表501的%YES列所示。以类似的方式,MLRDS针对验证数据集中的所有1200个预定包含依赖对计算参数YES计数(YES COUNT)和%YES。MLRDS重新训练随机森林模型,直到在用验证数据集测试随机森林模型时经训练的随机森林模型表现出可接受的精度。使用可接受的精度,MLRDS生成经验证的随机森林模型。使用经验证的随机森林模型,MLRDS确定用于确定从图3A中示例性示出的表301和表302中识别的包含依赖对是主键-外键对还是非主键-外键对的最优算法判定阈值。
图6示例性地示出了包含验证数据集的实例数量的表601,该表601定义了验证数据集的实例之间的主键-外键关系,用于使用经验证的机器学习模型,即图5的详细描述中公开的20个经验证的随机森林模型来确定最优算法判定阈值。机器学习关系确定系统(MLRDS)针对表601中的每个%YES值,在列计数实际(COUNT ACTUAL)“YES”下,用经验证的随机森林模型的真阳性输出来列表验证数据集的实例的数量。MLRDS还针对表601中的每个%YES值,在列计数实际(COUNT ACTUAL)“NO”下,用经验证的随机森林模型的假阳性输出来列表验证数据集的实例的数量。对于表601中的100%YES值,其中所有20个经训练的随机森林模型的测试输出为“Y”的实例的总数,如表601中的列计数(COUNT)所示为5。在5个实例中,预期输出也是“Y”的实例的数量是4,如表601中的列计数实际(COUNT ACTUAL)“YES”中所示。在剩余的1个实例中,预期输出是“N”,而20个经训练的随机森林模型的测试输出是“Y”,如表601中的列计数实际(COUNT ACTUAL)“NO”中所示。20个经训练的随机森林模型对验证数据集的剩余的1个实例的主键-外键预测不准确。类似地,MLRDS以降序在从0至100的范围内将图5中表501中示例性示出的%YES列下的所有值的计数实际(COUNT ACTUAL)“YES”和计数实际(COUNT ACTUAL)“NO”参数列表。MLRDS还计算从100%至0%的每个%YES参数的列计数实际(COUNT ACTUAL)“YES”和列计数实际(COUNT ACTUAL)“NO”中的值的累积数量。
图7示例性地示出了包含验证数据集的实例的累积数量的表701,该表701定义了验证数据集的实例之间的主键-外部关系,用于使用经验证的随机森林模型来确定最优算法判定阈值。对于%YES的值,在表701的列累计的“YES”(CUMULATIVE“YES”)中指示对于其经训练的随机森林模型的测试输出为真阳性的验证数据集的实例的累积数量。对于%YES的值,在表701中的列累计的“NO”(CUMULATIVE“NO”)中指示对于其经训练的随机森林模型的测试输出为假阳性的验证数据集的实例的累积数量。如图6的详细描述中所公开的,对于%YES值100,列累计“YES”(CUMULATIVE“YES”)中的值是4,因为列计数实际“YES”(COUNTACTUAL“YES”)中的值是4,并且列累计“NO”(CUMULATIVE“NO”)中的值是1,因为列计数实际“NO”(COUNT ACTUAL“NO”)中的值是1。对于YES%50,计数(COUNT)为220,列计数实际“YES”(COUNT ACTUAL“YES”)的值为70,并且列计数实际“NO”(COUNT ACTUAL“NO”)的值为150。列累计“YES”(CUMULATIVE“YES”)的值为4+70=74,并且列累计“NO”(CUMULATIVE“NO”)的值为1+150=151。机器学习关系确定系统(MLRDS)使用验证数据集的实例的累积数量确定%YES的最优值,其中经验证的机器学习模型的真阳性输出的数量更多,同时经验证的机器学习模型的假阳性输出的数量降低。%YES是判定阈值,并且%YES的最优值是最优算法判定阈值。
图8示例性地示出了用于使用经验证的随机森林模型来确定最优算法判定阈值的示意性表示。机器学习关系确定系统(MLRDS)便于在0和100的极端条件之间选择%YES的最优值。如图8中示例性示出的,随着%YES从100%减少到0%,真阳性输出的数量和假阳性输出的数量减少。选择最优算法判定门限,使得真阳性输出的数量的损失尽可能小,并且尽可能地减少假阳性输出的数量。为了减少假阳性输出的数量,降低了%YES的值,但也降低了要避免的真阳性输出的数量。因此,最优算法判定阈值被选择为%YES水平,其中向下一个%YES值的轻微跳跃将导致真阳性输出数量的显著损失,或者导致减少假阳性输出数量的最小增益。对于大于40的%YES值,真阳性输出的数量更多,同时假阳性输出的数量也会增加。对于小于40的%YES值,真阳性输出的数量会减少,同时假阳性输出的数量也会减少。然而,对于小于40的%YES值,3个真阳性输出丢失,代价是假阳性输出的数量没有减少。因此,%YES为40的值是%YES的最优值,其中以2个真阳性输出为代价,1970个假阳性输出被排除。%YES为40是最优算法判定阈值。即,如果至少40*20/100=8个经验证的随机森林模型预测从图3A中示例性示出的表301和表302标识的,图3B中示例性示出的包含依赖对301a和302b作为主键-外键对,则针对包含依赖对301a和302b的随机森林算法的结果为“Y”。
机器学习关系确定系统(MLRDS)输入图3B中示例性示出的所识别的包含依赖对301a和302b,其中计算出的主键-外键特征被输入到机器学习分类算法的经验证的机器学习模型。使用最优算法判定阈值,经验证的机器学习模型针对每个机器学习分类算法确定所识别的包含依赖对301a和302b的结果。MLRDS针对每个机器学习分类算法对所识别的包含依赖对301a和302b的结果执行多数投票。
图9示例性地示出了示出针对每个机器学习分类算法的所识别的包含依赖对301a和302b的结果的多数投票的流程图。机器学习关系确定系统(MLRDS)对J48算法901、k-最近邻算法902、随机森林算法903、朴素贝叶斯算法904和支持向量机模型905的结果进行多数投票906,以确定图3A至图3B中示例性示出的表301的列301a和表302的列302b中的数据之间的主键-外键关系。机器学习分类算法901、902、903、904和905的多数结果提供由主键-外键标志“Y”或“N”针对图3B中示例性示出的所识别的包含依赖对301a和302b之间的主键-外键关系指示的最终结果907。
图10A至图21示例性地示出了机器学习关系确定系统(MLRDS)通过机器学习来确定目标数据库的表1001a和1001b中的数据之间的主键-外键关系的另一示例。
图10A至图10B示例性地示出了目标数据库的两个表T1 1001a和T21001b,其具有要确定其主键-外键关系的相应列。机器学习关系确定系统(MLRDS)采用至少一个处理器,该处理器被配置为执行用于确定表T11001a和T21001b中的数据之间的主键-外键关系的计算机程序指令。表T1 1001a是具有五个列(例如,EMP_ID、EMP_FIRST_NAME、姓氏、加入日期和经历年限)的雇员信息表。表T2 1001b是具有四个列(例如CHECKUP_ID、EMP_CODE、CHECKUP_DATE和测试数量)的医学检查信息。MLRDS从表T1 1001a和T2 1001b中选择列对以检查表T1 1001a和T2 1001b之间的包含依赖的条件。MLRDS从表T1 1001a中选择第一列(例如,EMP_ID),并且从表T2 1001b中选择第二列(例如,EMP_CODE)。因为列EMP_CODE中的所有数据元素是列EMP_ID中的数据元素的子集,所以列对(T1.EMP_ID,T2.EMP_CODE)满足包含依赖对的条件,并且因此可以具有主键-外键关系。MLRDS将列EMP_ID标识为预期主键,并将列EMP_CODE标识为预期外键。然后MLRDS从表T1 1001a中选择列EMP_ID并从表T2 1001b中选择列“测试数量”。MLRDS确定列对(T1.EMP_ID,T2.NO.OF TEST(测试数量))是否形成包含依赖对。因为列“测试数量”中的所有数据元素不是列EMP_ID中的数据元素的子集,所以列对(TL.EMP_ID,T2.NO.OF TEST(测试数量))不形成包含依赖对,并且因此不能是主键-外键对。类似地,MLRDS识别来自表T1 1001a和T2 1001b的所有包含依赖对。MLRDS从源数据库接收多个预定包含依赖对,该多个预定包含依赖对包括被分类为正训练数据和正验证数据的主键-外键对和被分类为负训练数据和负验证数据的非主键-外键对。
图11示例性地示出了来自包含训练数据的源数据库的表1101。机器学习关系确定系统(MLRDS)接收包括满足包含依赖条件的列对的训练数据,并标识为来自源数据库的主键-外键对和非主键-外键对。如图11中示例性示出的,表1101包含六列,例如训练数据的ID、TABLE_NAME_P、COLUMN_NAME_P、TABLE_NAME_D、COLUMN_NAME_D和PK-FK FLAG。列TABLE_NAME_P是包含主键COLUMN_NAME_P的表的属性。列TABLE_NAME_D是包含外键COLUMN_NAME_D的表的属性。列TABLE_NAME_P和TABLE_NAME_D中的数据元素分别是父表和子表的名称。列COLUMN_NAME_P和COLUMN_NAME_D中的数据元素分别是父表和子表中包含的主键和外键的名称。PK-FK标志是主键-外键标志,其标识由(TABLE_NAME_P.COLUMN_NAME_P,TABLE_NAME_D.COLUMN_NAME_D)给出的预定包含依赖对作为主键-外键对或非主键-外键对。主键-外键对用“Y”指示,且非主键-外键对用“N”指示。列ID标识实例,即训练数据中的预定包含依赖对。在表1101中,1628个实例可用于训练多个机器学习分类算法。主键-外键对的数量(即,正训练数据是37),由主键-外键标志标识为“Y”。剩余1591个实例是非主键-外键对(即负训练数据),由主键-外键标志指示为“N”。如图13中详细描述所公开的,MLRDS将表1101中的正训练数据和负训练数据分割为多个训练数据集。MLRDS还从源数据库接收包括主键-外键对和非主键-外键对的验证数据集。
图12示例性地示出了来自包含验证数据集的源数据库的表1201。验证数据集包含被分类为正验证数据和负验证数据的预定包含依赖对。在名为PK-FK标志的列中,正验证数据由“Y”标识为主键-外键标志,并且在名为PK-FK标志的列中,负验证数据由“N”标识为主键-外键标志。表1201中的验证数据集中的预定包含依赖对的总数是580。在580个预定的包含依赖对中,主键-外键对的数量是20。剩余的560个预定包含依赖对是非主键-外键对。
图13示例性地示出了示出将表1301中指示的训练数据分割成多个训练数据集1301a、1301b、1301c、1301d、1301e、1301i和130lj的示意图。根据图11中示例性示出的训练数据,由于构成正训练数据的主键-外键对的数量为37,且构成负训练数据的非主键-外键对的数量为1591,因此机器学习关系确定系统(MLRDS)将负训练数据分割成多个训练数据集1301a、1301b、1301c、1301d、1301e、1301i和1301j,并将正训练数据添加到每个训练数据集1301a、1301b、1301c、1301d、1301e、1301i和1301j。训练数据集中的正训练数据与负训练数据的比率是预定的,例如1:4。因此,训练数据被分割成1591/(37*4)=10.75个训练数据集1301a、1301b、1301c、1301d、1301e、1301i和1301j。四舍五入到最接近的整数,MLRDS将图11中示例性示出的表1101中的训练数据分割成9个训练数据集1301a、1301b、1301c、1301d、1301e、1301i,每个训练数据集具有构成负训练数据的148个非主键-外键对和构成正训练数据的37个主键-外键对。最后的训练数据集1301j具有构成负训练数据的259个非主键-外键对和构成正训练数据的37个主键-外键对,因为MLRDS将剩余的111个非主键-外键对添加到了最后的训练数据集1301j中的148个非主键-外键对。MLRDS针对表1101中的训练数据、表1201中的验证数据集以及针对从图10A至图10B中示例性示出的表T1 1001a和T2 1001b标识的预期主键和预期外键的包含依赖对计算多个主键-外键特征,如图1A至1B的详细描述中公开的。
图14A至图14B示例性地示出了包含图11示例性地示出的表1101的训练数据的表1401,其中通过机器学习关系确定系统(MLRDS)针对训练数据计算主键-外键特征。MLRDS针对实例(如图1A至图1B的详细描述所公开的,表1101中的训练数据中的预定包含依赖对)计算主键-外键特征,主键-外键特征包括,例如归一化秩和、唯一外键比率、唯一外键份额、名称模式接受度、名称相似性指数、元素计数比率和分布位移实例。
图15A至图15B示例性地示出了包含图12示例性地示出的表1201的验证数据集的表1501,其中通过机器学习关系确定系统(MLRDS)针对验证数据集计算主键-外键特征。MLRDS计算所有实例(即表1201中的验证数据集中的预定包含依赖对)的主键-外键特征并生成表1501。MLRDS使用机器学习分类算法(例如J48算法、k-最近邻算法、朴素贝叶斯算法、随机森林算法、贝叶斯网络模型、多层感知器模型、支持向量机模型等)的组合,用于从根据图10A至图10B中示例性示出的表T11001a和T2 1001b标识的预期主键和预期外键的包含依赖对中识别主键-外键对和非主键-外键对。
图16示例性地示出了包括由机器学习关系确定系统(MLRDS)执行的针对机器学习分类算法(例如,J48算法1600)的用于生成经验证的机器学习模型(例如,1601a、1602a、1603a、1604a、1605a、…、1609a和1610a)的步骤的流程图。MLRDS通过使用训练数据集1301a、1301b、1301c、1301d、1301e、…、1301i和1301j以及计算出的训练数据集1301a、1301b、1301c、1301d、1301e、…、1301i和1301j的主键-外键特征来训练机器学习分类算法中的每一个,来生成对应于图13中示例性示出的训练数据集1301a、1301b、1301c、1301d、1301e、…、1301i和1301j的经训练的机器学习模型。例如,MLRDS针对图14A至图14B示例性示出的表1401中的主键-外键标志的预定输出值,根据计算出的10个训练数据集1301a、1301b、1301c、1301d、1301e、…、1301i和1301j的主键-外键特征中的趋势和模式训练J48算法1600,并生成10个经训练的J48模型。一旦训练完成,MLRDS根据验证数据集1611验证10个经训练的J48模型。
在使用验证数据集1611和计算出的验证数据集1611的主键-外键特征来测试与训练数据集1301a、1301b、1301c、1301d、1301e、…、1301i和1301j相对应的生成的经训练的机器学习模型时,机器学习关系确定系统(MLRDS)针对每个机器学习分类算法生成经验证的机器学习模型。如图16中示例性示出的,将图15A至图15B中示例性示出的表1501中的验证数据集1611输入到10个经训练的J48模型。基于J48算法1600对表1401中的训练数据的训练,10个经训练的J48模型预测表1501中的验证数据集1611的实例的主键-外键关系。如果10个经训练的J48模型的测试输出满足可接受精度,则MLRDS将10个经训练的J48模型存储为经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a。MLRDS对照表1501中的验证数据集1611的预期输出来验证表1501中的验证数据集1611的10个经训练的J48模型的测试输出。例如,MLRDS针对相同的验证数据集1611验证所有经训练的J48模型,并且在验证时表现出超过50%的可配置精度的经训练的J48模型被存储为经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a。MLRDS对另外4种机器学习分类算法重复训练和验证,得到50个经验证的机器学习模型,即针对每种机器学习分类算法的10个经验证的机器学习模型。然后,MLRDS使用所生成的经验证的机器学习模型为每个机器学习分类算法确定最优算法判定阈值。
图17示例性地示出了包含经训练的机器学习模型的输出的表1701,即,在对照图16中示例性示出的验证数据集1611验证经训练的机器学习模型时,由机器学习关系确定系统(MLRDS)获得的经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a。MLRDS根据图15A至图15B中示例性示出的表1501独立于验证数据集1611的实例生成关于测试10个经训练的J48模型的表1701,并且收集10个经训练的J48模型的测试输出。表1701包含10个经训练的J48模型到验证数据集1611的测试输出,以及由图14A至图14B中示例性示出的表1401中的主键-外键标志给出的10个经训练的J48模型的预期输出。MLRDS还将验证数据集1611的每个实例的YES计数(YES COUNT)参数与由(YES计数)*100/10((YES COUNT)*100/10)个经训练的J48模型的总数给出的%YES参数一起列表。
考虑用ID 10001标识的表1701中的第一实例。10个经训练的J48模型在表1701中标识为M1、M2、M3、M4、M5、M6、M7、M8、M9和M10。该实例的10个经训练的J48模型的预期输出由表1701中的列实际PK-FK标记(ACTUAL PK-FK FLAG)给出。对于ID 100001,实际PK-FK标记(ACTUAL PK-FK FLAG)为“N”。经训练的J48模型M1、M2、M3、M4、M5、M6、M7、M8、M9和M10分别将表1701中的验证数据集1611中的第一实例ID 10001的主键-外键关系预测为“N”、“N”、“Y”、“Y”、“N”、“N”、“N”、“Y”、“N”和“N”。机器学习关系确定系统(MLRDS)将实例ID 100001的YES计数(YES COUNT)参数计算为3,因为经训练的J48模型的测试输出中的“Y”的数量是3。MLRDS计算%YES参数为3*100/10=30%。经训练的J48模型M1输出“N”,并且由于在实例ID100001中的预期输出也是“N”,因此经训练的J48模型M1的测试输出是假阳性。考虑具有ID 100004的实例,其中预期输出为“Y”。经训练的J48模型M1输出“Y”。经训练的J48模型M1的输出是一个真阴性,因为测试输出和预期输出都是“Y”。对于实例ID 100004,经训练的J48模型M3输出“N”,并且由于预期输出为“Y”,因此经训练的J48模型M3的测试输出为假阴性。MLRDS将验证数据集1611的实例的数量列表为图16中示例性示出的经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的真阳性输出和假阳性输出。MLRDS还针对范围从100%至0%的每个%YES参数,计算并列表经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的真阳性输出和假阳性输出的累积数量,如图18A至图18C中示例性示出的。
图18A至图18C示例性地示出了包含在图16中示例性地示出的验证数据集1611的实例的累积数量的表1801,其定义了验证数据集1611的实例之间的主键-外键关系,用于使用经验证的机器学习模型来确定最优算法判定阈值,即在图16中示例性地示出的经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a。如图18A中示例性示出的,具有%YES为100的实例的数量是1。因此,表1801的列“示例计数”(INSTANCE COUNT)中的针对%YES为100的值为1。验证数据集1611的其中10个经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的测试输出为真阳性的实例的数量为1,并且在表1801的列“实际Y”(ACTUAL Y)中指示。验证数据集1611的其中10个经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的测试输出为假阳性的实例的数量为0,并且在表1801的列“实际N”(ACTUAL N)中指示。“累计Y”(CUMULATIVE Y)是表1801中列“实际Y”(ACTUAL Y)中的值的总和。“累计N”(CUMULATIVE N)是表1801中列“实际N”(ACTUAL N)中的值的总和。“累计Y”(CUMULATIVE Y)指示经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的真阳性输出数。“累计N”(CUMULATIVE N)指示经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的假阳性输出数。机器学习关系确定系统(MLRDS)使用“累计Y”(CUMULATIVE Y)值和“累计N”(CUMULATIVE N)值,以确定最优算法判定阈值。“累计Y”(CUMULATIVE Y)的最大可能值是20,因为如图12的描述中所公开的,表1201中的验证数据集1611中具有预期输出“Y”的实例的数量是20。“累计N”(CUMULATIVEN)的最大可能值是560,因为表1201中的验证数据集1611中具有预期输出“N”的实例的数量是560。MLRDS为针对每个机器学习分类算法生成的经验证的机器学习模型生成表1801。
图19示例性地示出了用于使用经验证的机器学习模型(即图16中示例性地示出的经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a)来确定最优算法判定阈值的示意性表示。在表1901中,当针对%Yes为100时,“累计Y”(CUMULATIVE Y)和“累计N”(CUMULATIVE N)的值分别为1和0。针对%YES为0%的真阳性输出数为20,且假阳性输出数为560。考虑%YES为30%,其中18个为真阳性输出,且56个为假阳性输出。%Yes为30%是判定阈值,其确认从图10A至图10B中示例性示出的表T1 1001a和T2 1001b标识的预期主键和预期外键的包含依赖对为主键-外键对,仅当经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的数量的30%输出包含依赖对为主键-外键对时才为主键-外键对。由于经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的数量是10,因此判定阈值是3或3以上的经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a必须输出包含依赖对是主键-外键对,以确认包含依赖对是主键-外键对。
当%Yes为0%时,机器学习关系确定系统(MLRDS)捕获20个真阳性输出和560个假阳性输出。过滤560个假阳性输出是一项繁琐的任务,因为假阳性输出指示将主键-外键对不准确地预测为非主键-外键对,反之亦然。针对%YES为10%,即,如果至少一个经验证的J48模型1601c输出“Y”,则MLRDS捕获图16中示例性示出的验证数据集1611的所有580个实例,作为具有20个真阳性输出和560个假阳性输出的“Y”。还有一些伪预测,其过滤是一项繁琐的任务。针对%YES为30%,真阳性输出数为18,且假阳性输出数为56。在验证数据集1611中的20个真阳性实例中,2个实例丢失,而56个假阳性输出是可管理的。针对%YES为31%,有28个假阳性输出和3个真阳性输出丢失。通过比较%YES为31%和%YES为30%,机器学习关系确定系统(MLRDS)允许用户手动选择30%作为最优%YES,因为丢失真阳性输出比减少假阳性输出更不理想。即,在试图避免主键-外键关系的错误预测的同时,主键-外键关系的正确预测丢失。通过比较不同%YES值下的真阳性输出数和假阳性输出数,选择最优算法判定阈值为30%。当要通过10个经验证的机器学习模型(例如,1601a、1602a、1603a、1604a、1605a、…、1609a和1610a)对新实例进行分类时,仅当10个经验证的机器学习模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a中的至少30%(即3个)对实例说“Y”时,MLRDS才输出“Y”。经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a中的至少3个的预测被认为是正确的,并且MLRDS确认预测的主键-外键关系作为从图10A至图10B中示例性示出的表T1 1001a和T2 1001b标识的包含依赖对的主键-外键关系。MLRDS为每个机器学习分类算法确定最优算法判定阈值,并将确定的最优算法判定阈值存储在阈值数据库中。
经验证的J48型号1601a、1602a、1603a、1604a、1605a、…、1609a和1610a和最优算法判定阈值3可用于确定从表T1 1001a和T2 1001b标识的包含依赖对之间的主键-外键关系。机器学习关系确定系统(MLRDS)使用所确定的最优算法判定阈值和所计算出的从表T11001a和T2 1001b标识的预期主键和预期外键的每个包含依赖对的主键-外键特征,来确定针对每个机器学习分类算法每个包含依赖对的结果是主键-外键对或非主键-外键对。MLRDS将计算出的从表T1 1001a和T2 1001b标识的包含依赖对的主键-外键特征输入到10个经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a中。10个经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a将主键-外键关系的预测输出为“Y”和“N”,并且MLRDS将该预测列表。
图20示例性地示出了表2001,其示出了从图10A至图10B中所示的表T1 1001a和T21001b标识的包含依赖对的结果,包含依赖对是由机器学习关系确定系统(MLRDS)使用最优算法判定阈值生成的主键-外键对或非主键-外键对。考虑一个示例,其中从表T1 1001a和T2 1001b中标识15个包含依赖对。对于每个包含依赖对,MLRDS将图16中示例性示出的经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的输出列表。MLRDS计算每个包含依赖对的YES COUNT。例如ID 1,经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a输出“Y”、“N”、“N”、“Y”、“N”、“N”、“N”、“Y”、“N”和“N”。“YES计数”(YES COUNT)为3。由于最优算法判定阈值是3,所以MLRDS确认用“Y”主键-外键标志指示的经验证的J48模型1601a、1602a、1603a、1604a、1605a、…、1609a和1610a的YES输出,并生成结果“Y”,确认具有ID 1的包含依赖对是主键-外键对。对于实例ID 4,“YES计数”(YESCOUNT)为1,因为“YES计数”(YES COUNT)小于最优算法判定阈值,所以MLRDS生成结果“N”,确认ID 4的包含依赖对是非主键-外键对。对于实例ID 3,“YES计数”(YES COUNT)为8。因为“YES计数”(YES COUNT)大于最优算法判定阈值,因此MLRDS生成结果“Y”,确认ID 3的包含依赖对是主键-外键对。MLRDS为针对其它机器学习分类算法(例如,随机森林算法、朴素贝叶斯算法、k-最近邻算法和支持向量机模型)中的每一个生成的经验证的机器学习模型生成类似的表。MLRDS为从表T1 1001a和T2 1001b标识的每个包含依赖对列出五个机器学习分类算法的结果。
图21示例性地示出了包含从图10A至图10B所示的表T1 1001a和T2 1001b标识的包含依赖对的最终结果的表2101,包含依赖对是由机器学习关系确定系统(MLRDS)在对图20所示的结果执行多数投票时生成的主键-外键对或非主键-外键对。MLRDS对机器学习分类算法的结果执行多数投票,并在表2101中的列“Y投票”(Y VOTE)中列表投票结果。例如ID4,J-48算法、朴素贝叶斯算法、k-近邻算法、随机森林算法和支持向量机模型的结果分别为“N”、“Y”、“Y”、“N”和“N”。在执行多数投票时,MLRDS确定输出为“Y”的机器学习分类算法的数量为2,这小于输出为“N”的机器学习分类算法的数量。由于大多数是输出为“N”的机器学习分类算法的数量,MLRDS确认具有ID 4的包含依赖对是非主键-外键对。例如ID 5,J-48算法、朴素贝叶斯算法、k-近邻算法、随机森林算法和支持向量机的结果分别是“Y”、“Y”、“N”、“Y”和“Y”。在执行多数投票时,MLRDS确定输出为“Y”的机器学习分类算法的数量为4,这大于输出为“N”的机器学习分类算法的数量。由于大多数是输出为“Y”的机器学习分类算法的数量,MLRDS确认具有ID 5的包含依赖对是主键-外键对。类似地,针对从表T1 1001a和T21001b标识的所有15个包含依赖对确定主键-外键关系。
图22示例性地示出了包括机器学习关系确定系统(MLRDS)2201的系统2200,机器学习关系确定系统(MLRDS)2201用于通过机器学习确定目标数据库2212的多个表中的数据之间的主键-外键关系。MLRDS2201是可使用高级计算机编程语言编程的计算机系统。在一个实施方式中,MLRDS 2201使用编程和目的性硬件。MLRDS 2201在计算设备(例如,个人计算机、平板计算设备、移动计算机、便携式计算设备、膝上型计算机、以触摸为中心的设备、工作站、服务器、便携式电子设备、网络使能的计算设备、交互式网络使能的通信设备、任何其他合适的计算设备、多个计算设备的组合等)上实现。MLRDS 2201经由网络2215(例如,短程网络或远程网络)与用户设备2214通信。用户设备2214是电子设备,例如,个人计算机、平板计算设备、移动计算机、移动电话、智能电话、便携式计算设备、个人数字助理、膝上型计算机、可穿戴计算设备(例如谷歌公司的Google 苹果公司的Apple 等),以触摸为中心的设备、客户设备、便携式电子设备、网络使能计算设备、交互式网络使能通信设备、任何其他合适的计算设备、多个计算设备的组合等。在一个实施方式中,用户设备2214是组合多个设备的功能的混合计算设备。混合计算设备的示例包含包括媒体播放器功能的蜂窝电话、包括无线通信能力的游戏设备、包括文档读取器和多媒体功能的蜂窝电话,以及具有网络浏览、文档呈现和网络通信能力的便携式设备。
网络2215例如是因特网、内联网、有线网络、无线网络,实现Bluetooth Sig公司的的通信网络、实现Wi-Fi联盟企业的的网络、超宽带通信网络(UWB)、无线通用串行总线(USB)通信网络、实现ZigBe联盟企业的的通信网络、通用分组无线业务(GPRS)网络、移动电信网络(诸如全球移动(GSM)通信网络、码分多址(CDMA)网络、第三代(3G)移动通信网络、第四代(4G)移动通信网络、第五代(5G)移动通信网络、长期演进(LTE)移动通信网络、公用电话网络等)、局域网、广域网、因特网连接网络、红外通信网络等或者由这些网络的任何组合形成的网络。在一个实施方式中,用户可访问机器学习关系确定系统(MLRDS)2201,例如,通过诸如蜂窝电话、平板计算设备等广泛的技术和设备来访问因特网。
如图22中示例性示出的,机器学习关系确定系统(MLRDS)2201包括非瞬时性计算机可读存储介质,例如,用于存储程序和数据的存储器单元2211,以及通信地耦合到非瞬时性计算机可读存储介质的至少一个处理器2202。如本文所使用的,“非瞬时性计算机可读存储介质”是指除瞬时性的传播信号之外的所有计算机可读介质,例如,诸如光盘或磁盘的非易失性介质、诸如寄存器存储器、处理器高速缓存等的易失性介质以及诸如构成耦合到处理器2202的系统总线的线的传输介质。非易失性介质包括例如固态驱动器、光盘或磁盘,以及包括通常构成主存储器的动态随机存取存储器(DRAM)的其他持久性存储器易失性介质。易失性介质包括,例如,寄存器存储器、处理器高速缓存、随机存取存储器(RAM)等。传输介质包括,例如,同轴电缆、铜线、光纤电缆、调制解调器等,包括构成耦合到处理器2202的系统总线的线等。非瞬时性计算机可读存储介质被配置为存储由MLRDS 2201的模块(例如,2211a、2211b、2211c、2211d、2211e、2211f、2211g、2211h、2211i等)定义的计算机程序指令。MLRDS2201的模块(例如2211a、2211b、2211c、2211d、2211e、2211f、2211g、2211h、2211i、2211j等)被安装并存储在MLRDS 2201的存储器单元2211中。存储器单元2211用于存储程序指令、应用和数据。存储器单元2211例如是随机存取存储器(RAM)或另一类型的动态存储器设备,其存储由处理器2202执行的信息和指令。存储器单元2211还存储在处理器2202执行指令期间使用的临时变量和其他中间信息。MLRDS 2201还包括只读存储器(ROM)或另一类型的静态存储器设备,其存储用于处理器2202的静态信息和指令。
处理器2202被配置为执行由机器学习关系确定系统(MLRDS)2201定义的计算机程序指令。处理器2202是指能够执行计算机程序或一系列命令、指令或状态转换的一个或多个微处理器、中央处理单元(CPU)设备、有限状态机、计算机、微控制器、数字信号处理器、逻辑、逻辑设备、用户电路、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、芯片等中的任何一个,或其任意组合。在一个实施方式中,处理器2202被实现为包括例如编程微处理器和数学或图形协处理器的处理器集。处理器2202例如选自处理器(诸如微处理器或处理器)、高级微设备处理器(诸如处理器)、处理器、处理器、处理器、国际商业机器处理器(诸如微处理器)、MIPS技术公司的精简指令集计算机(RISC)处理器、ARM Holdings的基于RISC的计算机处理器、处理器、处理器等。本文公开的MLRDS 2201不限于采用处理器2202。在一个实施方式中,MLRDS 2201采用控制器或微控制器。处理器2202执行MLRDS 2201的模块,例如2211a、2211b、2211c、2211d、2211e、2211f、2211g、2211h、2211i等。
如图22中示例性示出的,机器学习关系确定系统(MLRDS)2201还包括数据总线2204、网络接口2205、输入/输出(I/O)控制器2206、输入设备2207、诸如硬盘的固定媒体驱动器2208、用于接收可移动媒体的可移动媒体驱动器2209、输出设备2210等。数据总线2204允许MLRDS2201的模块(例如,2202、2203、2204、2205、2206、2207、2208、2209、2210、2211等)之间的通信。网络接口2205使得MLRDS 2201能够连接到网络2215。在一个实施方式中,网络接口2205被提供为接口卡,也称为“线卡”。网络接口2205包括,例如,一个或多个红外(IR)接口、实现Wi-Fi联盟企业的的接口、通用串行总线(USB)接口、Apple公司的接口、以太网接口、帧中继接口、电缆接口、数字用户线路(DSL)接口、令牌环接口、外围控制器互连(PCI)接口、局域网(LAN)接口、广域网(WAN)接口、使用串行协议的接口、使用并行协议的接口、以太网通信接口、异步传输模式(ATM)接口、高速串行接口(HSSI)、光纤分布式数据接口(FDDI)、基于传输控制协议(TCP)/因特网协议(IP)的接口、基于诸如卫星技术、射频(RF)技术、近场通信的无线通信技术的接口等。I/O控制器2206控制由MLRDS 2201执行的输入动作和输出动作。
显示单元2203包括,例如视频显示器、液晶显示器、等离子体显示器、基于有机发光二极管(OLED)的显示器等。显示屏2203显示图形用户界面。输入装置2207用于MLRDS2201的日常维护。输入设备2207例如是诸如字母数字键盘的键盘、麦克风、操纵杆、例如计算机鼠标的指向设备、触摸板、光笔、物理按钮、触敏显示器设备、轨迹球、指示棒、任何能够感应触觉输入的设备等。
机器学习关系确定系统MLRDS 2201的模块包括存储在MLRDS 2201的存储器单元2211中的列选择模块2211a、预期键识别模块2211b、数据接收模块2211c、数据分割器2211d、特征计算模块2211e、训练和验证模块2211f、判定阈值确定模块2211g、主键-外键确定模块2211h以及投票模块2211i。列选择模块2211a针对目标数据库2212中的多个表中的每一个,从多个表中的第一表中选择第一列数据,并从多个表中的第二表中选择第二列数据,如图1A至图1B的详细说明中所公开的。在确定所所选定的第二列数据的数据元素整体存在于所选定的第一列数据中时,预期键识别模块2211b将所选定的第一列数据标识为预期主键,并将所选定的第二列数据标识为预期外键,以形成包含依赖对,如图1A至图1B的详细描述中所公开的。数据接收模块2211c从源数据库2213接收多个预定包含依赖对,多个预定包含依赖对包括被分类为正训练数据和正验证数据的主键-外键对,以及被分类为负训练数据和负验证数据的非主键-外键对。正验证数据和负验证数据形成验证数据集。数据分割器2211d将正训练数据和负训练数据分割成训练数据集。特征计算模块2211e针对如图1A至图1B的详细描述中所公开的预期主键和预期外键的包含依赖对、训练数据集和验证数据集计算主键-外键特征,主键-外键特征包括例如归一化秩和、唯一外键比率、唯一外键份额、名称相似性指数、名称模式接受度、分布位移、以及元素计数比率。
如图1A至图1B的详细描述中所公开的,训练和验证模块2211f通过使用训练数据集和计算出的训练数据集的主键-外键特征来训练机器学习分类算法中的每一个来生成与训练数据集相对应的经训练的机器学习模型。训练和验证模块2211f还使用如图1A至图1B的详细描述中公开的计算出的验证数据集的主键-外键特征,在使用验证数据集测试与训练数据集相对应的生成的经训练的机器学习模型时,针对每个机器学习分类算法生成经验证的机器学习模型。当与训练数据集相对应的所生成的经训练的机器学习模型满足预定标准时,即,在用验证数据集测试所生成的经训练的机器学习模型时具有可接受的精度,训练和验证模块2211f针对每个机器学习分类算法生成经验证的机器学习模型。训练和验证模块2211f在训练数据集上重新训练所生成的经训练的机器学习模型,直到所生成的经训练的机器学习模型满足图2的详细描述中所公开的用于每个机器学习分类算法的经验证的机器学习模型的生成的可接受精度。
判定阈值确定模块2211g使用如图1A至图1B的详细描述中公开的所生成的经验证的机器学习模型来确定针对每个机器学习分类算法的最优算法判定阈值。主键-外键确定模块2211h使用如图1A-1B的详细描述中所公开的所确定的最优算法判定阈值和计算出的预期主键和预期外键的包含依赖对的主键-外键特征,针对每个机器学习分类算法确定预期主键和预期外键的包含依赖对的结果是主键-外键对或非主键-外键对。判定阈值确定模块2211g将针对每个机器学习分类算法确定的最优算法判定阈值存储在阈值数据库2211j中。投票模块2211i对每个机器学习分类算法的确定结果执行多数投票,以确定第一表的所选第一列数据和第二表的所选第二列数据中的数据之间的主键-外键关系,如图1A-1B的详细描述中所公开的。
机器学习关系确定系统(MLRDS)2201经由网络2215从用户设备2214接收机器学习分类算法的组合的选择。用户可以从预定义的机器学习分类算法集合中选择任意数量的机器学习分类算法。MLRDS 2201还经由网络2215从用户设备2214接收用户输入,用于配置预定标准,即,当对照验证数据集测试经训练的机器学习模型以符合经验证的机器学习模型时,经训练的机器学习模型将满足的可接受精度。MLRDS 2201还经由网络2215从用户设备2214接收在%YES是0%和100%的极端条件之间的最优算法判定阈值的用户选择。
机器学习关系确定系统(MLRDS)2201的阈值数据库2211j可以是可用于存储数据和文件的任何存储区域或介质。在一个实施方式中,阈值数据库2211j是除了目标数据库2212和源数据库2213之外的外部数据库,例如,结构化查询语言(SQL)数据存储或不仅是SQL(NoSQL)数据存储,例如 SQL 服务器、MySQL AB公司的数据库、MongoDB公司的Neo技术公司的Neo4j图形数据库、Apache软件基金会的Cassandra数据库、Apache软件基金会的HBaseTM数据库等。在一个实施方式中,阈值数据库2211j也可以是文件系统上的一个位置。在另一实施方式中,阈值数据库2211j可由MLRDS2201经由网络2215连同目标数据库2212和源数据库2213远程访问。在另一实施方式中,阈值数据库221、源数据库2213和目标数据库2212被配置为在云计算环境中实现的基于云的数据库,其中计算资源作为服务通过网络2215递送。
计算机应用程序和程序用于操作机器学习关系确定系统(MLRDS)2201。程序经由可移动媒体驱动器2209加载到固定媒体驱动器2208和MLRDS 2201的存储器单元2211上。在一个实施方式中,计算机应用和程序可以经由网络2215直接加载到MLRDS 2201上。处理器2202执行操作系统,例如操作系统、操作系统、操作系统的任何版本、Apple公司的Mac OS、 OS/2、Wind River Systems公司的由QNX软件系统公司开发的Palm 由SunMicrosystems公司开发的Solaris操作系统等。MLRDS 2201采用该操作系统来执行多项任务。操作系统负责管理和协调MLRDS 2201的活动和资源共享。操作系统还管理MLRDS 2201、连接到MLRDS 2201的外围设备和网络连接的安全性。在MLRDS 2201上采用的操作系统识别例如由MLRDS 2201的用户使用输入设备2207、输出设备2210、文件、本地存储在固定媒体驱动器2208上的目录中的一个来提供的输入。MLRDS 2201上的操作系统使用处理器2202执行不同的程序。处理器2202和操作系统一起定义计算机平台,为该计算机平台编写高级编程语言的应用程序。
处理器2202检索由存储在机器学习关系确定系统(MLRDS)2201的存储器单元2211中的列选择模块2211a、预期键识别模块2211b、数据接收模块2211c、数据分割器2211d、特征计算模块2211e、训练和验证模块2211f、判定阈值确定模块2211g、主键-外键确定模块2211h和投票模块2211i定义的指令,用于执行上述各个功能。处理器2202从存储器单元2211检索用于执行MLRDS 2201的模块(例如2211a、2211b、2211c、2211d、2211e、2211f、2211g、2211h、2211i等)的指令。程序计数器确定指令在存储器单元2211中的位置。程序计数器存储识别MLRDS 2201的每个模块(例如,2211a、2211b、2211c、2211d、2211e、2211f、2211g、2211h、2211i等)的程序中的当前位置的号码。对处理器2202在处理后从存储器单元2211中提取的指令进行解码。指令被存储在处理器2202中的指令寄存器中。在处理和解码之后,处理器2202执行指令,从而执行由那些指令定义的一个或多个处理。
在执行时,检查存储在指令寄存器中的指令以确定要执行的操作。然后,处理器2202执行指定的操作。操作包括算术操作和逻辑操作。操作系统执行多个例程,用于执行分配输入设备2207、输出设备2210和用于执行机器学习关系确定系统(MLRDS)2201的模块(例如2211a、2211b、2211c、2211d、2211e、2211f、2211g、2211h、2211i等)的存储器单元2211所需的多个任务。操作系统执行的任务包括,例如,将存储分配给MLRDS2201的模块(例如,2211a、2211b、2211c、2211d、2211e、2211f、2211g、2211h、2211i等)和MLRDS 2201使用的数据,在存储器单元2211和盘单元之间移动数据,以及处理输入/输出操作。操作系统根据操作的请求执行任务,并且在执行任务之后,操作系统将执行控制转移回处理器2202。处理器2202继续执行以获得一个或多个输出。MLRDS 2201的模块(例如,2211a、2211b、2211c、2211d、2211e、2211f、2211g、2211h、2211i等)的执行的输出在输出设备2210上显示给MLRDS2201的用户。
本文所公开的非瞬时性计算机可读存储介质存储包括可由至少一个处理器2202执行的指令的计算机程序代码,该指令用于通过机器学习来确定目标数据库2212的表中的数据之间的主键-外键关系。计算机程序代码包括第一计算机程序代码,用于为目标数据库2212中的每个表从表中的第一表中选择第一列数据,并从表中的第二表中选择第二列数据;第二计算机程序代码,用于在确定所选定的第二列的数据元素整体存在于所选定的第一列中时将所选定的第一列数据标识为预期的主键,并将所选定的第二列数据标识为预期的外键,以形成包含依赖对;用于从源数据库2213接收预定包含依赖对的第三计算机程序代码,预定包含依赖对包括被分类为正训练数据和正验证数据的主键-外键对以及被分类为负训练数据和负验证数据的非主键-外键对;第四计算机程序代码,用于将正训练数据和负训练数据分割成训练数据集;第五计算机程序代码,用于计算预期主键和预期外键的包含依赖对、训练数据集和验证数据集的主键-外键特征;第六计算机程序代码,用于通过使用计算出的训练数据集和训练数据集的主键-外键特征来训练机器学习分类算法中的每一个来生成与训练数据集相对应的经训练的机器学习模型;第七计算机程序代码,用于在使用计算出的验证数据集的主键-外键特征用验证数据集测试与训练数据集相对应的所生成的经训练的机器学习模型时,为机器学习分类算法中的每一个生成经验证的机器学习模型;第八计算机程序代码,用于使用所生成的经验证的机器学习模型针对机器学习分类算法中的每一个确定最优算法判定阈值;第九计算机程序代码,用于使用所确定的最优算法判定阈值和计算出的预期主键和预期外键的包含依赖对的主键-外键特征,针对每个机器学习分类算法确定包含依赖对的结果是主键-外键对或非主键-外键对;以及第十计算机程序代码,用于针对每个机器学习分类算法对所确定的结果执行多数投票,以确定第一表的所选第一列数据中的数据和第二表的所选第二列数据中的数据之间的主键-外键关系。
在一个实施方式中,第七计算机程序代码包括第十一计算机程序代码,用于当所生成的与训练数据集相对应的经训练的机器学习模型满足使用验证数据集测试所生成的经训练的机器学习模型的预定标准时,针对机器学习分类算法中的每一个生成经验证的机器学习模型。在该实施方式中,第六计算机程序代码包括第十二计算机程序代码,用于在训练数据集上重新训练生成的经训练的机器学习模型,直到所生成的经训练的机器学习模型满足用于针对每个机器学习分类算法生成经验证的机器学习模型的预定标准。
计算机程序代码还包括一个或多个附加的计算机程序代码,用于执行为了确定目标数据库2212的表中的数据之间的主键-外键关系而可能需要和设想的附加步骤。在一个实施方式中,包括计算机可执行指令的单个计算机程序代码执行本文所公开的用于确定目标数据库2212的表中的数据之间的主键-外键关系的方法的一个或多个步骤。包括计算机可执行指令的计算机程序代码体现在非瞬时性计算机可读存储介质上。机器学习关系确定系统(MLRDS)2201的处理器2202检索这些计算机可执行指令并执行它们。当计算机可执行指令由处理器2202执行时,计算机可执行指令使处理器2202执行用于确定目标数据库2212的表中的数据之间的主键-外键关系的方法的步骤。
在不同的实施方式中显而易见的是,本文公开的各种方法、算法和计算机程序在为计算设备适当编程的非瞬时性计算机可读存储介质上实现。非瞬时性计算机可读存储介质参与提供数据,例如由计算机、处理器或类似的设备读取的指令。在不同的实施方式中,“非瞬时性计算机可读存储介质”还指单个介质或多个介质,例如集中式数据库、分布式数据库,和/或存储由计算机、处理器或类似的设备读取的一组或多组指令的相关联的缓存器和服务器。“非瞬时性计算机可读存储介质”还指能够存储或编码一组指令以供计算机、处理器或类似的设备执行并且使得计算机、处理器或类似的设备执行本文公开的方法中的任何一个或多个的任何介质。常见形式的非瞬时性计算机可读存储介质包括,例如,软盘、柔性盘、硬盘、磁带、激光盘、蓝光光盘协会的Blu-ray 任何磁介质、激光唱片只读存储器(CD-ROM)、数字多功能盘(DVD)、任何光介质、闪存卡、穿孔卡、纸带、具有孔图案的任何其他物理介质、随机存取存储器(RAM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、任何其它存储器芯片或盒式存储器、或计算机可从中读取的任何其它介质。
在一个实施方式中,实现本文公开的方法和算法的计算机程序以多种方式使用多种介质,例如计算机可读介质来存储和传输。在一个实施方式中,使用硬连线电路或自定义硬件代替软件指令或与软件指令组合,以实现各种实施方式的过程。因此,实施方式不限于硬件和软件的任何特定组合。包括计算机可执行指令的计算机程序代码可以以任何编程语言实现。可以使用的编程语言示例包括C、C++、C#、Fortran、Ruby、Visual 超文本预处理器(PHP)、NET、等。还可以使用其他面向对象、函数、脚本和/或逻辑编程语言。在一个实施方式中,计算机程序代码或软件程序作为目标代码存储在一个或多个介质上或介质中。在另一实施方式中,本文公开的方法和机器学习关系确定系统(MLRDS)2201的各个方面在非编程环境中实现,非编程环境包括例如以超文本标记语言(HTML)、可扩展标记语言(XML)或当在浏览器程序的可视区域或窗口中查看时呈现图形用户界面(GUI)的各个方面或执行其他功能的其他格式创建的文档。在另一实施方式中,本文公开的方法和MLRDS 2201的各个方面被实现为编程元件,或非编程元件,或其任何合适的组合。
在描述诸如阈值数据库2211j、目标数据库2212和源数据库2213的数据库时,本领域普通技术人员将理解(i)可以采用所描述的那些数据库的替代数据库结构,以及(ii)可以采用除数据库之外的其他存储器结构。本文公开的任何示例数据库的任何图示或描述都是用于信息的存储表示的说明性布置。在一个实施方式中,除了在附图或其它地方示出的表格所建议的那些之外,还采用任何数量的其它布置。类似地,数据库的任何图示条目仅表示示例性信息;本领域普通技术人员将理解,条目的数量和内容可以与本文公开的不同。在另一实施方式中,尽管将数据库描述为表,但是包括关系数据库、基于对象的模型和/或分布式数据库的其他格式被用于存储和操作本文公开的数据类型。可以使用数据库的对象、方法或行为来实现各种过程,例如本文公开的那些过程。在另一实施方式中,以已知的方式从访问这样的数据库中的数据的设备本地或远程存储数据库。在机器学习关系确定系统(MLRDS)2201中存在多个数据库的实施方式中,当其中一个数据库中存在对数据的任何更新时,这些数据库被集成以彼此通信,以实现跨数据库链接的数据的同时更新。
本文公开的方法和机器学习关系确定系统(MLRDS)2201可以被配置为在包括经由网络2215与一个或多个设备通信的一个或多个计算机的网络环境中工作。在一个实施方式中,计算机直接或间接地经由有线介质或诸如因特网、局域网(LAN)、广域网(WAN)或以太网、令牌环的无线介质,或经由任何适当的通信介质或通信介质的组合与设备通信。每个设备包括处理器,其示例在上面公开,处理器适于与计算机通信。在一个实施方式中,每台计算机配备有网络通信设备,例如,网络接口卡、调制解调器,或适合于连接到网络2215的其它网络连接设备。计算机和设备中的每一个执行操作系统,其示例在上面公开。虽然操作系统可以根据计算机的类型而不同,但是操作系统提供适当的通信协议以建立与网络2215的通信链路。任何数量和类型的机器可以与计算机通信。
本文公开的方法和机器学习关系确定系统(MLRDS)2201不限于特定的计算机系统平台、处理器、操作系统或网络。在一个实施方式中,本文公开的方法和MLRDS 2201的一个或多个方面分布在一个或多个计算机系统中,例如,被配置为向一个或多个客户端计算机提供一个或多个服务或在分布式系统中执行完整任务的服务器。例如,本文公开的方法和MLRDS 2201的一个或多个方面在客户端-服务器系统上执行,该客户端-服务器系统包括根据各种实施方式分布在执行多个功能的一个或多个服务器系统之间的组件。这些组件包括例如可执行代码、中间代码或解释代码,它们使用通信协议在网络2215上通信。本文公开的方法和机器学习关系确定系统(MLRDS)2201不限于在任何特定系统或系统组上可执行,并且不限于任何特定分布式体系结构、网络或通信协议。
提供上述示例仅仅是为了说明的目的,并且决不被解释为对本文公开的方法和机器学习关系确定系统(MLRDS)2201的限制。虽然已经参考各种方法和MLRDS 2201描述了该方法和MLRDS 2201。实施方式中,应当理解,本文使用的词语是描述和说明词语,而不是限制词语。此外,尽管本文已经参考特定的装置、材料和实施方式描述了方法和MLRDS2201,但是该方法和MLRDS 2201并不旨在限于本文公开的细节;相反,该方法和MLRDS 2201扩展到所有功能等同的结构、方法和用途,例如在所附权利要求的范围内。受益于本说明书的教导的本领域技术人员可以对其进行多种修改,并且可以在不脱离本方法的范围和精神以及在其方面公开的MLRDS 2201的情况下进行改变。
Claims (20)
1.一种用于通过机器学习来确定目标数据库的多个表中的数据之间的主键-外键关系的方法,所述方法采用机器学习关系确定系统,所述机器学习关系确定系统包括至少一个处理器,所述处理器被配置为执行用于执行所述方法的计算机程序指令,所述方法包括:
通过所述机器学习关系确定系统针对所述目标数据库中的每一个表从所述表中的第一表选择第一列数据,并从所述表中的第二表选择第二列数据,其中,所述第一列数据包括第一列名称,并且所述第二列数据包括与所述第一列名称不同的第二列名称;
在确定所选定的所述第二列数据的数据元素整体存在于所选定的所述第一列数据中时,通过所述机器学习关系确定系统将所选定的所述第一列数据标识为预期主键,并将所选定的所述第二列数据标识为预期外键,以形成包含依赖对;
通过所述机器学习关系确定系统从源数据库接收多个预定包含依赖对,所述多个预定包含依赖对包括被分类为正训练数据和正验证数据的主键-外键对以及被分类为负训练数据和负验证数据的非主键-外键对,其中,所述正验证数据和所述负验证数据形成验证数据集;
通过所述机器学习关系确定系统将所述正训练数据和所述负训练数据分割成训练数据集;
通过所述机器学习关系确定系统计算所述预期主键和所述预期外键的所述包含依赖对、所述训练数据集和所述验证数据集的多个主键-外键特征;
由所述机器学习关系确定系统通过使用所述训练数据集和计算出的所述训练数据集的主键-外键特征来训练一个或多个机器学习分类算法中的每一个以生成与所述训练数据集相对应的经训练的机器学习模型;
在使用计算出的所述验证数据集的主键-外键特征利用所述验证数据集来测试所生成的与所述训练数据集相对应的经训练的机器学习模型时,通过所述机器学习关系确定系统针对所述一个或多个机器学习分类算法中的每一个来生成经验证的机器学习模型;
通过所述机器学习关系确定系统使用所生成的经验证的机器学习模型来确定所述一个或多个机器学习分类算法中的每一个的最优算法判定阈值;
使用所确定的所述最优算法判定阈值和计算出的所述预期主键和所述预期外键的所述包含依赖对的主键-外键特征,由所述机器学习关系确定系统针对所述一个或多个机器学习分类算法中的每一个来确定所述包含依赖对的结果是主键-外键对和非主键-外键对中的一个;以及
通过所述机器学习关系确定系统对所述一个或多个机器学习分类算法中的每一个的所确定结果执行多数投票,以确定所述第一表的所选定的所述第一列数据中的数据与所述第二表的所选定的所述第二列数据中的数据之间的主键-外键关系。
2.根据权利要求1所述的方法,其中,当所生成的与所述训练数据集相对应的经训练的机器学习模型满足在使用所述验证数据集测试所生成的经训练的机器学习模型的预定标准时,由所述机器学习关系确定系统针对所述一个或多个机器学习分类算法中的每一个来生成经验证的机器学习模型。
3.根据权利要求2所述的方法,还包括在所述训练数据集上重新训练所生成的经训练的机器学习模型,直到所生成的经训练的机器学习模型满足用于针对所述一个或多个机器学习分类算法中的每一个生成经验证的机器学习模型的所述预定标准。
4.根据权利要求1所述的方法,其中,通过所述机器学习关系确定系统将所确定的针对所述一个或多个机器学习分类算法中的每一个的所述最优算法判定阈值存储在阈值数据库中。
5.根据权利要求1所述的方法,其中,主键-外键特征包括归一化秩和、唯一外键比率、唯一外键份额、名称相似性指数、名称模式接受度、分布位移和元素计数比率。
6.根据权利要求1所述的方法,其中,使用从以下项组成的组中选择的多个项中的一个项,由所述机器学习关系确定系统来计算所述预期主键和所述预期外键的所述包含依赖对的主键-外键特征:由所选定的所述第一列数据标识的所述预期主键的数据元素、由所选定的所述第二列数据标识的所述预期外键的数据元素、所述预期外键的唯一数据元素的数量、所述预期主键和所述预期外键的名称之间的Levenshtein距离、从所述预期主键和所述预期外键的名称获得的前缀匹配分数、通过对所述预期主键和所述预期外键的名称应用Metaphone算法获得的声音代码、所述预期主键和所述预期外键的名称的模式、统计度量以及它们的任意组合。
7.根据权利要求1所述的方法,其中,使用从以下项组成的组中选择的多个项中的一个项,由所述机器学习关系确定系统来计算所述训练数据集和所述验证数据集的主键-外键特征:所述预定包含依赖对的数据元素、所述预定包含依赖对中的外键的唯一数据元素的数量、所述预定包含依赖对中的主键和外键的名称之间的Levenshtein距离、从所述预定包含依赖对中的所述主键和所述外键的名称获得的前缀匹配分数、通过对所述预定包含依赖对中的所述主键和所述外键的名称应用Metaphone算法获得的声音代码、所述预定包含依赖对中的所述主键和所述外键的名称的模式、统计度量以及它们的任意组合。
8.根据权利要求1所述的方法,其中,所述一个或多个机器学习分类算法包括J48算法、K-最近邻算法、朴素贝叶斯算法、随机森林算法、贝叶斯网络模型、多层感知器模型和支持向量机模型。
9.一种机器学习关系确定系统,用于通过机器学习确定目标数据库的多个表中的数据之间的主键-外键关系,所述机器学习关系确定系统包括:
非瞬时性计算机可读存储介质,被配置为存储由所述机器学习关系确定系统的模块定义的计算机程序指令;以及
至少一个处理器,通信地耦合到所述非瞬时性计算机可读存储介质,所述至少一个处理器被配置为执行由所述机器学习关系确定系统的所述模块定义的所述计算机程序指令,所述模块包括:
列选择模块,被配置为针对所述目标数据库中的每一个表从所述表中的第一表选择第一列数据,并从所述表中的第二表选择第二列数据,其中,所述第一列数据包括第一列名称,并且所述第二列数据包括与所述第一列名称不同的第二列名称;
预期键标识模块,被配置为在确定所选定的所述第二列数据的数据元素整体存在于所选定的所述第一列数据中时,将所选定的所述第一列数据标识为预期主键,并将所选定的所述第二列数据标识为预期外键,以形成包含依赖对;
数据接收模块,被配置为从源数据库接收多个预定包含依赖对,所述多个预定包含依赖对包括被分类为正训练数据和正验证数据的主键-外键对以及被分类为负训练数据和负验证数据的非主键-外键对,其中,所述正验证数据和所述负验证数据形成验证数据集;
数据分割器,被配置为将所述正训练数据和所述负训练数据分割成训练数据集;
特征计算模块,被配置为计算所述预期主键和所述预期外键的所述包含依赖对、所述训练数据集和所述验证数据集的多个主键-外键特征;
训练和验证模块,被配置为通过使用所述训练数据集和计算出的所述训练数据集的主键-外键特征来训练一个或多个机器学习分类算法中的每一个以生成与所述训练数据集相对应的经训练的机器学习模型;
所述训练和验证模块还被配置为在使用计算出的所述验证数据集的主键-外键特征利用所述验证数据集来测试所生成的与所述训练数据集相对应的经训练的机器学习模型时,针对所述一个或多个机器学习分类算法中的每一个生成经验证的机器学习模型;
判定阈值确定模块,被配置为使用所生成的经验证的机器学习模型来确定所述一个或多个机器学习分类算法中的每一个的最优算法判定阈值;
主键-外键确定模块,被配置为使用所确定的所述最优算法判定阈值和计算出的所述预期主键和所述预期外键的所述包含依赖对的主键-外键特征,针对所述一个或多个机器学习分类算法中的每一个来确定所述包含依赖对的结果是主键-外键对和非主键-外键对中的一个;以及
投票模块,被配置为针对所述一个或多个机器学习分类算法中的每一个对所确定的结果执行多数投票,以确定所述第一表的所选定第一列数据中的数据与所述第二表的所选定第二列数据中的数据之间的主键-外键关系。
10.根据权利要求9所述的机器学习关系确定系统,其中,所述训练和验证模块被配置为当所生成的与所述训练数据集相对应的经训练的机器学习模型满足在使用所述验证数据集测试所生成的经训练的机器学习模型的预定标准时,针对所述一个或多个机器学习分类算法中的每一个来生成经验证的机器学习模型。
11.根据权利要求10所述的机器学习关系确定系统,其中,所述训练和验证模块还被配置为在所述训练数据集上重新训练所生成的经训练的机器学习模型,直到所生成的经训练的机器学习模型满足用于针对所述一个或多个机器学习分类算法中的每一个生成经验证的机器学习模型的所述预定标准。
12.根据权利要求9所述的机器学习关系确定系统,其中,所述判定阈值确定模块还被配置为将所确定的针对所述一个或多个机器学习分类算法中的每一个的所述最优算法判定阈值存储在阈值数据库中。
13.根据权利要求9所述的机器学习关系确定系统,其中,主键-外键特征包括归一化秩和、唯一外键比率、唯一外键份额、名称相似度指数、名称模式接受度、分布位移和元素计数比率。
14.根据权利要求9所述的机器学习关系确定系统,其中,所述特征计算模块被配置为使用从由以下项组成的组中选择的多个项中的一个项,来计算所述预期主键和所述预期外键的所述包含依赖对的主键-外键特征:由所选定的所述第一列数据标识的所述预期主键的数据元素、由所选定的所述第二列数据标识的所述预期外键的数据元素、所述预期外键的唯一数据元素的数量、所述预期主键和所述预期外键的名称之间的Levenshtein距离、从所述预期主键和所述预期外键的名称获得的前缀匹配分数、通过对所述预期主键和所述预期外键的名称应用Metaphone算法获得的声音代码、所述预期主键和所述预期外键的名称的模式、统计度量以及它们的任意组合。
15.根据权利要求9所述的机器学习关系确定系统,其中,所述特征计算模块被配置为使用从以下项组成的组中选择的多个项中的一个项,来计算所述训练数据集和所述验证数据集的主键-外键特征:所述预定包含依赖对的数据元素、所述预定包含依赖对中的外键的唯一数据元素的数量、所述预定包含依赖对中的主键和外键的名称之间的Levenshtein距离、从所述预定包含依赖对中的所述主键和所述外键的名称获得的前缀匹配分数、通过对所述预定包含依赖对中的所述主键和所述外键的名称应用Metaphone算法获得的声音代码、所述预定包含依赖对中的所述主键和所述外键的名称的模式、统计度量以及它们的任意组合。
16.根据权利要求9所述的机器学习关系确定系统,其中,所述一个或多个机器学习分类算法包括J48算法、k-最近邻算法、朴素贝叶斯算法、随机森林算法、贝叶斯网络模型、多层感知器模型和支持向量机模型。
17.一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质上存储计算机程序代码,所述计算机程序代码包括能够由至少一个处理器执行的指令,所述指令用于通过机器学习确定目标数据库的多个表中的数据之间的主键-外键关系,所述计算机程序代码包括:
第一计算机程序代码,用于针对所述目标数据库中的每一个表从所述表中的第一表选择第一列数据,并从所述表中的第二表选择第二列数据,其中,所述第一列数据包括第一列名称,并且所述第二列数据包括与所述第一列名称不同的第二列名称;
第二计算机程序代码,用于在确定所选定的所述第二列数据的数据元素整体存在于所选定的所述第一列数据中时,将所选定的所述第一列数据标识为预期主键,并将所选定的所述第二列数据标识为预期外键,以形成包含依赖对;
第三计算机程序代码,用于从源数据库接收多个预定包含依赖对,所述多个预定包含依赖对包括被分类为正训练数据和正验证数据的主键-外键对以及被分类为负训练数据和负验证数据的非主键-外键对,其中,所述正验证数据和所述负验证数据形成验证数据集;
第四计算机程序代码,用于将所述正训练数据和所述负训练数据分割成训练数据集;
第五计算机程序代码,用于计算所述预期主键和所述预期外键的所述包含依赖对、所述训练数据集以及所述验证数据集的多个主键-外键特征;
第六计算机程序代码,用于通过使用所述训练数据集和计算出的所述训练数据集的主键-外键特征来训练一个或多个机器学习分类算法中的每一个以生成与所述训练数据集相对应的经训练的机器学习模型;
第七计算机程序代码,用于在使用计算出的所述验证数据集的主键-外键特征利用所述验证数据集来测试所生成的与所述训练数据集相对应的经训练的机器学习模型时,针对所述一个或多个机器学习分类算法中的每一个来生成经验证的机器学习模型;
第八计算机程序代码,用于使用所生成的经验证的机器学习模型来确定所述一个或多个机器学习分类算法中的每一个的最优算法判定阈值;
第九计算机程序代码,用于使用所确定的所述最优算法判定阈值和计算出的所述预期主键和所述预期外键的所述包含依赖对的主键-外键特征,针对所述一个或多个机器学习分类算法中的每一个来确定所述包含依赖对的结果是主键-外键对和非主键-外键对中的一个;以及
第十计算机程序代码,用于针对所述一个或多个机器学习分类算法中的每一个对所确定的结果执行多数投票,以确定所述第一表的所选定的所述第一列数据中的数据与所述第二表的所选定的所述第二列数据中的数据之间的主键-外键关系。
18.根据权利要求17所述的非瞬时性计算机可读存储介质,其中,所述第七计算机程序代码包括第十一计算机程序代码,用于当所生成的与所述训练数据集相对应的经训练的机器学习模型满足在使用所述验证数据集测试所生成的经训练的机器学习模型的预定标准时,针对所述一个或多个机器学习分类算法中的每一个来生成经验证的机器学习模型。
19.根据权利要求18所述的非瞬时性计算机可读存储介质,其中,所述第六计算机程序代码包括第十二计算机程序代码,所述第十二计算机程序代码用于在所述训练数据集上重新训练所生成的经训练的机器学习模型,直到所述所生成的经训练的机器学习模型满足用于针对所述一个或多个机器学习分类算法中的每一个生成经验证的机器学习模型的所述预定标准。
20.根据权利要求17所述的非瞬时性计算机可读存储介质,其中,所述主键-外键特征包括归一化秩和、唯一外键比率、唯一外键份额、名称相似度指数、名称模式接受度、分布位移和元素计数比率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/210,889 | 2016-07-15 | ||
US15/210,889 US10692015B2 (en) | 2016-07-15 | 2016-07-15 | Primary key-foreign key relationship determination through machine learning |
PCT/US2017/038882 WO2018013318A1 (en) | 2016-07-15 | 2017-06-23 | Primary key-foreign key relationship determination through machine learning |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109804362A true CN109804362A (zh) | 2019-05-24 |
CN109804362B CN109804362B (zh) | 2023-05-30 |
Family
ID=60940646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780056658.6A Active CN109804362B (zh) | 2016-07-15 | 2017-06-23 | 通过机器学习确定主键-外键关系 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10692015B2 (zh) |
EP (1) | EP3455750A4 (zh) |
CN (1) | CN109804362B (zh) |
CA (1) | CA3030845A1 (zh) |
WO (1) | WO2018013318A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457341A (zh) * | 2019-07-03 | 2019-11-15 | 平安科技(深圳)有限公司 | 数据聚合方法、装置、计算机设备及存储介质 |
CN111124366A (zh) * | 2019-12-23 | 2020-05-08 | 南京航空航天大学 | 一种基于信息检索的需求追踪恢复方法 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2952576C (en) * | 2014-06-20 | 2022-07-26 | Miovision Technologies Incorporated | Machine learning platform for performing large scale data analytics |
GB201615745D0 (en) | 2016-09-15 | 2016-11-02 | Gb Gas Holdings Ltd | System for analysing data relationships to support query execution |
US11562293B2 (en) * | 2017-05-08 | 2023-01-24 | British Telecommunications Public Limited Company | Adaptation of machine learning algorithms |
WO2018206405A1 (en) * | 2017-05-08 | 2018-11-15 | British Telecommunications Public Limited Company | Interoperation of machine learning algorithms |
US11323884B2 (en) * | 2017-06-27 | 2022-05-03 | Allot Ltd. | System, device, and method of detecting, mitigating and isolating a signaling storm |
EP3435295A1 (de) * | 2017-07-26 | 2019-01-30 | Siemens Aktiengesellschaft | Vorverarbeitung für einen klassifikationsalgorithmus |
EP3451190B1 (en) * | 2017-09-04 | 2020-02-26 | Sap Se | Model-based analysis in a relational database |
CN110309252B (zh) * | 2018-02-28 | 2023-11-24 | 阿里巴巴集团控股有限公司 | 一种自然语言处理方法及装置 |
JP7010364B2 (ja) * | 2018-03-14 | 2022-01-26 | 日本電気株式会社 | データ作成装置、データ分類装置、データ処理システム、データ作成方法、データ分類方法及びプログラム |
CN110324170B (zh) * | 2018-03-30 | 2021-07-09 | 华为技术有限公司 | 数据分析设备、多模型共决策系统及方法 |
US11157496B2 (en) * | 2018-06-01 | 2021-10-26 | International Business Machines Corporation | Predictive data distribution for parallel databases to optimize storage and query performance |
US11163764B2 (en) * | 2018-06-01 | 2021-11-02 | International Business Machines Corporation | Predictive data distribution for parallel databases to optimize storage and query performance |
US20190044869A1 (en) * | 2018-08-17 | 2019-02-07 | Intel Corporation | Technologies for classifying network flows using adaptive virtual routing |
US10885221B2 (en) * | 2018-10-16 | 2021-01-05 | International Business Machines Corporation | Obfuscating audible communications in a listening space |
JP7060852B2 (ja) * | 2018-10-18 | 2022-04-27 | 株式会社シンクアウト | 情報処理システム |
US11106642B2 (en) * | 2018-12-26 | 2021-08-31 | Io-Tahoe LLC. | Cataloging database metadata using a probabilistic signature matching process |
US11461333B2 (en) * | 2019-01-15 | 2022-10-04 | Business Objects Software Ltd. | Vertical union of feature-based datasets |
US11544411B2 (en) * | 2019-01-17 | 2023-01-03 | Koninklijke Philips N.V. | Machine learning model validation and authentication |
US10567237B1 (en) * | 2019-02-06 | 2020-02-18 | TensorDRO, Inc. | System and methods for data evaluation through network sensitivity analysis |
US11789135B2 (en) * | 2019-03-29 | 2023-10-17 | Robert Bosch Gmbh | Ultra-wideband intelligent sensing system and method for car states detection |
US11157479B2 (en) * | 2019-04-08 | 2021-10-26 | Microsoft Technology Licensing, Llc | Leveraging a collection of training tables to accurately predict errors within a variety of tables |
US11425059B2 (en) * | 2019-06-18 | 2022-08-23 | Accenture Global Solutions Limited | Chatbot support platform |
US11481285B1 (en) * | 2019-11-19 | 2022-10-25 | Cdw Llc | Selective database data rollback |
US11443242B2 (en) * | 2020-04-21 | 2022-09-13 | International Business Machines Corporation | Iterative training of a machine learning model |
US11556854B2 (en) * | 2020-04-28 | 2023-01-17 | At&T Intellectual Property I, L.P. | Constructing machine learning models |
CN111813870B (zh) * | 2020-06-01 | 2024-03-12 | 武汉大学 | 基于统一描述表达的机器学习算法资源共享方法及系统 |
CN111737446B (zh) * | 2020-06-22 | 2024-04-05 | 北京百度网讯科技有限公司 | 用于构建质量评估模型的方法、装置、设备及存储介质 |
US20220019936A1 (en) * | 2020-07-17 | 2022-01-20 | Servicenow, Inc. | Machine learning feature recommendation |
CN113761185A (zh) * | 2021-01-06 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 主键提取方法、设备及存储介质 |
CN113221548A (zh) * | 2021-04-01 | 2021-08-06 | 深圳市猎芯科技有限公司 | 基于机器学习的bom表识别方法、装置、计算机设备及介质 |
US20230062114A1 (en) * | 2021-08-26 | 2023-03-02 | Optum, Inc. | Machine learning techniques for efficient data pattern recognition across databases |
US11892989B2 (en) | 2022-03-28 | 2024-02-06 | Bank Of America Corporation | System and method for predictive structuring of electronic data |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103793A1 (en) * | 2000-08-02 | 2002-08-01 | Daphne Koller | Method and apparatus for learning probabilistic relational models having attribute and link uncertainty and for performing selectivity estimation using probabilistic relational models |
WO2002103578A1 (en) * | 2001-06-19 | 2002-12-27 | Biozak, Inc. | Dynamic search engine and database |
US20030195889A1 (en) * | 2002-04-04 | 2003-10-16 | International Business Machines Corporation | Unified relational database model for data mining |
CN1549182A (zh) * | 2003-05-15 | 2004-11-24 | 季永萍 | 基于移动计算的新技术专业增值服务的实现装置 |
US20050222931A1 (en) * | 2003-08-27 | 2005-10-06 | Ascential Software Corporation | Real time data integration services for financial information data integration |
WO2007149623A2 (en) * | 2006-04-25 | 2007-12-27 | Infovell, Inc. | Full text query and search systems and method of use |
WO2008005102A2 (en) * | 2006-05-13 | 2008-01-10 | Sap Ag | Consistent set of interfaces derived from a business object model |
US20080077570A1 (en) * | 2004-10-25 | 2008-03-27 | Infovell, Inc. | Full Text Query and Search Systems and Method of Use |
US20080208904A1 (en) * | 2007-02-26 | 2008-08-28 | Friedlander Robert R | System and method for deriving a hierarchical event based database optimized for analysis of complex accidents |
CN102081655A (zh) * | 2011-01-11 | 2011-06-01 | 华北电力大学 | 基于贝叶斯分类算法的信息检索方法 |
CA2731588A1 (en) * | 2010-02-15 | 2011-08-15 | Accenture Global Services Limited | Machine to machine architecture |
US20120123984A1 (en) * | 2010-11-16 | 2012-05-17 | International Business Machines Corporation | Optimal persistence of a business process |
CN102597992A (zh) * | 2009-07-22 | 2012-07-18 | 卡罗林·帕特里希亚·麦格瑞戈 | 用于多维时态数据挖掘的系统、方法和计算机程序 |
GB201315611D0 (en) * | 2013-09-03 | 2013-10-16 | Ibm | Method and system for accessing a set of data tables in a source database |
US8631048B1 (en) * | 2011-09-19 | 2014-01-14 | Rockwell Collins, Inc. | Data alignment system |
US20140312346A1 (en) * | 2009-11-13 | 2014-10-23 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and manufacturing method thereof |
US20140372346A1 (en) * | 2013-06-17 | 2014-12-18 | Purepredictive, Inc. | Data intelligence using machine learning |
US20150242409A1 (en) * | 2014-02-22 | 2015-08-27 | SourceThought, Inc. | Automated Data Shaping |
WO2016023471A1 (zh) * | 2014-08-11 | 2016-02-18 | 张锐 | 手写输入字符的处理、数据拆分和合并及编解码处理方法 |
US20160132787A1 (en) * | 2014-11-11 | 2016-05-12 | Massachusetts Institute Of Technology | Distributed, multi-model, self-learning platform for machine learning |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970490A (en) | 1996-11-05 | 1999-10-19 | Xerox Corporation | Integration platform for heterogeneous databases |
US6044374A (en) | 1997-11-14 | 2000-03-28 | Informatica Corporation | Method and apparatus for sharing metadata between multiple data marts through object references |
US6535868B1 (en) | 1998-08-27 | 2003-03-18 | Debra A. Galeazzi | Method and apparatus for managing metadata in a database management system |
US7013310B2 (en) | 2002-01-03 | 2006-03-14 | Cashedge, Inc. | Method and apparatus for retrieving and processing data |
US6697808B1 (en) | 2001-06-19 | 2004-02-24 | Microstrategy, Inc. | Method and system for performing advanced object searching of a metadata repository used by a decision support system |
US6957225B1 (en) | 2002-05-07 | 2005-10-18 | Oracle International Corporation | Automatic discovery and use of column correlations in tables |
US7702636B1 (en) | 2002-07-31 | 2010-04-20 | Cadence Design Systems, Inc. | Federated system and methods and mechanisms of implementing and using such a system |
CA2533167A1 (en) | 2003-07-22 | 2005-01-27 | Kinor Technologies Inc. | Information access using ontologies |
US20050071359A1 (en) | 2003-09-25 | 2005-03-31 | Elandassery Deepak S. | Method for automated database schema evolution |
US7774378B2 (en) | 2004-06-04 | 2010-08-10 | Icentera Corporation | System and method for providing intelligence centers |
US7647293B2 (en) | 2004-06-10 | 2010-01-12 | International Business Machines Corporation | Detecting correlation from data |
US7389314B2 (en) | 2004-08-30 | 2008-06-17 | Corio, Inc. | Database backup, refresh and cloning system and method |
US8135691B2 (en) | 2004-10-08 | 2012-03-13 | International Business Machines Corporation | Determining database relationships through query monitoring |
US8812433B2 (en) | 2005-02-07 | 2014-08-19 | Mimosa Systems, Inc. | Dynamic bulk-to-brick transformation of data |
US20060195492A1 (en) | 2005-02-25 | 2006-08-31 | Microsoft Corporation | Method and apparatus for implementing an adaptive data warehouse |
US8176002B2 (en) | 2005-03-24 | 2012-05-08 | Microsoft Corporation | Method and system for user alteration of the configuration of a data warehouse |
EP1708099A1 (en) | 2005-03-29 | 2006-10-04 | BRITISH TELECOMMUNICATIONS public limited company | Schema matching |
US20070214179A1 (en) | 2006-03-10 | 2007-09-13 | Khanh Hoang | Searching, filtering, creating, displaying, and managing entity relationships across multiple data hierarchies through a user interface |
US7792857B1 (en) | 2006-03-30 | 2010-09-07 | Emc Corporation | Migration of content when accessed using federated search |
US20070282784A1 (en) | 2006-05-31 | 2007-12-06 | Natwar Modani | Comprehensive algebraic relationship discovery in databases |
US20080140696A1 (en) | 2006-12-07 | 2008-06-12 | Pantheon Systems, Inc. | System and method for analyzing data sources to generate metadata |
US20080222192A1 (en) | 2006-12-21 | 2008-09-11 | Ec-Enabler, Ltd | Method and system for transferring information using metabase |
US8364617B2 (en) | 2007-01-19 | 2013-01-29 | Microsoft Corporation | Resilient classification of data |
US7792793B2 (en) | 2007-04-24 | 2010-09-07 | Kryptiq Corporation | Data export/import from multiple data source to a destination data repository using corresponding data exporters and an importer |
US7966343B2 (en) | 2008-04-07 | 2011-06-21 | Teradata Us, Inc. | Accessing data in a column store database based on hardware compatible data structures |
US8554719B2 (en) | 2007-10-18 | 2013-10-08 | Palantir Technologies, Inc. | Resolving database entity information |
US8386529B2 (en) | 2010-02-21 | 2013-02-26 | Microsoft Corporation | Foreign-key detection |
CA2817103C (en) * | 2010-11-11 | 2016-04-19 | Google Inc. | Learning tags for video annotation using latent subtags |
EP2469423B1 (en) | 2010-12-23 | 2019-09-11 | Sap Se | Aggregation in parallel computation environments with shared memory |
US8639719B2 (en) | 2011-02-02 | 2014-01-28 | Paul Tepper Fisher | System and method for metadata capture, extraction and analysis |
US8442935B2 (en) | 2011-03-30 | 2013-05-14 | Microsoft Corporation | Extract, transform and load using metadata |
US9020981B2 (en) | 2011-09-30 | 2015-04-28 | Comprehend Systems, Inc. | Systems and methods for generating schemas that represent multiple data sources |
US8676772B2 (en) | 2011-12-09 | 2014-03-18 | Telduráðgevin Sp/f | Systems and methods for improving database performance |
US9336246B2 (en) | 2012-02-28 | 2016-05-10 | International Business Machines Corporation | Generating composite key relationships between database objects based on sampling |
KR102031402B1 (ko) | 2012-07-24 | 2019-10-11 | 아브 이니티오 테크놀로지 엘엘시 | 데이터 모델에서의 엔티티 매핑 |
EP2713288B1 (en) | 2012-09-26 | 2020-05-06 | Tata Consultancy Services Limited | Foreign key identification in database management systems |
US10296625B2 (en) | 2013-03-16 | 2019-05-21 | Fadi Victor Micaelian | Computerized system and method for identifying relationships |
US9798763B2 (en) | 2013-09-23 | 2017-10-24 | David D. Wright, SR. | Method for using tags to manage client software across a life cycle |
EP2916246A1 (en) | 2014-03-06 | 2015-09-09 | Tata Consultancy Services Limited | Primary and foreign key relationship identification with metadata analysis |
US8924429B1 (en) | 2014-03-18 | 2014-12-30 | Palantir Technologies Inc. | Determining and extracting changed data from a data source |
US20150271267A1 (en) | 2014-03-24 | 2015-09-24 | Palo Alto Research Center Incorporated | Content-oriented federated object store |
EP2975535A1 (en) | 2014-07-14 | 2016-01-20 | Fujitsu Limited | Checking freshness of data for a data integration system, DIS |
US9703817B2 (en) | 2014-08-04 | 2017-07-11 | International Business Machines Corporation | Incremental information integration using a declarative framework |
US20160098645A1 (en) | 2014-10-02 | 2016-04-07 | Microsoft Corporation | High-precision limited supervision relationship extractor |
AU2015375497A1 (en) | 2015-01-09 | 2017-07-13 | Landmark Graphics Corporation | Apparatus and methods of data synchronization |
US10061824B2 (en) | 2015-01-30 | 2018-08-28 | Splunk Inc. | Cell-based table manipulation of event data |
-
2016
- 2016-07-15 US US15/210,889 patent/US10692015B2/en active Active
-
2017
- 2017-06-23 CN CN201780056658.6A patent/CN109804362B/zh active Active
- 2017-06-23 WO PCT/US2017/038882 patent/WO2018013318A1/en unknown
- 2017-06-23 EP EP17828157.2A patent/EP3455750A4/en active Pending
- 2017-06-23 CA CA3030845A patent/CA3030845A1/en active Pending
-
2020
- 2020-06-12 US US16/900,253 patent/US11526809B2/en active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103793A1 (en) * | 2000-08-02 | 2002-08-01 | Daphne Koller | Method and apparatus for learning probabilistic relational models having attribute and link uncertainty and for performing selectivity estimation using probabilistic relational models |
WO2002103578A1 (en) * | 2001-06-19 | 2002-12-27 | Biozak, Inc. | Dynamic search engine and database |
US20030195889A1 (en) * | 2002-04-04 | 2003-10-16 | International Business Machines Corporation | Unified relational database model for data mining |
CN1549182A (zh) * | 2003-05-15 | 2004-11-24 | 季永萍 | 基于移动计算的新技术专业增值服务的实现装置 |
US20050222931A1 (en) * | 2003-08-27 | 2005-10-06 | Ascential Software Corporation | Real time data integration services for financial information data integration |
US20080077570A1 (en) * | 2004-10-25 | 2008-03-27 | Infovell, Inc. | Full Text Query and Search Systems and Method of Use |
WO2007149623A2 (en) * | 2006-04-25 | 2007-12-27 | Infovell, Inc. | Full text query and search systems and method of use |
WO2008005102A2 (en) * | 2006-05-13 | 2008-01-10 | Sap Ag | Consistent set of interfaces derived from a business object model |
US20080208904A1 (en) * | 2007-02-26 | 2008-08-28 | Friedlander Robert R | System and method for deriving a hierarchical event based database optimized for analysis of complex accidents |
CN102597992A (zh) * | 2009-07-22 | 2012-07-18 | 卡罗林·帕特里希亚·麦格瑞戈 | 用于多维时态数据挖掘的系统、方法和计算机程序 |
US20140312346A1 (en) * | 2009-11-13 | 2014-10-23 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and manufacturing method thereof |
CA2731588A1 (en) * | 2010-02-15 | 2011-08-15 | Accenture Global Services Limited | Machine to machine architecture |
US20120123984A1 (en) * | 2010-11-16 | 2012-05-17 | International Business Machines Corporation | Optimal persistence of a business process |
CN102081655A (zh) * | 2011-01-11 | 2011-06-01 | 华北电力大学 | 基于贝叶斯分类算法的信息检索方法 |
US8631048B1 (en) * | 2011-09-19 | 2014-01-14 | Rockwell Collins, Inc. | Data alignment system |
US20140372346A1 (en) * | 2013-06-17 | 2014-12-18 | Purepredictive, Inc. | Data intelligence using machine learning |
WO2014204970A1 (en) * | 2013-06-17 | 2014-12-24 | Purepredictive, Inc. | Data intelligence using machine learning |
GB201315611D0 (en) * | 2013-09-03 | 2013-10-16 | Ibm | Method and system for accessing a set of data tables in a source database |
US20150242409A1 (en) * | 2014-02-22 | 2015-08-27 | SourceThought, Inc. | Automated Data Shaping |
WO2016023471A1 (zh) * | 2014-08-11 | 2016-02-18 | 张锐 | 手写输入字符的处理、数据拆分和合并及编解码处理方法 |
US20160132787A1 (en) * | 2014-11-11 | 2016-05-12 | Massachusetts Institute Of Technology | Distributed, multi-model, self-learning platform for machine learning |
Non-Patent Citations (4)
Title |
---|
A ROSTIN: "A Machine Learning Approach to Foreign Key Discovery", 《INTERNATIONAL WORKSHOP ON THE WEB & DATABASES》 * |
JING-FENG GUO: "An Efficient Relational Decision Tree Classification Algorithm", 《THIRD INTERNATIONAL CONFERENCE ON NATURAL COMPUTATION (ICNC 2007)》 * |
徐光美等: "朴素贝叶斯分类器一阶扩展的注记", 《计算机工程》 * |
罗静: "互联网表格数据的语义恢复", 《中国优秀硕士学位论文全文数据库 信息科技》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457341A (zh) * | 2019-07-03 | 2019-11-15 | 平安科技(深圳)有限公司 | 数据聚合方法、装置、计算机设备及存储介质 |
CN110457341B (zh) * | 2019-07-03 | 2024-05-07 | 平安科技(深圳)有限公司 | 数据聚合方法、装置、计算机设备及存储介质 |
CN111124366A (zh) * | 2019-12-23 | 2020-05-08 | 南京航空航天大学 | 一种基于信息检索的需求追踪恢复方法 |
CN111124366B (zh) * | 2019-12-23 | 2021-11-16 | 南京航空航天大学 | 一种基于信息检索的需求追踪恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109804362B (zh) | 2023-05-30 |
US10692015B2 (en) | 2020-06-23 |
CA3030845A1 (en) | 2018-01-18 |
EP3455750A1 (en) | 2019-03-20 |
WO2018013318A1 (en) | 2018-01-18 |
EP3455750A4 (en) | 2020-01-22 |
US20200311608A1 (en) | 2020-10-01 |
US11526809B2 (en) | 2022-12-13 |
US20180018579A1 (en) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109804362A (zh) | 通过机器学习确定主键-外键关系 | |
US11250042B2 (en) | Taxonomy enrichment using ensemble classifiers | |
Pezzoni et al. | How to kill inventors: testing the Massacrator© algorithm for inventor disambiguation | |
WO2018194812A1 (en) | Hybrid approach to approximate string matching using machine learning | |
US20220164363A1 (en) | Data extraction system | |
El Mabrouk et al. | Towards an intelligent hybrid recommendation system for e-learning platforms using data mining | |
Shah et al. | Sentimental Analysis Using Supervised Learning Algorithms | |
JP6488753B2 (ja) | 情報処理方法 | |
JP2020166806A (ja) | 機械学習用のデータ構造、学習方法及び情報提供システム | |
US20190164016A1 (en) | Clustering subject matter experts based on question and answer ratings | |
Rifat et al. | Educational performance analytics of undergraduate business students | |
Pan et al. | Stagewise learning for noisy k-ary preferences | |
CN108431806B (zh) | 辅助搜索查询 | |
Latifah et al. | Prediction analysis of Student specialization suitability using artificial neural network algorithm | |
Pradhan et al. | Machine learning architecture and framework | |
Jindal et al. | Data mining in education for students academic performance: A systematic review | |
US20230012895A1 (en) | Geo javascript object notation (json)-based ethnic classifier and search engine for an online search tool | |
US20240028952A1 (en) | Apparatus for attribute path generation | |
Bikki | Machine learning for text categorization: experiments using clustering and classification | |
ODIAKAOSE | A COMPARATIVE ANALYSIS OF MACHINE LEARNING ALGORITHMS: A CASE STUDY OF A HIGHER EDUCATIONAL INSTITUTION | |
Bannet Tumuhimbise et al. | Advanced Prediction of a student in a university using Machine Learning techniques | |
Ayala Hernández et al. | TAPON: a two-phase machine learning approach for semantic labelling | |
Hossain et al. | Predicting the Specialized areas of Computer Science Students of Bachelor of Science Level Analyzing Academic Statements Using Machine-learning Approaches | |
Mahardika | Literature Review: Data Mining For Student Data Classification | |
Alsulami | USING DATA MINING TECHNIQUES TO PREDICT THE ACADEMIC PERFORMANCE THROUGH E-LEARNING TO SUPPORT DECISION MAKING IN THE HIGHER EDUCATION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210927 Address after: California, USA Applicant after: HITACHI DATA SYSTEMS Corp. Address before: New jersey, USA Applicant before: IO-TAHOE LLC |
|
GR01 | Patent grant | ||
GR01 | Patent grant |