CN113780467A - 模型训练方法、装置、计算机设备及存储介质 - Google Patents
模型训练方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113780467A CN113780467A CN202111138590.0A CN202111138590A CN113780467A CN 113780467 A CN113780467 A CN 113780467A CN 202111138590 A CN202111138590 A CN 202111138590A CN 113780467 A CN113780467 A CN 113780467A
- Authority
- CN
- China
- Prior art keywords
- data
- model
- training
- column
- type
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 268
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000003860 storage Methods 0.000 title claims abstract description 10
- 239000013598 vector Substances 0.000 claims description 41
- 238000011156 evaluation Methods 0.000 claims description 21
- 238000013145 classification model Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 22
- 238000013473 artificial intelligence Methods 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000004458 analytical method Methods 0.000 description 29
- 238000012545 processing Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 18
- 238000004140 cleaning Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000004913 activation Effects 0.000 description 7
- 238000007619 statistical method Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000002679 ablation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 235000004257 Cordia myxa Nutrition 0.000 description 1
- 244000157795 Cordia myxa Species 0.000 description 1
- 241000218207 Ranunculus acris Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002779 inactivation Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及人工智能技术领域,提供了一种模型训练方法、装置、计算机设备及存储介质,所述方法包括:获取结构化训练数据,其中,结构化训练数据包括多个列的训练数据;根据每一列的训练数据确定每一列的数据类型;根据多个列中目标列的数据类型及多个列的训练数据的数据量,确定待训练模型,其中,目标列的训练数据用作训练所述待训练模型时的标签数据;将结构化训练数据输入待训练模型进行训练,得到训练后的模型。本发明提供的训练方法,其训练过程只需要用户提供结构化训练数据并指定其中的目标列,不需要用户过多的干预和操作,由此大大降低了人工智能技术的应用的技术门槛,有助于推动人工智能技术的普及应用。
Description
技术领域
本发明涉及人工智能技术领域,具体而言,涉及一种模型训练方法、装置、计算机设备及存储介质。
背景技术
目前,人工智能技术的应用通常还是有一定的技术门槛,普通用户必须依靠具备机器学习或者深度学习的背景知识的技术人员提供技术支持,才能将人工智能技术应用于实际应用场景。
发明内容
本发明的目的在于提供了一种模型训练方法、装置、计算机设备及存储介质,其能够大大降低人工智能技术的应用的技术门槛,普通用户只需要提供结构化数据,即可得到一个满足指定要求的训练后的模型,并可以利用训练后的模型进行指定的预测任务。
为了实现上述目的,本发明采用的技术方案如下:
第一方面,本发明提供一种模型训练方法,所述方法包括:获取结构化训练数据,其中,所述结构化训练数据包括多个列的训练数据;根据每一列的训练数据确定所述每一列的数据类型;根据所述多个列中目标列的数据类型及所述多个列的训练数据的数据量,确定待训练模型,其中,所述目标列的训练数据用作训练所述待训练模型时的标签数据;将所述结构化训练数据输入所述待训练模型进行训练,得到训练后的模型。
第二方面,本发明提供一种模型训练装置,所述装置包括:获取模块,用于获取结构化训练数据,其中,所述结构化训练数据包括多个列的训练数据;确定模块,用于根据每一列的训练数据确定所述每一列的数据类型;确定模块,还用于根据所述多个列中目标列的数据类型及所述多个列的训练数据的数据量,确定待训练模型,其中,所述目标列的训练数据用作训练所述待训练模型时的标签数据;训练模块,用于将所述结构化训练数据输入所述待训练模型进行训练,得到训练后的模型。
第三方面,本发明提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述的模型训练方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的模型训练方法。
与现有技术相比,本发明通过自动确定结构化训练数据每一列的数据类型,根据目标列的数据类型及结构化训练数据的数据量自动确定待训练模型,并利用结构化训练数据自动对待训练模型进行训练,最终得到训练后的模型,整个训练过程只需要用户提供结构化训练数据并指定其中的目标列,不需要用户过多的干预和操作,由此大大降低了人工智能技术的应用的技术门槛,有助于推动人工智能技术的普及应用。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的模型训练的框架图。
图2为本发明实施例提供的一种模型训练方法的流程示例图。
图3为本发明实施例提供的另一种模型训练方法的流程示例图。
图4为本发明实施例提供的类型树的示例图。
图5为本发明实施例提供的另一种模型训练方法的流程示例图。
图6为本发明实施例提供的另一种模型训练方法的流程示例图。
图7为本发明实施例提供的另一种模型训练方法的流程示例图。
图8为本发明实施例提供的另一种模型训练方法的流程示例图。
图9为本发明实施例提供的模型训练装置的方框示意图。
图10为本发明实施例提供的计算机设备的方框示意图。
图标:10-计算机设备;11-处理器;12-存储器;13-总线;14-通信接口;100-模型训练装置;110-获取模块;120-确定模块;130-训练模块;140-评估模块;150-对应模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参考图1,图1为本发明实施例提供的模型训练的框架图,图1中,模型训练的框架主要包括以下几个处理部分:获取结构化数据、确定结构化数据的数据类型、根据结构化数据中目标列的类型确定待训练模型,将结构化数据输入待训练模型进行训练,最终得到训练后的模型,整个处理过程中用户只需要提供结构化数据及指定目标列,即可在不需要人工干预的情况下实现模型的自动训练。
作为一种具体实施方式,获取结构化数据之后,在确定结构化数据的数据类型之前,通常需要对结构化数据进行清洗处理以剔除掉其中无用的数据,减少后续处理的数据量,提高处理效率,清洗处理通常包括、但不限于按列去重、按行去重、去除整列空、去除整列空等。
作为另一种具体实施方式,在对待训练模型进行训练时,首先需要对结构化数据进行编码,编码方式可以按照结构化数据的每一列的数据类型采用对应的编码方式,最后再将作为训练数据的编码及对应的标签数据的编码输入待训练模型,以对待训练模型进行训练。
需要说明的是,上述模型训练的框架图只是一种示意图,在实际应用过程中,可以根据需要增加其他处理,例如,对结构化数据的分析,对分析结果进行统计,并将统计结果进行展示,分析结果可以、但不限于删除的行数、删除的列数、每一列的取值情况等。
基于图1的模型训练的框架,本发明实施例提供了一种模型训练方法,请参照图2,图2为本发明实施例提供的一种模型训练方法的流程示例图,该方法包括以下步骤:
步骤S100,获取结构化训练数据,其中,结构化训练数据包括多个列的训练数据。
在本实施例中,结构化训练数据是结构化形式的训练数据,结构化形式的数据的组织形式可以直接是csv格式,tsv格式之类的表格形式,也可以其他形式转化成的表格形式,例如,可以是json形式,对于json形式的数据,需要将json数据按照key、value展开,转化为表格数据。转化为表格数据后的结构化训练数据包括多个列的训练数据。
步骤S110,根据每一列的训练数据确定每一列的数据类型。
在本实施例中,正常情况下,每一列的训练数据的数据类型通常是相同的,该数据类型即为该列的数据类型,但是,由于在获取结构化训练数据时可能出现错误,遗漏等情况,为了自动排除这些错误带来的干扰,根据每一列的训练数据确定每一列的数据类型,可以根据每一列中每一个训练数据的数据类型确定每一列的数据类型,例如,列a包括10个训练数据,其中有7个训练数据的类型为数值型,则将列a的数据类型确定为数值型,也可以根据每一列中每一个训练数据的取值确定每一列的数据类型,例如,列b包括10个训练数据,其中有7个训练数据的取值为字符串、且字符串的长度小于预设长度,则将列b的数据类型确定为短文本类型。
步骤S120,根据多个列中目标列的数据类型及多个列的训练数据的数据量,确定待训练模型,其中,目标列的训练数据用作训练待训练模型时的标签数据。
在本实施例中,目标列可以有用户预先指定,目标列可以是一列或者多列,当目标列为多列时,多个目标列可以并行参与模型训练,最终利用训练后的模型进行预测时,可以对多个目标列进行并行预测,再按照预设格式将目标列的列名及对应的预测结果进行组织并向用户展示。
步骤S130,将结构化训练数据输入待训练模型进行训练,得到训练后的模型。
在本实施例中,结构化训练数据中目标列的训练数据为标签数据,与目标列属于同一行的其他列的数据为对应的训练数据,将训练数据及对应的标签数据输入待训练模型,对待训练模型进行训练。
本实施例提供的上述方法,通过自动确定结构化训练数据每一列的数据类型,根据目标列的数据类型及结构化训练数据的数据量自动确定待训练模型,并利用结构化训练数据自动对待训练模型进行训练,最终得到训练后的模型,整个训练过程不需要用户过多的干预和操作,由此大大降低了人工智能技术的应用的技术门槛。
在图1的基础上,本发明实施例还提供了一种确定每一列的数据类型的具体实现方式,请参照图3,图3为本发明实施例提供的另一种模型训练方法的流程示例图,步骤S110包括以下子步骤:
子步骤S1101,确定每一列的每一个训练数据的数据类型。
在本实施例中,作为一种确定每一个训练数据的数据类型的具体实现方式可以为:
(1)根据实际应用场景创建一个类型树。
在本实施例中,类型树包括一个根节点、根节点包括至少一个子节点,每一个子节点可以包括一层或者多层子节点,也可以包括至少一个叶子节点,叶子节点不再包括任何节点,在类型树中,每一个节点,无论是根节点、父节点、子节点还是叶子节点均表征一种数据类型,子节点表征的数据类型是父节点表征的数据类型的子类型,也就是说,对于同一个父节点包括多个子节点而言,每个子节点表征的数据类型均属于其父节点表征的数据类型的子类型。请参照图4,图4为本发明实施例提供的类型树的示例图,图4中,根节点A表征的数据类型为字符串,即所有数据类型都可以表示为字符串类型,根节点A包括四个子节点:表征数值类型的A1、表征文件路径类型的A2、表征字符串日期类型的A3和表征字符串日期时间类型的A4,即数值类型、文件路径类型、字符串日期类型及字符串日期时间类型都是字符串的子类型,A2包括3个叶子节点:A21、A22、A23,分别表征的数据类型为:图片文件类型、视频文件类型和音频文件类型。A1包括两个子节点:A11和A12,分别表征整数类型和浮点数类型,A12没有包括子节点,因此,A12为叶子节点,A11包括3个叶子节点:A111、A112和A113,分别表征时间戳类型、数值日期型及数值日期时间型。
(2)将任一列中任一待分析数据作为目标数据,并将根节点作为起始节点,遍历类型树,直至确定出目标数据的数据类型。
在本实施例中,具体遍历过程可以是:首先,判断待分析数据的数据类型是否为起始节点表征的数据类型;若否,则遍历结束,该类型树中不存在与目标数据的数据类型相同的子节点或者叶子节点;若是,则逐一遍历根节点的子节点,即逐一将根节点的子节点作为待访问节点,并将该待访问节点作为起始节点;其次,(a)判断目标数据的数据类型是否为起始节点表征的数据类型;(b)若目标数据的数据类型是起始节点表征的数据类型,则将起始节点中未访问过的子节点确定为待访问节点;(c)若目标数据的数据类型不是起始节点表征的数据类型,则将起始节点的父节点确定为待访问节点;(d)将待访问节点作为起始节点重复(a)、(b)和(c),直至起始节点为叶子节点,且目标数据的数据类型为起始节点表征的数据类型,以确定出目标数据的数据类型。
需要说明的是,还可能存在另一种情况:目标数据的数据类型不是该类型树中叶子节点表征的任一类型,即类型树中不存在与目标数据的数据类型一致的叶子节点,此时,可以根据类型树遍历的情况,将类型树中与目标数据的数据类型对应的、且距离叶子节点最近层级的节点表征的类型作为目标数据的数据类型。
(3)将目标数据的数据类型作为参考数据类型,根据类型树及参考数据类型,确定每一列中其他待分析数据的数据类型。
在本实施例中,作为一种确定其他待分析数据的数据类型的具体实现方式为:首先,以类型树中与参考数据类型对应的叶子节点为起始节点,判断待分析数据的数据类型是否为起始节点表征的数据类型;若待分析数据的数据类型是为起始节点表征的数据类型,则将起始节点表征的数据类型确定为待分析数据的数据类型,否则,将起始节点的父节点作为起始节点,并从起始节点开始遍历类型树,直至确定出待分析数据的数据类型。此处的遍历类型树的过程与上述(a)、(b)、(c)和(d)描述的方式类似,只不过其中的目标数据为此处的待分析数据,具体遍历过程此处不再赘述。
子步骤S1102,若每一列中具有相同数据类型的训练数据的个数超出预设个数,则将相同数据类型作为每一列的数据类型。
在本实施例中,预设个数可以根据实际需要进行设置,例如预设个数设置为1000,在本实施例中,若超出预设个数的相同类型为多个,则可以选择相同数据类型的训练数据的个数最大的数据类型作为每一列的数据类型,例如,列a包括5000个数据,其中,预设个数为1000,其中2000个数据的数据类型相同为类型1,3000个数据的数据类型为类型2,则将类型2作为列a的数据类型。
本实施例提供的上述方法,利用每一列数据中数据类型相同的训练数据的数据类型作为该列的数据类型,使得确定的列的数据类型更合理。
在图1的基础上,本发明实施例还提供了一种确定训练模型的具体实现方式,请参照图5,图5为本发明实施例提供的另一种模型训练方法的流程示例图,步骤S120包括以下子步骤:
子步骤S1201,根据目标列的数据类型,确定待训练模型的目标类型。
在本实施例中,目标列的数据类型可以为数值型、类别型、其中,单标签类型和多标签类型均属于类别型,单标签类型只包括一个标签,例如杯子,其取值只有两种,例如,是杯子还是不是杯子,多标签类型包括多个标签,例如,杯子,颜色,其的取值可以有多种黄色杯子、蓝色杯子和红色杯子。
在本实施例中,待训练模型的类型包括、但不限于回归类型、分类类型,作为一种确定待训练模型的目标类型具体方式可以是:
若目标列的数据类型为数值型,则确定待训练模型的目标类型为回归模型。
若目标列的数据类型为类别型,则确定待训练模型的目标类型为分类模型。
在本实施例中,回归模型为回归类型的模型,分类模型为分类类型的模型。
子步骤S1202,根据多个列的训练数据的数据量,从类型为目标类型的预设模型中确定待训练模型。
在本实施例中,每一目标类型均包括多个预设模型,为了节省训练时间,根据数据量,从类型为目标类型的预设模型中确定待训练模型,例如,如果训练数据的数据量不超过1万条,用神经网络、lightgbm、sklearn进行训练;如果超过1万条,用神经网络和lightgbm进行训练。另外,作为一种具体实施方式,为了节约训练时间,如果目标列的类型为时间序列和日期时间,则使用神经网络模型进行训练。
本实施例提供的上述方法,根据目标列的数据类型自动确定待训练模型的目标类型,使得确定的待训练模型更符合结构化训练数据的特点,以便得到更准确、更合理的训练后的模型。
在图1的基础上,本发明实施例还提供了一种确定训练模型的具体实现方式,请参照图6,图6为本发明实施例提供的另一种模型训练方法的流程示例图,步骤S130包括以下子步骤:
子步骤S1301,根据每一列的数据类型,确定每一列的编码方式。
在本实施例中,列的数据类型包括、但不限于非序列数值型、非序列时间型、序列类型、单标签类型、多标签类型、短文本类型、长文本类型、图像类型及语音类型等。
(1)非序列数值型
在本实施例中,当列数据为非序列数值型时,对于该列数据中的任一待编码数据,可以采用如下方式进行编码:
首先,对待编码数据进行对数计算,得到待编码数据的第一数据,第一数据在当待编码数据满足预设条件时解码时使用。
在本实施例中,预设条件用于表征待编码数据为大于第一预设值的大数,当待编码数据满足预设条件时,待编码数据为大数,此时需要按照大数的处理方式对待编码数据进行解码,否则,需要按照非大数的处理方式对待编码数据进行解码。由此可以对很大的待编码数据和很小的待编码数据都能合理编码。
其次,对该列中所有数据进行平均,得到平均值。
第三,根据待编码数据及所述平均值,得到待编码数据的第二数据,第二数据在当待编码数据不满足预设条件时解码时使用。
需要说明的是,预设条件还可以通过第二数据表示,例如,当第二数据大于第二预设值时,则认为待编码数据不满足预设条件,此时根据第二数据进行反编码运算,得到待编码数据,当第二数据不大于第二预设值时,则认为待编码数据满足预设条件,此时根据第一数据进行反编码运算,得到待编码数据。
第四,根据待编码数据的符号类型,确定待编码数据的第三数据。
第五,将待编码数据的第一数据、第二数据及第三数据进行组合,得到待编码数据的编码。
(2)非序列时间型
在本实施例中,当列数据为非序列时间型时,对于该列数据中的任一待编码数据,可以采用如下方式进行编码:
首先,将待编码数据按照预设时间单位进行分段,得到多个待编码段。
在本实施例中,预设时间单位可以是“年”、“月”、“日”、“时”、“分”、“秒”,分别对应不同的归一化因子,例如,其归一化因子可以分别为:3000、12、31、24、60、60。
其次,按照每一待编码段对应的归一化因子,对每一待编码段进行归一化编码,得到每一待编码段的编码。
最后,将所有待编码段的编码进行组合,得到待编码数据的编码。
(3)序列类型
在本实施例中,列数据中的待编码数据包括多个顺序的数据,对于该列数据中的任一待编码数据,可以采用如下方式进行编码:
首先,确定序列类型的子类型。
在本实施例中,序列类型包括至少一种子类型,子类型可以、但不限于日期型、时间型、日期时间型、单标签型、数值型等。
其次,根据子类型,对待编码数据中最后一个数据进行编码,得到待编码数据的初始编码。
在本实施例中,当子类型为日期型、时间型、日期时间型时,可以首先采用上述非序列时间型的方法对待编码数据中最后一个数据进行编码,然后再对编码得到每一个段的数据进行预设三角函数运算,例如正弦、余弦运算(类似于用BERT中类似的位置编码),最终得到待编码数据的初始编码,故,对于一个日期时间型数据,经过非序列时间型的方法可以得到长度为6的向量,每一个向量进行正弦、余弦运算,最终得到的初始编码为长度为12的向量;当子类型为数值型时,可以采用上述非序列数值型的方法对待编码数据中最后一个数据进行编码,得到待编码数据的初始编码,也可以直接采用最大值、最小值进行编码,例如将待编码数据除以最大值或者最小值,得到其初始编码。如果子类型为单标签分类类别,这种情况与多标签分类类别很相似,但是多标签分类的长度都相同且标签缺失值很少,而时间序列的数组长度可以不一样,对数据的容忍度更高。
最后,将初始编码输入预先训练的编码器进行编码,得到待编码数据的编码。
需要说明的是,若待编码数据为表征预设特征的数据,则将预设位更新至待编码数据的编码中,可以在待编码数据的编码中增加一个标志位,例如,将该标志位设置为1,若待编码数据不为保证预设特征的数据,则将该标志位设置为0。一方面,在训练时,如果为0,那么0乘以任何数都为0,相当于这个神经元对网络没有贡献;另一方面,与被激活函数抑制掉的输出难以区分,一般会经过激活层(如relu)来处理一层神经网络层的输出,输出小于0的会被抑制掉,由此保证了神经网络模型的稳定性。
作为一种具体实施方式,训练编码器的方式为:
首先,获取训练数据,其中,训练数据包括多个顺序排列的初始编码和每一初始编码的标签,任意相邻的两个初始编码中的后一个初始编码为前一个初始编码的标签。
其次,将所有初始编码输入编码器,得到预测数据。
最后,根据预测数据及每一初始编码的标签对编码器进行参数更新,直至满足预设终止条件,得到训练后的编码器。
(4)单标签类型:用one-hot编码方式编码/解码。
在本实施例中,在人工智能领域,one-hot编码后得到的是one-hot向量,one-hot向量将类别变量转换为机器学习算法易于利用的一种形式的过程,这个向量的表示为一项属性的特征向量,也就是同一时间只有一个激活点(不为0),这个向量只有一个特征是不为0的,其他都是0,特别稀疏。例如,性别有“男性”、“女性”,这个特征有两个特征值,也只有两个特征值,如果这个特征进行one-hot编码,则特征值为“男性”的编码为“10”,“女性”的编码为“01”。作为一种具体实施方式,对于结构化数据中的单标签类型的列,首先统计这一列有多少种(记为N)不同的值情况,将这些取值情况按照一定的顺序保存起来,用于解码。用one-hot编码方式对数据进行编/解码,one-hot的维度为N,N的上限取值N_max大于预设判定阈值,该预设判定阈值用于判定单标签类型的阈值,N_max可以取值为20000。
(5)多标签类型,用sklearn的MultiLabelBinarizer进行编/解码。
在本实施例中,作为一种具体实施方式,对于结构化数据中的多标签类型的列,该列通常为目标列(该列包括表征预测结果的特征的目标数据)或者特征列为比较短(例如,长度小于128)的数组情况,且每个数据的长度可能不一样,如标注问题。多标签类型的列可以用sklearn的MultiLabelBinarizer进行编/解码。同样也会保存每种取值情况,用于解码。
(6)短文本类型
在本实施例中,对于结构化数据,短文本类型的列通常为表征预设特征的特征列,段文本类型的定义可以是:短文本字数不超过15字,字表不超过128。
在本实施例中,短文本类型可以采用训练后的短文本编/解码器进行编/解码,作为一种具体实施方式,短文本编/解码器可以由2层全连接(全连接层1和全连接层2)、1个激活层、1个dropout层构成,网络结构可以为:全连接层1(输入维度为文本最大长度,输出维度为隐藏层大小)、dropout、全连接2(输入维度为隐藏层大小,输出维度为文本最大长度)、激活层,其中全连接层1就是短文本编码器,全连接层2就是短文本解码器。短文本编/解码器训练方式与文本训练类似,此处不再赘述。
(7)长文本类型
在本实施例中,长文本类型的数据可以直接用自然语言处理模型的预训练模型(例如BERT系列)进行编码即可,可以使用这类模型的embedding层(embedding的过程是用一个低维的向量表示一个词,能够用低维向量对物体进行编码还能保留其含义的特点)进行编码。
(8)图像类型
在本实施例中,可以用图像分类处理模型的预训练模型(如ResNet18、ResNet50)对图像类型的数据进行编码,使用图像分类处理模型除最后一层(分类层)的其他层,也即是原网络最后一层的输入向量就是需要的向量,将其排列为一维向量作为图像的编码结果。对于图像类型的数据的预处理过程与图像分类模型一致。例如,如果为视频,将视频拆帧处理采样后(最多采样16张),再对每张图片进行编码,然后将所有图片拼接在一起,构成一个一维向量。
(9)语音类型
在本实施例中,语音类型的数据可以用语音处理工具处理后变成数值型的时间序列,然后再用上述实施例中对序列类型的数据进行编码的方式进行编码即可。
子步骤S1302,按照特征列的编码方式对每一行的特征列的训练数据进行编码,得到每一行的训练向量。
在本实施例中,结构化训练数据包括多行训练数据,每一行训练数据包括多个按列组织的训练数据,多个列包括特征列和预设目标列。例如,某一行数据包括3个特征列的数据:列1的a、列2的b和列3的c,根据a、b和c各自的数据类型,分别对a、b和c进行编码,得到a、b和c的编码,将a、b、c的编码进行组合,得到该行的训练向量。
子步骤S1303,按照预设目标列的编码方式对每一行的预设目标列的训练数据进行编码,得到每一行的目标向量。
子步骤S1304,将所有行的训练向量作为训练数据、并将所有行的目标向量作为标签数据输入待训练模型,对待训练模型进行训练,得到训练后的模型。
在本实施例中,同一行的训练向量和目标向量对应,即对于任意一行,该行的目标向量为该行的训练向量的标签数据。
需要说明的是,对于不同类型的待训练模型,其采用的优化函数、损失函数等也有所区别。
如果待训练模型为回归模型,用L2范数(或者称L2正则化)作为模型的优化函数;如果待训练模型为分类模型,则用带有权重的logloss交叉熵作为模型的优化函数,权重为目标类的各类别占比的倒数;如果待训练模型处理的是日期时间和时间序列任务,用MSE作为模型的优化函数。
如果待训练模型为lightgbm和sklearn,根据训练的一轮训练时间来决定用格点搜索模型的超参数还是启发式搜索超参数。具体的,如果一轮训练不超过设定时间(通常为20秒),则使用格点搜索超参的方式搜索模型的超参数;否者用启发式搜索超参数,如果在试验中增大超参数,模型效果变差,则提前终止当前试验,超参数回到原始值,试验较小超参数或者减小超参数增大的幅度。记loss为模型在验证集上的损失(loss>=0),param为参数,记fix为分母修正数(通常取0.00001),
若:param1->param2(设param2>param1),则loss2->loss1;
同理若:param2->param3=param2+(param2-param1),则loss2->loss3,记:
result1=((loss2-loss1)/(loss1+fix))/((param2-param1)/(abs(param1)+fix))
result2=((loss3-loss2)/(loss2+fix))/((param3-param2)/(abs(param2)+fix))
若result1>0且result2>0且result2/result1大于1,则终止当前训练,否则继续训练。
如果待训练模型为神经网络模型,用ranger优化器进行优化,该优化器能自动搜索超参数。神经网络为多个线性层、激活层、dropout层组成。一般的,默认网络由6层构成,全连接层1、dropout、全连接层2、dropout、全连接层3、激活层。其中,全连接层1的输入维度为特征向量的长度,输出维度为隐藏层1大小,隐藏层1的大小=max(4,int(输入维度/16));全连接层2的输入和输出维度为隐藏层1的大小,全连接层3的输入维度为隐藏层1的大小,输出维度为目标列向量的长度。dropout的失活因子一般设置为0.2,激活层可以选择selu等激活函数。
需要说明的是,待训练模型可以为多个,多个待训练模型训练后,在测试集上进行测试,从多个待训练模型中选取效果最好的模型作为最后的模型,用损失函数进行评估效果,损失函数的值越小效果越好。
还需要说明的是,可以为最终确定的模型生成一个通用唯一识别码UUID(Universally Unique Identifier,UUID)表示该模型,并将该ID返回给用户,以便用户使用该ID定位到该模型。作为一种具体实现方式,模型训练完成后,还可以将模型、列类型、列的编/解码器的参数持久化至文件中,供后续使用。
本实施例提供的上述方法,自动将特征列作为训练数据、并将对应的目标列作为标签数据,将训练数据和对应的标签数据输入待训练模型,实现了待训练模型的训练的自动化。
在本实施例中,为了使用户可以更清楚、更直观地了解特征列的重要性,本发明实施例还提供了一种对特征列的重要性进行评估的具体实现方式,请参照图7,图7为本发明实施例提供的另一种模型训练方法的流程示例图,该方法包括以下步骤:
步骤S140,对每一特征列的重要性进行分析,得到每一特征列的评估值。
在本实施例中,如果模型自身包含特征列重要性分析功能,则用模型自身的输出重要性值作为评估值,例如lightgbm,如果模型自身不包含特征列重要性分析功能,则用消融法来评估该列的重要性,并将重要性量化为评估值。
步骤S150,根据每一特征列的评估值,生成评估报告。
在本实施例中,评估报告可以包括每一特征列及其对应的评估值,可以按照评估值的大小进行排序显示,或者按照评估值的大小进行不同颜色的显示。
在本实施例中,为了使用户更方便地使用训练后的模型,本发明实施例还提供了一种方便索引的具体实现方式,请参照图8,图8为本发明实施例提供的另一种模型训练方法的流程示例图,该方法包括以下步骤:
步骤S160,为训练后的模型生成模型标识。
在本实施例中,模型标识为表征该模型的唯一标识,模型标识可以根据模型的类型及预设序号生成,例如,模型标识为:回归模型-001。除此之外,用户也可以根据自己的需要指定模型标识,或者配置模型标识中包括的指定信息,例如,模型标识为:车牌识别模型-001。
步骤S170,建立训练后的模型及模型标识之间对应关系。
在本实施例中,训练后的模型可以包括模型的主要属性,例如模型的类型、模型的参数,模型的参数包括、但不限于模型包括的层、层数、卷积核等。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种模型训练装置100的实现方式。请参照图9,图9示出了本发明实施例提供的模型训练装置100的方框示意图。需要说明的是,本实施例所提供的模型训练装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
模型训练装置100包括获取模块110、确定模块120、训练模块130、评估模块140及对应模块150。
获取模块110,用于获取结构化训练数据,其中,所述结构化训练数据包括多个列的训练数据。
确定模块120,用于根据每一列的训练数据确定所述每一列的数据类型。
确定模块120,还用于根据所述多个列中目标列的数据类型及所述多个列的训练数据的数据量,确定待训练模型,其中,所述目标列的训练数据用作训练所述待训练模型时的标签数据。
作为一种具体实施方式,确定模块120具体用于:确定所述每一列的每一个训练数据的数据类型;若所述每一列中具有相同数据类型的训练数据的个数超出预设个数,则将所述相同数据类型作为所述每一列的数据类型。
作为一种具体实施方式,确定模块120具体还用于:根据所述目标列的数据类型,确定所述待训练模型的目标类型;根据所述多个列的训练数据的数据量,从类型为所述目标类型的预设模型中确定所述待训练模型。
作为一种具体实施方式,确定模块120在用于根据所述目标列的数据类型,确定所述待训练模型的目标类型时,具体还用于:若所述目标列的数据类型为数值型,则确定所述待训练模型的目标类型为回归模型;若所述目标列的数据类型为类别型,则确定所述待训练模型的目标类型为分类模型。
训练模块130,用于将所述结构化训练数据输入所述待训练模型进行训练,得到训练后的模型。
作为一种具体实施方式,结构化训练数据包括多行训练数据,每一行所述训练数据包括多个按列组织的训练数据,多个列包括特征列和预设目标列,训练模块130具体用于:根据每一所述列的数据类型,确定每一所述列的编码方式;按照所述特征列的编码方式对每一行的特征列的训练数据进行编码,得到每一行的训练向量;按照所述预设目标列的编码方式对每一行的预设目标列的训练数据进行编码,得到每一行的目标向量;将所有行的所述训练向量作为训练数据、并将所有行的所述目标向量作为标签数据输入所述待训练模型,对所述待训练模型进行训练,得到训练后的模型。
评估模块140,用于:对每一特征列的重要性进行分析,得到每一特征列的评估值;根据每一特征列的评估值,生成评估报告。
对应模块150,用于:为训练后的模型生成模型标识;建立训练后的模型及模型标识之间对应关系。
基于上述描述的各方法和装置,本发明实施例还给出了一种模型训练系统的具体实现方式,该方式在上述描述的方法和装置基础上进行了扩展和细化,下面将对其进行详细描述,需要说明的是,以下描述的只是一种具体实现方式,事实上,本领域技术人员完全可以在前文记载内容的基础上,根据实际场景的需要,不付出创造性劳动在此基础上进一步增加、修改、或精简。
该模型训练系统以表格数据为输入数据,包括数据接口模块、表格头分析模块、表格训练引擎模块及表格推理服务模块。其中,前三个模块是模型训练过程中的处理模块,最后一个模块是对训练后的模型进行的管理和应用的处理模块,下面将对这些模块进行详细介绍。
(1)数据接口模块
其主要功能用于对输入数据进行合法性检测。输入数据可以是用户通过数据接口模块上传的结构化数据文件或者指定的数据库和表的访问地址,数据接口模块对输入数据进行合法性检测,若通过检测,则继续后续表格头分析模块、表格训练引擎模块及表格推理服务模块的处理,否则进行输入数据不合法的提示。合法性检测的主要步骤包括:
(1.1)输入判断
根据用户输入数据的具体形式不同,采用不同的判断方式,如果用户输入的是文件,即结构化数据存储于该文件中,判断该文件的类型,如果文件是本系统能够支持的文件格式,例如csv、tsv、txt、json、excel等文件格式,则继续后续处理,否则返回不支持该文件格式的错误信息;如果用户输入的是字符串,则判断字符串是否为系统当前支持和能使用的数据库和表格,如果是,则继续后续处理,否则返回暂不支持的错误信息。
(1.2)编码检测,判断文件编码,读取数据
如果输入是文件,则用编码检测工具检测文件的编码,并读取文件到内存或缓存中,如果读取错误,则返回文件错误信息。如果是数据库,则读取数据库的元数据信息,将数据库的类型转化为本系统能够支持的数据类型,然后根据数据库编码信息,读取数据库表中的数据到内存或缓存中。其中的转化过程通过查询数据库与本系统类型转化的映射表实现的,每增加一种类型的数据库,需要增加一个相应的类型映射表。
(1.3)展开数据,转化为表格形式
如果数据为表格类型的数据,如csv,tsv等,则跳过此步骤,直接进入后续处理,如果数据为json数据,则需要将json数据按照key、value的形式将json数据展开,转化为表格数据。如果在转化过程中出错,返回数据错误信息,否则继续后续处理。
(1.4)判断数据是否过少
可以通过数据是否小于预设数据量阈值判断数据是否过少,例如,数据少于2列或者数据少于10行,则返回数据过少的错误信息,否则继续进行后续处理。因为通常情况下,模型训练至少需要2列才能启动,数据少于2列,模型是无法启动训练的;如果小于10列训练效果也很差,没有训练的意义。
(1.5)判断数据列名重复
如果表格中存在重复的列名,则返回列名重复的错误;否则继续进行后续处理。
(2)表格表头分析模块
表格表头分析模块主要包括数据清洗子模块、数据类型分析子模块、数据统计分析子模块及表头报告生成子模块。
(2.1)数据清洗子模块
数据清洗子模块主要对数据按整列去重、按整行去重、去除整列空、去除整列空等,其中的列是按表头分的,数据清洗子模块可以初步清洗掉无用的数据,为后续步骤节省时间,提高效率。
(2.2)数据类型分析子模块
数据类型分析子模块按照列对数据进行类型分析,分析数据的数据类型,数据类型包括、但不限于字符串、数值型、长文本、短文本,文件路径、时间或者日期等。
数据类型分析子模块按照列对数据进行切分,并行的分析每一个列中每个数据的类型,分析每一个列中每个数据的类型可以采用上文描述的数据类型的确定方式进行分析,表1是分析的类型结果的示例。
表1
(2.3)数据统计分析子模块
数据统计分析子模块的主要处理步骤为:
首先,判断每一行每一列的数据是否为可以训练的数据。
根据类型分析子模块对每一列的数据类型的统计结果、每一列数据分布情况、每一列数据的数据特征,判断每一列每一行的数据是否可以作为训练数据,若是,则保留,否则,简化掉不可以作为训练数据或者对模型训练没有任何帮助的数据,由此不仅可以提高模型训练的速度、模型的鲁棒性、泛化能力,还可以减少模型的参数量,进而提高模型的推理速度,给模型使用者更好的体验。具体地,简化的方式包括:1)根据类型分析结果去掉该行类型不匹配的数据,认为该数据为噪声数据;2)去掉该行重复数据;3)去掉该行为起标识作用的ID型的数据,如UUID、自增型ID、hash、数据库外键等,UUID用唯一性占比判断,自增ID用计数法判断,是否为hash数据可以用信息熵去判断,是否数据库外键用正则表达试去判断。
其次,生成数据的分布直方图。
统计最后参与训练的数据的行数、列数,训练过程中删除的行数、列数,以及每一列值有多少种不同的取值情况,每一列值的分布直方图情况。后续处理过程中可以利用统计结果对训练过程进行优化,同时也可以把这些统计结果返回给用户,以更直观方式让用户了解数据处理的过程和结果。
(2.4)表头报告生成子模块
表头报告生成子模块利用数据统计分析子模块的统计结果生成表头报告,该表头报告中包括、但不限于每一列是否可以用来训练,训练过程中会删除的行数、列数,以及每一列有多少个取值,每一列的数据类型。
(3)表格训练引擎模块
表格训练引擎模块包括数据抽取子模块、数据清洗子模块、数据拆分子模块、数据编/解码器子模块、训练及超参调优子模块、模型分析子模块及模型校验子模块。
(3.1)数据抽取子模块
该模块主要根据用户指定的目标列按列拆分数据,目标列可以为多列,用户未指定的列且可以参与模型训练的列为特征列,例如,用户可以指定表头报告生成模块生成的表头报告中可以参与模型训练的列,当目标列为多列时,针对每一个目标列都进行同样的处理。
(3.2)数据清洗子模块
表格训练引擎模块的数据清洗子模块与表头分析清洗子模块流程类似,不同之处在于需要先把特征列和任一目标列拼在一起构成一个数据集,然后再以该目标列为基准去掉空值的行,即如果某一行的该列数据为空,则去掉该行的数据。但每个目标列中的可能空值不一样,因此,需要针对任一目标列独立进行去空。接下来,再执行表头分析清洗子模块中的步骤,在删除列前需要判断是否为目标列,如果为目标列则不可以删除。
(3.3)数据拆分子模块
根据数据统计分析子模块统计的数据分布情况,按照一定比例随机的拆分数据集。一般的,其比例可以设置为:训练:验证:测试=6:2:2。
(3.4)数据编/解码器子模块
根据数据统计分析子模块的统计情况,如果某一列的取值种类数小于分类判定阈值,则将该列数据类型进一步修改为分类型数据,通常为单标签分类,如果该列长度一样且为短文本且字符的取值情况小于20,则为多标签分类。具体的种类数小于10类或者类别数与总行数占比小于1/100。字符型的日期、字符型的日期+时间、数值型的时间戳、数值型的日期、数值型的日期+时间,该列统一为日期时间型数据,该列在编码前,首先转化为统一的日期时间格式(如,20210729120000,16位格式),然后再根据列数据的类型选择对应的编码器,对数据进行编码,把每列特征数据的编码结果组合在一起,作为模型的输入。
作为一种具体实现方式,为表1中的每一种类型的数据设置对应的编码器,数据类型和编码器的对应关系参见表2所示。
表2
数据类型 | 编/解码器 |
单标签分类 | 单标签分类编/解码器 |
多标签分类 | 多分类编/解码器 |
数值 | 数值编/解码器 |
日期时间 | 日期时间编/解码器 |
时间序列 | 时间序列编/解码器 |
短文本(特征列) | 短文本编解码器 |
长文本(特征列) | 长文本编/解码器 |
图像(特征列) | 图像编/解码器 |
语音(特征列) | 语音编/解码器 |
模型训练时,先对特征列和目标列的数据进行编码,然后再进行训练;预测时,先对特征列进行编码,将编码后的特征输入到模型中,得到模型的输出,也即是目标列的编码值,然后再对这个编码值进行解码就得到真实的目标列的值。
需要说明的是,如果特征列有少量类型不一致的数据或者空值,需要先对这些值进行处理,作为一种具体处理方式,可以用对应的编码器编码为一个特殊的值。
为了更直观地表示训练过程和预测过程,设特征列和目标列的类型为Type_i,编码器为Encoder_i,其对应的解码器为Decoder_i,编码后的结果为Result_encode_i。设特征列为Xi,目标列为yi,其中Xi为X0到Xn这n个特征列中的一列。设目标列yi训练对应的模型为Model_i,对应的优化方法为opt_i。
训练过程可以表示为:
opt_i(Model_i(Encode_0(X0),…Encode_i(Xi),…Encode_n(Xn)),Encode_i(yi))。
预测过程可以表示为:
yi=Decode_i(Model_i(Encode_0(X0),…Encode_i(Xi),…Encode_n(Xn)))。
(3.5)训练及超参调优子模块
训练及超参调优子模块的处理主要包括如下步骤:
首先,编码特征列和目标列。
将所有可用的特征列按照数据类型将各个数据列进行编码,得到各列的特征向量,然后将所有列的特征向量拼在一起,构成一个一维向量。将目标列也按照其数据类型进行编码。
其次,进行模型训练及超参调优。
根据目标列的数据类型、训练的数据量、统计分析报告中的统计信息选择合适的模型进行训练。例如,如果目标列的数据类型为数值型和类别型(单标签分类、多标签分类),相应的模型类别分别为回归模型和分类模型。优选的,如果数量不超过1万条,用神经网络、lightgbm、sklearn进行训练;如果超过1万条,为了节省时间,只用神经网络和lightgbm进行训练。如果目标列为时间序列和日期时间,则只使用神经网络模型进行训练。
对于模型训练及超参调优的过程在前文步骤S130极其子步骤中已经描述,此处不再赘述。
(3.6)模型分析子模块
模型分析子模块主要包含特征列的重要性分析,模型在训练集、验证集、测试集上指标。如果模型自身包含特征列重要性分析功能,则用模型自身的值,例如lightgbm,如果模型自身不包含特征列重要性分析功能,则用消融法来评估该列的重要性。还可以根据列评估结果生成评估报告,将评估报告呈现给用户。
模型分析子模块主要包括以下处理:
(a)列重要性分析
如果该模型包含特征重要性分析功能,且该列是编码后的向量数据输入到模型中,则需要统计向量除标志位外每个元素的重要性,然后再求均值。
如果模型未包含特征重要性分析功能,则用消融法来评估该列的重要性。具体方式为:设特征列有n列,则每次去掉其中的一列的值(该列用编码器的默认值进行填充)输入模型评估其指标(loss)得到n个指标值,记列为Xi,指标为loss_i,对于第i列的重要性的计算公式为:importance_i=1.0/(loss_i-min{loss_0,…,loss_i,…,loss_n,loss}),一般将其归一化,归一化后重要性表示为:normal_importance_i=importance_i/sum(importance_0,…,importance_i,…,importance_n)。如果有多个目标列,不同目标列的特征列可能不一样,需要分别分析每一个目标列所对应的模型和特征列,最后把结果按照一定的格式把目标列名和特征重要性列表组织在一起。
(b)模型在训练集、验证集、测试集上指标
为了对模型训练的结果进行评估,通常会采用模型的准确率或者误差等指标,例如,用准确率、F1值等指标评估分类模型,F1值的定义为:
F1值=正确率*召回率*2/(正确率+召回率);用R2、MSE评估回归模型,用平均准确率、平均F1去评估时间序列和日期时间模型。如果有多个目标列,每个目标对应一组指标值。
(3.7)模型校验子模块
模型校验子模块与模型测试子模块一样,为用户提供测试接口,将输入数据自动编码成向量,自动输入至模型中进行推理预测,如果有多个目标列,模型可以并行的对每个目标列进行推理预测,把结果按照一定的格式把目标列名和推理结果(常见的key-value格式)组织在一起,然后把预测结果及置信度(或概率)返回给用户。
(4)表格推理服务模块
表格推理服务模块包括模型管理子模块和模型推理子模块。
(4.1)模型管理子模块
模型训练完成之后,本系统将训练后的模型自动发布到推理服务平台,供用户使用。模型管理模块可以位于推理平台,模型管理子模块主要功能是将训练后的模型载入到内存,并进行管理。根据用户使用模型的频率和时间用最近最少使用lru(Least RecentlyUsed,LRU)算法管理模型,将使用频率的模型排在后面,将很久都没有使用过的模型持久化到磁盘中后,从内存中删除。一般情况下,设置lru缓存100个模型。
(4.2)模型推理模块
和模型校验模块与模型测试模块一样,模型推理模块可以为用户提供测试接口,将用户的输入数据自动编码成向量,再自动输入到模型中进行推理预测,如果有多个目标列,模型可以并行的对每个目标列进行推理预测,把结果按照一定的格式把目标列名和推理结果(常见的key-value格式)组织在一起,然后把预测结果及置信度(或概率)返回给用户,并行度更高,推理速度更快。
本发明实施例还提供了执行上述模型训练方法的计算机设备,请参照图10,图10为本发明实施例提供的计算机设备10的方框示意图。计算机设备10包括处理器11、存储器12、总线13、通信接口14。处理器11、存储器12通过总线13连接,处理器11通过通信接口14与外部设备通信。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如本发明实施例中的模型训练装置100,模型训练装置100均包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行所述程序以实现本发明实施例中的模型训练方法。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory)。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图10仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
综上所述,本发明实施例提供了一种模型训练方法、装置、计算机设备及存储介质,所述方法包括:获取结构化训练数据,其中,所述结构化训练数据包括多个列的训练数据;根据每一列的训练数据确定所述每一列的数据类型;根据所述多个列中目标列的数据类型及所述多个列的训练数据的数据量,确定待训练模型,其中,所述目标列的训练数据用作训练所述待训练模型时的标签数据;将所述结构化训练数据输入所述待训练模型进行训练,得到训练后的模型。与现有技术相比,本发明通过自动确定结构化训练数据每一列的数据类型,根据目标列的数据类型及结构化训练数据的数据量自动确定待训练模型,并利用结构化训练数据自动对待训练模型进行训练,最终得到训练后的模型,整个训练过程只需要用户提供结构化训练数据并指定其中的目标列,不需要用户过多的干预和操作,由此大大降低了人工智能技术的应用的技术门槛,有助于推动人工智能技术的普及应用。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种模型训练方法,其特征在于,所述方法包括:
获取结构化训练数据,其中,所述结构化训练数据包括多个列的训练数据;
根据每一列的训练数据确定所述每一列的数据类型;
根据所述多个列中目标列的数据类型及所述多个列的训练数据的数据量,确定待训练模型,其中,所述目标列的训练数据用作训练所述待训练模型时的标签数据;
将所述结构化训练数据输入所述待训练模型进行训练,得到训练后的模型。
2.如权利要求1所述的模型训练方法,其特征在于,每一列的训练数据为多个,所述根据每一列的训练数据确定所述每一列的数据类型的步骤包括:
确定所述每一列的每一个训练数据的数据类型;
若所述每一列中具有相同数据类型的训练数据的个数超出预设个数,则将所述相同数据类型作为所述每一列的数据类型。
3.如权利要求1所述的模型训练方法,其特征在于,所述根据所述多个列中目标列的数据类型及所述多个列的训练数据的数据量,确定待训练模型的步骤包括:
根据所述目标列的数据类型,确定所述待训练模型的目标类型;
根据所述多个列的训练数据的数据量,从类型为所述目标类型的预设模型中确定所述待训练模型。
4.如权利要求3所述的模型训练方法,其特征在于,所述根据所述目标列的数据类型,确定所述待训练模型的目标类型的步骤包括:
若所述目标列的数据类型为数值型,则确定所述待训练模型的目标类型为回归模型;
若所述目标列的数据类型为类别型,则确定所述待训练模型的目标类型为分类模型。
5.如权利要求1所述的模型训练方法,其特征在于,所述结构化训练数据包括多行训练数据,每一行所述训练数据包括多个按列组织的训练数据,多个列包括特征列和预设目标列,所述将所述结构化训练数据输入所述待训练模型进行训练,得到训练后的模型的步骤包括:
根据每一所述列的数据类型,确定每一所述列的编码方式;
按照所述特征列的编码方式对每一行的特征列的训练数据进行编码,得到每一行的训练向量;
按照所述预设目标列的编码方式对每一行的预设目标列的训练数据进行编码,得到每一行的目标向量;
将所有行的所述训练向量作为训练数据、并将所有行的所述目标向量作为标签数据输入所述待训练模型,对所述待训练模型进行训练,得到训练后的模型。
6.如权利要求1所述的模型训练方法,其特征在于,所述多个列包括多个特征列,所述方法还包括:
对每一所述特征列的重要性进行分析,得到每一所述特征列的评估值;
根据每一所述特征列的评估值,生成评估报告。
7.如权利要求1所述的模型训练方法,其特征在于,所述方法还包括:
为所述训练后的模型生成模型标识;
建立所述训练后的模型及所述模型标识之间对应关系。
8.一种模型训练装置,其特征在于,所述装置包括:
获取模块,用于获取结构化训练数据,其中,所述结构化训练数据包括多个列的训练数据;
确定模块,用于根据每一列的训练数据确定所述每一列的数据类型;
确定模块,还用于根据所述多个列中目标列的数据类型及所述多个列的训练数据的数据量,确定待训练模型,其中,所述目标列的训练数据用作训练所述待训练模型时的标签数据;
训练模块,用于将所述结构化训练数据输入所述待训练模型进行训练,得到训练后的模型。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的模型训练方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的模型训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111138590.0A CN113780467A (zh) | 2021-09-27 | 2021-09-27 | 模型训练方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111138590.0A CN113780467A (zh) | 2021-09-27 | 2021-09-27 | 模型训练方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113780467A true CN113780467A (zh) | 2021-12-10 |
Family
ID=78854024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111138590.0A Pending CN113780467A (zh) | 2021-09-27 | 2021-09-27 | 模型训练方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113780467A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115546493A (zh) * | 2022-12-06 | 2022-12-30 | 成都智元汇信息技术股份有限公司 | 基于列数据的包裹识别信息过滤去重方法及装置及介质 |
-
2021
- 2021-09-27 CN CN202111138590.0A patent/CN113780467A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115546493A (zh) * | 2022-12-06 | 2022-12-30 | 成都智元汇信息技术股份有限公司 | 基于列数据的包裹识别信息过滤去重方法及装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309427B (zh) | 一种对象推荐方法、装置及存储介质 | |
CN109376222B (zh) | 问答匹配度计算方法、问答自动匹配方法及装置 | |
CN110795657B (zh) | 文章推送及模型训练方法、装置、存储介质和计算机设备 | |
US20230039496A1 (en) | Question-and-answer processing method, electronic device and computer readable medium | |
US20200364216A1 (en) | Method, apparatus and storage medium for updating model parameter | |
CN110046251A (zh) | 社区内容风险评估方法及装置 | |
CN113378545A (zh) | 一种方面级情感分析方法、装置、电子设备及存储介质 | |
CN113032580A (zh) | 关联档案推荐方法、系统及电子设备 | |
CN110472659B (zh) | 数据处理方法、装置、计算机可读存储介质和计算机设备 | |
CN113792816B (zh) | 数据编码方法、装置、计算机设备及存储介质 | |
CN113780467A (zh) | 模型训练方法、装置、计算机设备及存储介质 | |
CN109902162B (zh) | 基于数字指纹的文本相似性的识别方法、存储介质及装置 | |
CN112463964B (zh) | 文本分类及模型训练方法、装置、设备及存储介质 | |
CN112416754B (zh) | 一种模型评测方法、终端、系统及存储介质 | |
CN114550157A (zh) | 弹幕聚集识别方法以及装置 | |
CN115017256A (zh) | 电力数据处理方法、装置、电子设备及存储介质 | |
CN114461943A (zh) | 基于深度学习的多源poi语义匹配方法、装置及其存储介质 | |
CN112541357A (zh) | 实体识别方法、装置及智能设备 | |
CN111048065A (zh) | 文本纠错数据生成方法及相关装置 | |
CN117829968B (zh) | 一种基于用户数据分析的业务产品推荐方法、装置及系统 | |
CN116136866B (zh) | 基于知识图谱的中文新闻摘要事实性知识校正方法和装置 | |
US20220156618A1 (en) | Ensemble classification algorithms having subclass resolution | |
CN113806371B (zh) | 数据类型确定方法、装置、计算机设备及存储介质 | |
CN117521744A (zh) | 数据存储方法、装置、电子设备和介质 | |
CN116306650A (zh) | 模型的训练方法、多标签定性词识别方法及相关设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211210 |