一种机器学习分类方法及装置与流程

文档序号:12040718阅读:370来源:国知局
一种机器学习分类方法及装置与流程
本发明涉及网络技术领域,具体涉及一种机器学习分类方法及装置。

背景技术:
机器学习分类是一门多领域交叉学科,可应用在文本挖掘、机器翻译、人工智能和搜索引擎等领域,目前使用较为广泛的分类器有Libsvm、决策树C5.0、朴素贝叶斯等。目前,各分类器都是独立使用的,不具备与其它分类器直接兼容组合使用的条件,例如,若利用C5.0和Libsvm构建两级分类器则需要额外实现拼接,如此,就使得现有的机器学习分类的形式较为单一,缺少将各分类器串联、对比和综合使用的复杂形式,致使分类效果受到制约。另外,不同分类算法对数据的理解方式有所不同,开发者的设计倾向以及接口封装也有所不同,使得绝大多数的分类器具有不同的数据输入输出格式,兼容性很差。若要实现分类器的相互兼容,还要两两制作格式转换器,切换成本较高。

技术实现要素:
本发明实施例的机器学习分类方法及装置,实现了简单方便的构建多级分类结构的目的。为此,本发明实施例提供如下技术方案:一种机器学习分类方法,所述方法包括:利用训练配置文件和训练样本进行训练,得到至少一个分类器模型;所述训练配置文件包含数据格式定义、至少一个分类任务、每个分类任务的任务参数,所述训练样本包含至少一个符合所述数据格式定义的预设属性;接收分类配置文件和待分类数据,所述分类配置文件包含分类拓扑结构、至少一个预先训练的分类器模型、所述数据格式定义,所述待分类数据包含至少一个符合所述数据格式定义的属性;根据所述分类拓扑结构和所述至少一个分类器模型建立一个多级分类结构;利用所述多级分类结构逐级判断所述待分类数据的类别。优选的,所述利用训练配置文件和训练样本进行训练,得到至少一个分类器模型,包括:分析所述训练配置文件,为每个分类任务建立一个训练进程;依据每个分类任务的任务参数分别对所述训练样本包含的至少一个预设属性进行训练,获得所述分类任务对应的分类器模型。优选的,所述训练配置文件还包括属性选择指示,则所述依据每个分类任务的任务参数分别对所述训练样本包含的至少一个预设属性进行训练,包括:从所述训练样本包含的至少一个预设属性中选择出至少一个优选属性,并对所述至少一个优选属性进行训练。优选的,所述根据所述分类拓扑结构和所述至少一个分类器模型建立一个多级分类结构,包括:按照所述分类拓扑结构的指示,为各层级节点映射指定的至少一个分类器模型,形成所述多级分类结构。优选的,如果一个节点映射至少两个分类器模型,所述方法还包括:设置每个分类器模型的权重,并对所述至少两个分类器模型的输出结果进行加权处理,作为该节点的判断结果。优选的,所述分类配置文件还包括至少一个规则分类器,则所述根据所述分类拓扑结构和所述至少一个分类器模型建立一个多级分类结构,包括:根据所述分类拓扑结构、至少一个分类器模型、和至少一个规则分类器建立所述多级分类结构。一种机器学习分类装置,所述装置包括:模型训练单元,用于利用训练配置文件和训练样本进行训练,得到至少一个分类器模型;所述训练配置文件包含数据格式定义、至少一个分类任务、每个分类任务的任务参数,所述训练样本包含至少一个符合所述数据格式定义的 预设属性;接收单元,用于接收分类配置文件和待分类数据,所述分类配置文件包含分类拓扑结构、至少一个预先训练的分类器模型、所述数据格式定义,所述待分类数据包含至少一个符合所述数据格式定义的属性;构建单元,用于根据所述分类拓扑结构和所述至少一个分类器模型建立一个多级分类结构;判断单元,用于利用所述多级分类结构逐级判断所述待分类数据的类别。优选的,所述模型训练单元包括:进程建立单元,用于分析所述训练配置文件,为每个分类任务建立一个训练进程;模型训练子单元,用于依据每个分类任务的任务参数分别对所述训练样本包含的至少一个预设属性进行训练,获得所述分类任务对应的分类器模型。优选的,所述训练配置文件还包括属性选择指示,则所述模型训练子单元,具体用于从所述训练样本包含的至少一个预设属性中选择出至少一个优选属性,并依据每个分类任务的任务参数分别对所述至少一个优选属性进行训练,获得所述分类任务对应的分类器模型。优选的,所述构建单元,具体用于按照所述分类拓扑结构的指示,为各层级节点映射指定的至少一个分类器模型,形成所述多级分类结构。优选的,如果一个节点映射至少两个分类器模型,所述构建单元还包括:权重设置单元,用于设置每个分类器模型的权重,并对所述至少两个分类器模型的输出结果进行加权处理,作为该节点的判断结果。优选的,所述分类配置文件还包括至少一个规则分类器,则所述构建单元,具体用于根据所述分类拓扑结构、至少一个分类器模型、和至少一个规则分类器建立所述多级分类结构。本发明实施的机器学习分类方法及装置,首先利用训练配置文件与训练样本获得至少一个分类器模型,其次再依据用户设置的分类配置文件建立一个多级分类结构,多级分类结构中包含至少一个上述预先训练好的分类器模型,如此即可简单方便的构建一个多级分类结构,且过程中无任何代码开发。另外,本发明还通过定义通用数据格式的方式,容易的实现了不同类型的分类器的兼 容。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。图1是本发明机器学习分类方法的流程图;图2是本发明中类属信息的示意图;图3是本发明中样本格式的示意图;图4是本发明中二级分类结构的示意图;图5是本发明中训练获得分类器模型实施例1的流程图;图6是本发明中训练获得分类器模型实施例2的流程图;图7是本发明机器学习分类装置的示意图;图8是本发明中模型训练单元的示意图。具体实施方式为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。参见图1,示出了本发明机器学习分类方法的流程图,可包括:步骤101,利用训练配置文件和训练样本进行训练,得到至少一个分类器模型;所述训练配置文件包含数据格式定义、至少一个分类任务、每个分类任务的任务参数,所述训练样本包含至少一个符合所述数据格式定义的预设属性。在实现自动分类之前,要先根据需要进行学习训练,在训练过程中,输入为用于表示用户训练需求的训练配置文件、作为训练对象的训练样本,输出为分类器模型。本发明中的训练配置文件可采用格式精简、通用的JSON(JavaScriptObjectNotation,是一种轻量级的数据交换格式)格式实现,其中,训练配置文件可 包含以下信息:1.分类任务即,用户想要训练获得哪种类型的分类器模型,如Libsvm分类器模型、决策树C5.0分类器模型、朴素贝叶斯分类器模型等等。2.各分类任务对应的任务参数任务参数可具体体现为分类器的通用参数和个性化参数两种,二者可分离保存。其中,通用参数可包含:开关字段、独享训练数据字段、模型类型、模型存储路径等;个性化参数可按需求进行扩展,如朴素贝叶斯分类器中的类条件概率估计方法、或者Libsvm分类器中选择的核函数等等。3.数据格式定义现有技术中,不同分类器具有不同的数据格式,若要相互兼容,需两两进行格式切换,成本较高,本发明为了构建包含不同分类器的多级分类结构,显然需要解决各分类器间的兼容性问题,为此,本发明定义了一种通用的数据格式,如此,只要实现各分类器的数据格式与通用数据格式间的简单转换即可实现各分类器间的兼容。作为本发明数据格式定义的一种体现形式,其可被分为两部分:(1)类属信息定义,也可称为分类元信息,包含类别定义和样本属性定义。具体可参见图2所示示例。其中,第一行定义了分类体系中的类别名称。图2所示示例为一个甲状腺功能减退者预测的二级分类任务,第一级分类用以区分病例是否为“甲状腺功能减退者”,即病例为hypothyroid(甲状腺功能减退者)还是negative(非甲状腺功能减退者),第二级分类用以对甲状腺功能减退者进一步分类为primaryhypothyroid、compensatedhypothyroid、secondaryhypothyroid中的哪种。需要说明的是,在类属信息定义时我们可以不区分类别层级,也就是说,在分类器训练中各分类器均为独立训练,组建多级分类结构主要是在分类过程中通过分类配置文件设计而成,对此将在下文做介绍。从第二行开始,每行均是在描述一个属性信息,属性信息可包含属性名称和属性类型,二者可通过冒号隔开。属性类型可分为连续属性和离散属性两种。如,age属性为连续属性,可用continuous关键词标识;而sex属性为离散属 性,可通过枚举的方式列出枚举值,如M或F,需要说明的是,此处定义的枚举值应与训练样本中所使用的相一致,否则会影响训练出的分类器模型的分类准确性。另外,需要说明的是,类属定义中还隐含了一个信息,即属性的编号。编号从1开始,默认第一定义的属性为1编号,依次向下递增。考虑到使用方便和节省空间,在训练样本的描述中使用属性编号而非属性名称,毕竟分类器不关心类属名称,仅关心类属编号和类型。(2)样本格式,在类属信息定义基础上,描述样本内容的数据格式,每条样本包含类别和各属性取值。具体可参见图3所示示例。为方便显示,仅列出了训练样本的前14个属性值。如图3所示,每行为一个样本,列间使用制表符分割,第一列为样本类别,后续的每一列表示一个样本属性,每一个属性由属性编号、冒号和属性值三部分组成。属性顺序无要求。若属性缺失,可使用问号代替。本步骤即是自动分类之前的学习训练过程,此处暂不详述分类器模型的形成过程。步骤102,接收分类配置文件和待分类数据,所述分类配置文件包含分类拓扑结构、至少一个预先训练的分类器模型、所述数据格式定义,所述待分类数据包含至少一个符合所述数据格式定义的属性。在步骤101完成分类器模型的学习训练过程之后,即可在需要时利用训练好的分类器模型建立多级分类结构,进行分类识别。在分类过程中,输入为用于指示建立多级分类结构的分类配置文件、作为分类对象的待分类数据,输出为分类结果。本发明中的分类配置文件也可采用格式精简、通用的JSON格式实现,其中,分类配置文件可包含以下信息:1.预先训练好的至少一个分类器模型即,用户想要利用哪些类型的分类器模型处理待分类数据,如Libsvm分类器模型、决策树C5.0分类器模型、朴素贝叶斯分类器模型等等。2.数据格式定义上文介绍中,在训练过程中为了简单方便的实现各分类器间的兼容,本发 明定义了一种通用的数据格式,且训练过程中使用的训练样本亦是符合本发明的数据格式定义的,因此,若要使用上述训练好的分类器模型获得准确的分类结果,那么在分类过程中,也需要定义本发明的通用数据格式,且待分类数据包含的属性也要符合本发明的数据格式定义。此处不再对本发明定义的通用数据格式进行赘述。3.分类拓扑结构分类配置文件由用户根据当前的使用需要设置,可据其建立满足用户需求的多级分类结构,且结构与各节点分类器松耦合。相对现有技术在每次应用开发时独立搭建形成多级分类结构的方式,本发明方案无需每次重新编程搭建,既能节省研发和维护成本,又可尽量减少框架在使用过程中的编码开销。分类拓扑结构主要体现以下两方面信息:(1)层级关系。上下级之间使用级别编号连接,每个分类节点都是拓扑结构中的一个节点。(2)每层级的各个节点映射的分类器模型。包括节点在分类体系中的级别、该节点使用的分类器、该节点接收的类别、该节点输出的类别。如此,就可在无任何代码开发的情况下,只由用户根据需要设置分类配置文件的方式,就可将各个节点串联起来形成一个复杂的多级分类结构。步骤103,根据所述分类拓扑结构和所述至少一个分类器模型建立一个多级分类结构。步骤104,利用所述多级分类结构逐级判断所述待分类数据的类别。结合上文中的甲状腺功能减退者预测的二级分类任务,分类配置文件中即可做如下指示:第一级分类Level0采用预先训练好的Libsvm分类器模型,判断病例是否为“甲状腺功能减退者”,输出类别为:hypothyroid、negative;第二级分类Level1采用预先训练好的朴素贝叶斯分类器模型,为甲状腺功能减退者进一步分类,输入类别为hypothyroid,输出类别为:primaryhypothyroid、compensatedhypothyroid、secondaryhypothyroid。接收到分类配置文件之后,即可在分类拓扑结构的指示下,为各层级节点映射上指定的分类器模型,形成图4所示的二级分类结构,然后就可用其逐层级的判断识别待分类数据的类别并输出。逐级判断识别在本示例中可体现为,先利用Libsvm分类器模型对待分类数据包含的属性进行判断,确定其为甲状腺功能减退者的概率,并输出判决类别,如为negative则不再进行第二层级的判断,直接将非甲状腺功能减退者作为该待分类数据的类别输出。若Libsvm分类器模型输出为hypothyroid,则继续利用贝叶斯分类器模型对待分类数据包含的属性进行判断,确定其为哪种类型的甲状腺功能衰退,并将判决结果作为该待分类数据的类别输出。下面对本发明步骤101中训练获得分类器模型的过程进行解释说明,具体可参见图5所示实施例1的流程图,可包括:步骤201,分析所述训练配置文件,为每个分类任务建立一个训练进程;步骤202,依据每个分类任务的任务参数分别对所述训练样本包含的至少一个预设属性进行训练,获得所述分类任务对应的分类器模型。接收到用户设置的训练配置文件,并从中解析出训练需求,若用户本次训练只需要获得一个分类器模型,即配置文件中包含一个分类任务,则只建立一个训练进程,按照指定的任务参数完成训练,并将获得的分类器模型保存至指定路径,方便后续分类过程中读取。若用户本次要训练至少两个分类器模型,即配置文件中包含至少两个分类任务,则要建立至少两个训练进程,也就是说,一个分类任务对应一个训练进程,各分类器模型之间是相互独立的完成训练过程的。参见图6,示出了本发明训练获得分类器模型实施例2的流程图,可包括:步骤301,分析所述训练配置文件,为每个分类任务建立一个训练进程;步骤302,从所述训练样本包含的至少一个预设属性中选择出至少一个优选属性;步骤303,依据每个分类任务的任务参数分别对所述至少一个优选属性进行训练,获得所述分类任务对应的分类器模型。为了构建效果更好的模型,提高本发明分类器模型的分类识别准确性,用户设置的训练配置文件中还可包括属性选择指示,用于控制训练前自动进行属性选择,从中找到更具代表性的优选属性进行学习训练。作为选择优选属性的实现方式,可采用卡方检验法、信息增益法、类间最 大距离法等,本发明对此可不做限定。另外,上文在介绍步骤103建立多级分类结构时提到,要按照分类拓扑结构的指示,为各层级的节点映射至少一个分类器模型,也就是说,用户可以在拓扑节点上指定单一的分类器模型,也可以指定至少两个分类器模型,并使这至少两个分类器模型通过线性组合的方式构成一个组合分类器,达到更好的分类效果。对应这种一个节点映射至少两个分类器模型的情况,在建立多级分类结构时,除了要将这至少两个分类器模型映射到节点上之外,还要为每个分类器模型设置一个权重,形成组合分类器。对应地,每个分类器模型的输出结果进行加权处理之后即为组合分类器的输出结果。如一个级别为Level2的节点,映射了Libsvm和贝叶斯两个分类器模型,且二者的权重分别为0.8、0.2,若这个节点的输出类别有3种,那么最终的输出结果就受两个分类器模型输出结果的影响。将二者的输出加权处理后,取其中最大的概率对应的类别作为该节点的输出类别。当然,一个节点除了可映射至少两个不同类型、不同侧重点的分类器模型之外,还可映射至少两个相同类型、不同侧重点的分类器模型,如两个Libsvm分类器模型,均可实现分类器间的互补,保证召回率与准确率相平衡。此外,作为本发明的一种优选方案,分类配置文件中也可包含属性选择指示,用户控制分类前自动进行属性选择,从中找到更具代表性的优选属性进行分类。也就是说,在利用多级分类结果对待分类数据进行类别识别时,可先从待分类数据包含的至少一个属性中选择出至少一个优选属性,并利用这至少一个优选属性作为输入,由分类器模型判断输出类别。其实现过程与实现方式与上文图6处所做介绍相类似,此处不再赘述。本发明除了可利用训练好的分类器模型组建多级分类结构并进行类别识别之外,还可兼容利用规则分类器。对应于此,建立多级分类结构的过程为:按照分类拓扑结构的指示,为各层级节点映射指定的至少一个分类器模型,或 者为节点映射指定的一个规则分类器,形成多级分类结构。即,多层分类结构中的每个节点可以是系统默认或用户定义的规则分类器,或者,也可以是内置支持的预先训练好的分类器模型。下面对本发明规则分类器的实现过程进行解释说明。首先,规则分类器的工作原理可理解为:待分类数据的某个属性与设定的类别规则匹配后会得到一个的分值,综合待分类数据的所有属性得分后得到的即是待分类数据在各个输出类别的得分,可将其中得分最高的类别作为输出类别。其次,在将规则分类器映射到多级分类结构的节点上时,我们设计了抽象规则分类器接口,用户通过指定接口的方式即可将规则分类器无缝嵌入到多级分类结构中。用户继承分类器基类实现自有的规则分类器,增加注册宏,便可通过c++类注册器将分类器注册到多级分类结构中,因此,用户使用规则分类器只需要在配置文件中指明类名称即可。相应地,本发明还提供一种机器学习分类装置,具体可参见图7所示示意图,所述装置可包括:模型训练单元401,用于利用训练配置文件和训练样本进行训练,得到至少一个分类器模型;所述训练配置文件包含数据格式定义、至少一个分类任务、每个分类任务的任务参数,所述训练样本包含至少一个符合所述数据格式定义的预设属性;接收单元402,用于接收分类配置文件和待分类数据,所述分类配置文件包含分类拓扑结构、至少一个预先训练的分类器模型、所述数据格式定义,所述待分类数据包含至少一个符合所述数据格式定义的属性;构建单元403,用于根据所述分类拓扑结构和所述至少一个分类器模型建立一个多级分类结构;判断单元404,用于利用所述多级分类结构逐级判断所述待分类数据的类别。参见图8,示出了本发明模型训练单元的构成示意图,可包括:进程建立单元501,用于分析所述训练配置文件,为每个分类任务建立一 个训练进程;模型训练子单元502,用于依据每个分类任务的任务参数分别对所述训练样本包含的至少一个预设属性进行训练,获得所述分类任务对应的分类器模型。优选的,如果所述训练配置文件还包括属性选择指示,则所述模型训练子单元,具体用于从所述训练样本包含的至少一个预设属性中选择出至少一个优选属性,并依据每个分类任务的任务参数分别对所述至少一个优选属性进行训练,获得所述分类任务对应的分类器模型。作为本发明构建单元的一种实现,其可体现为:所述构建单元,具体用于按照所述分类拓扑结构的指示,为各层级节点映射指定的至少一个分类器模型,形成所述多级分类结构。当一个节点上映射至少两个分类器模型时,所述构建单元还包括:权重设置单元,用于设置每个分类器模型的权重,并对所述至少两个分类器模型的输出结果进行加权处理,作为该节点的判断结果。优选的,所述分类配置文件还包括至少一个规则分类器,则所述构建单元,具体用于根据所述分类拓扑结构、至少一个分类器模型、和至少一个规则分类器建立所述多级分类结构。以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1