一种类别确定方法及装置与流程

文档序号:21697898发布日期:2020-07-31 22:49阅读:158来源:国知局
一种类别确定方法及装置与流程

本发明属于分类技术领域,尤其涉及一种类别确定方法及装置。



背景技术:

分类的目的是确定一个样本的类别,具体的类别是已知的,常用的算法是k近邻算法(k-nearestneighbor,knn),knn算法是一种有监督学习算法,其基本方法是:给定测试数据,基于距离度量找出训练样本集中与测试数据最近的k个数据点(即,k个近邻样本),然后,基于这k个近邻样本确定测试数据所属的类别。但是目前的knn算法的分类结果准确率较低,无法适应于准确率较高的场景。



技术实现要素:

有鉴于此,本申请的目的在于提供一种类别确定方法及装置,以确定样本所属的类别,其具体的技术方案如下:

本申请提供了一种类别确定方法,包括:获取待分类数据和训练样本集,所述训练样本集包括历史样本和该历史样本所属的类别;从所述训练样本集中选取与所述待分类样本之间的距离最近的k个近邻样本;利用所述待分类样本分别与所述k个近邻样本之间的距离,计算所述k个近邻样本所属的各个类别的权重;依据所述各个类别的权重,确定所述待分类样本所属的目标类别。

本申请提供的类别确定方法,获取待分类样本和训练样本集,其中,训练样本集中包括历史样本及该每个历史样本所属的类别。从训练样本集中选取与待分类样本之间的距离最近的k个近邻样本。然后利用待分类样本与k个近邻样本之间的距离获得k个近邻样本所属各个类别的权重。依据各个类别的权重,从各个类别中选取待分类样本所属的目标类别。该方案依据待分类样本的k个近邻样本与待分类样本之间的距离计算得到k个近邻样本所属类别的权重。距离待分类样本越近的历史样本对待分类样本的类别确定的影响越大,因此该历史样本对应的类别权重越大。因此,利用该方案确定出的类别结果准确率更高,而且,降低了k的取值对类别结果的影响。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种类别确定方法的流程图;

图2是本申请实施例提供的另一种类别确定方法的流程图;

图3是本申请实施例提供的一种类别确定装置的结构示意图;

图4是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。

需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

knn算法是懒惰学习的著名代表,此类学习算法在训练阶段仅仅是把样本保存起来,训练时间开销为零,待拿到测试样本后再处理。knn算法也存在一些缺点:对于随机分布的训练样本集分类效果较差,还有k的取值不同导致分类结果也不同。如果直接使用knn算法确定类别,将导致最终的分类结果准确率较低。

因此,本申请提供了一种类别确定方法,获取待分类样本和训练样本集,从训练样本集中选取与待分类样本之间的距离最近的k个近邻样本。然后利用待分类样本与k个近邻样本之间的距离计算各个类别的权重。再依据各个类别的权重,从各个类别中选取待分类样本所属的目标类别。该方案依据待分类样本的k个近邻样本与待分类样本之间的距离计算得到各个类别的权重,而且,距离待分类样本越近表明这个近邻样本对确定待分类样本的类别的影响大于其它距离远的近邻样本,因此,距离待分类样本越近,对应的权重就越大。该方案对近邻样本与待分类样本之间距离做进一步挖掘得到可能是待分类样本对应的类别的权重,进一步依据权重确定出待分类样本的类别,因此,利用该方案提高了分类结果的准确率。

请参见图1,示出了本申请实施例提供的一种类别确定方法的流程图,该方法应用于电子设备中,如pc机、服务器等。如图1所示,该方法可以包括以下步骤:

s110,获取待分类样本和训练样本集。

以出行样本为例,训练样本集包括历史样本和该历史样本所属的类别,其中,类别包括差旅和非差旅;本申请的训练样本集中的差旅数据和非差旅数据比较均衡,例如,均为1000条。

s120,从训练样本集中选取与所述待分类样本距离最近的k个近邻样本。

分别计算待分类样本与训练样本集中的各个样本之间的距离(如,欧式距离),然后,按照距离由小到大的顺序,依次选取该待分类样本的k个近邻样本。

测试数据是指用来测试算法模型的准确率的数据,测试数据也包括历史样本和各个历史样本所属的类别。例如,测试数据与训练样本集的比例是0.2。

s130,利用k个最近的距离,计算各个类的权重。

从训练样本集中找到k个近邻样本后,对k个近邻样本与待分类样本之间的距离进一步挖掘,距离待分类样本越近表明这个近邻样本对待分类样本的类别的影响大于其它距离远的近邻样本,因此,距离待分类样本越近,对应的权重越大。基于这一原则,可以利用距离的倒数作为权重。

s140,利用各个类的权重,选取权重最大的类别,即待分类样本的分类结果。

在本申请的一个实施例中,计算得到k个近邻样本所属的各个类别的权重之后,选取权重最大的类别作为待分类样本的分类结果。

例如,出行类别包括差旅和非差旅,其中,按照上述方法计算得到差旅类别的权重是0.6,非差旅类别的权重是0.4,0.6>0.4,故待分类样本的类别是差旅。

本实施例提供的类别确定方法,获取待分类样本和训练样本集,其中,训练样本集中包括历史样本及每个历史样本所属的类别。从训练样本集中选取与待分类样本之间的距离最近的k个样本,即k个近邻样本。然后,利用待分类样本与k个近邻样本之间的距离获得各个类别的权重。依据各个类别的权重,从各个类别中选取权重最大的类别,即待分类样本的分类结果。该方案依据待分类样本的k个近邻样本与待分类样本之间的距离计算得到各类别的权重。距离待分类样本越近的历史样本对分类结果的影响越大,因此该历史样本所属类别的权重越大。因此,利用该方案确定出的类别结果准确率更高,而且,降低了k取值对类别结果的影响。

请参见图2,示出了本申请实施例提供的另一种类别确定方法的流程图,本实施例将着重介绍计算类别的权重的过程,如图2所示,该方法包括以下步骤:

s210,获取待分类样本和训练样本集。

在一个实施例中,训练样本集为d={(x1,y1),(x2,y2),……,(xn,yn)},其中,xi为第i个训练样本,yi为第i个训练样本对应的类别。

例如,在一种应用场景中,出行样本的类别包括差旅类别和非差旅类别,因此,yi的取值只有两个,即y1和y2。

s220,获取待分类样本,以及训练样本集中各个历史样本。

以航空出行数据为例,原始数据包括如下信息:票号,旅客性别,出生日期,国际国内标识,团散标识,出票日期,订票日期,起飞日期,起飞时刻,时间间隔,订单人数,总票价,里程,起飞城市,降落城市等。

原始数据中包含大量的字符串数据和缺失值,因此不能直接用来确定类别,所以需要从原始数据中提取出特征向量,其中,从原始数据中提取特征向量的过程如下:

(1)修改性别编码

原始数据中旅客性别,男性:m,女性:f;修改后:男性:1,女性:0。

(2)团散标识

原始数据中,团体:g,非团体:空;修改后:团体:1,非团体:0。

(3)是否节假日出行

获取原始数据中的起飞日期,并获取起飞日期范围(例如,1周)内的节假日数据,然后,判断出行日期是否是节假日。即起飞日期的前后预设时间内是否包含节假日,如果包括则确定起飞日期是节假日,即该数据属于节假日出行;如果不包括则确定起飞日期不是节假日。如节假日:1,非节假日:0。

例如,若起飞日期是星期五、六、日,或者,是法定节假日,则将节假日出行标“1”,否则节假日出行标为0。

(4)起飞日期星期

查询起飞日期是星期几。

(5)是否旅游城市

旅游城市:1,非旅游城市:0。

通过收集大型旅游公司公布的热门旅游城市,以及获取国际旅游协会公布的热门旅游城市,得到热门旅游城市,并获取这些热门旅游城市对应的城市三字码。判断原始数据中的起飞城市和降落城市的三字码是否包含在上述的热门旅游城市中。

(6)旅客年龄

利用原始数据中的旅客出生年月,以及起飞日期,计算得到该旅客的年龄。

(7)承运航空公司是否是国外航空公司

是国外航空公司:1,不是国外航空公司:0。

获取所有国内航空公司的二字码得到国内航空公司码表,判断原始数据中的航空公司二字码是否包含在国内航空公司码表中,如果包含,则确定不是国外航空公司;如果不包含,则确定是国外航空公司。

(8)航段数,一张机票包含的航段数。

(9)单位票价;单位票价=票总价/里程。

然后,将上述旅客出行信息按照预设顺序组合,并将各个字段中的非数值型数据转换成数值型数据,最终得到数据对应的特征向量。

s230,分别计算待分类样本与各个历史样本之间的距离。

即,待分类样本是x,则计算x与d中每一个样本xi之间的距离,如,欧式距离。

s240,按照距离由小到大的顺序,依次选取k个历史样本作为待分类样本的k个近邻样本。

选取距离最小的k个历史样本,即待分类样本的k个近邻样本。

其中,dij为待分类样本与距离最近的k个近邻样本中的第i类的第j个样本之间的距离。

假设k个近邻样本一共有m个类别,其中,任意一个类别包含的近邻样本的数量为ni,i∈[1,m]。而且,这m个类别所包含的近邻样本数量之和等于k,即满足公式1所示的关系:

在一种应用场景中,出行样本的类别包括差旅类别和非差旅类别,因此,m=2。

s250,计算属于同一类别的各个近邻样本与待分类样本之间的距离的倒数之和,得到该类别对应的权重。

计算k个近邻样本中属于同一类别的近邻样本与待分类样本之间的距离的倒数之和,作为该类别的权重,按照公式2计算两个类别的权重w1和w2:

s260,依据各个类别的权重,选取权重最大的类别作为待分类样本的分类结果。

在本申请的一个实施例中,如果w1>w2,则确定w1的类别为该待分类样本的分类结果。

本实施例提供的类别确定方法,计算得到待分类样本与训练样本之间的距离之后,进一步对该距离赋予权重,使得不同训练样本对确定待分类样本的类别影响力不同。具体的,离待分类样本近的训练样本对确定待分类样本的类别的影响大于其他距离远的训练样本,因此,利用距离的倒数作为权重,距离越小权重越大。该方案利用加权后的距离确定的类别的准确率更高。

相应于上述的类别确定方法实施例,本申请还提供了类别确定装置实施例。

请参见图3,示出了本申请实施例提供的一种类别确定装置的结构示意图,该装置应用于电子设备中,如pc机、服务器等。

如图3所示,该装置可以包括:样本获取模块110、近邻样本确定模块120、权重确定模块130和类别确定模块140。

样本获取模块110,用于获取待分类样本和训练样本集。

训练样本集包括历史样本和该历史样本所属的类别。例如,类别包括差旅和非差旅;本申请的训练样本集中的差旅数据和非差旅数据比较均衡,例如,均为1000条。

近邻样本确定模块120,用于从训练样本集中选取与待分类样本之间的距离最近的k个近邻样本。

在本申请的一个实施例中,近邻样本确定模块120具体用于:

获取待分类样本对应的特征向量,以及训练样本集中各个历史样本对应的特征向量;其中,获取样本对应的特征向量的过程与上述s220的过程相同,此处不再赘述。

分别计算待分类样本对应的特征向量与各个历史样本对应的特征向量之间的距离。

按照距离由小到大的顺序,依次选取k个历史样本确定为待分类样本的k个近邻样本。

权重确定模块130,用于基于待分类样本分别与k个近邻样本之间的距离,计算k个近邻样本所属的各个类别的权重。

在本申请的一个实施例中,权重确定模块130具体用于:

计算属于同一类别的各个近邻样本与待分类样本之间的距离的倒数之和,得到该类别对应的权重。

即,权重确定模块130可以按照公式2计算得到k个近邻样本所属的各个类别的权重。

类别确定模块140,用于依据各个类别的权重,从k个近邻样本所属的各个类别中选取待分类样本所属的目标类别。

在本申请的一个实施例中,类别确定模块140具体用于从k个近邻样本所属的各个类别中,选取权重最大的类别确定为待分类样本的目标类别。

本实施例提供的类别确定装置,依据待分类样本的k个近邻样本与待分类样本之间的距离计算得到各个类别的权重。距离待分类样本越近的历史样本对待分类样本的类别确定的影响越大,因此该历史样本对应的类别权重越大。因此,利用该方案确定出的类别结果准确率更高,而且,降低了k的取值对类别结果的影响。

如图4所示,示出了本申请的电子设备的一种结构示意图,该电子设备可以包括处理器210、存储器220、通信接口230、输入单元240、显示器250和通信总线260。

处理器210、存储器220、通信接口230、输入单元240、显示器250、均通过通信总线260完成相互间的通信。

在本申请实施例中,该处理器210,可以为中央处理器(centralprocessingunit,cpu),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。

存储器220中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令。处理器210可以调用存储器220中存储的程序,以实现上述任意一个类别确定方法实施例。

在一种可能的实现方式中,该存储器220可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如声音播放功能、图像播放功能等)所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据,比如,用户数据、用户访问数据以及音频数据等等。

此外,存储器220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。

该通信接口230可以为通信模块的接口,如gsm模块的接口。

本申请还可以包括显示器240和输入单元250等等。

当然,图4所示的应用服务器的结构并不构成对本申请实施例中应用服务器的限定,在实际应用中应用服务器可以包括比图4所示的更多或更少的部件,或者组合某些部件。

需要说明的是,本申请实施例中的电子设备可以包括但不限于诸如智能手机、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。或者,本申请实施例中的电子设备可以包括但不限于服务器,例如,服务器集群或一台独立的服务器。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

另一方面,本申请还提供了一种电子设备可执行的存储介质,该存储介质中存储有程序,该程序由电子设备执行时使得电子设备:获取待分类数据和训练样本集,所述训练样本集包括历史样本和该历史样本所属的类别;从所述训练样本集中选取与所述待分类样本之间的距离最近的k个近邻样本;利用所述待分类样本分别与所述k个近邻样本之间的距离,计算所述k个近邻样本所属的各个类别的权重;依据所述各个类别的权重,确定所述待分类样本所属的目标类别。

需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

根据本申请的一个或多个实施例,提供了一种类别确定方法包括:获取待分类数据和训练样本集,所述训练样本集包括历史样本和该历史样本所属的类别;从所述训练样本集中选取与所述待分类样本之间的距离最近的k个近邻样本;利用所述待分类样本分别与所述k个近邻样本之间的距离,计算所述k个近邻样本所属的各个类别的权重;依据所述各个类别的权重,确定所述待分类样本所属的目标类别。

根据本申请的一个或多个实施例,所述从训练样本集中选取与所述待分类出行特征向量距离最近的k个近邻样本,包括:

获取所述待分类样本,以及所述训练样本集中各个历史样本;

分别计算所述待分类样本与各个历史样本之间的距离;

按照所述距离由小到大的顺序,依次选取k个历史样本确定为所述待分类样本的k个近邻样本。

根据本申请的一个或多个实施例,所述利用所述待分类样本分别与所述k个近邻样本之间的距离,计算所述k个近邻样本所属的各个类别的权重,包括:

计算属于同一类别的各个近邻样本与所述待分类样本之间的距离的倒数之和,得到该类别对应的权重。

根据本申请的一个或多个实施例,依据所述各个类别的权重,从所述k个近邻样本所属的各个类别中选取所述待分类样本所属的目标类别,包括:

从所述k个近邻样本所属的各个类别中,选取权重最大的类别确定为所述待分类样本的目标类别。

根据本申请的一个或多个实施例,待分类样本为出行样本,

获取样本的过程,包括:

从出行样本中获取表征旅客出行意图的旅客出行信息,所述旅客出行信息包括旅客性别、旅客年龄、旅客团体或非团体标识、出行日期是否节假日、出发城市、目的城市、出发城市和目的城市是否旅游城市;

将所述旅客出行信息转换为向量得到所述样本。

根据本申请的一个或多个实施例,所述从出行样本中获取表征旅客出行意图的旅客出行信息,包括:

从所述出行样本中获取旅客性别;

从所述出行样本中获取旅客出生日期,并依据所述旅客出生日期及出行时刻计算得到旅客年龄;

从所述出行样本中获取团散标识,所述团散标识包括团体标识和非团体标识;

从所述出行样本中获取出行日期,并判断所述出行日期是否包含节假日,如果包含确定所述出行日期是节假日,如果不包含确定所述出行日期不是节假日;

从所述出行样本中获取出发城市和目的城市,并分别判断所述出发城市和所述目的城市是否包含在旅游城市范围内,如果是确定是旅游城市,如果否确定不是旅游城市;

从所述出行样本中获取一张机票所包含的航段数及是否是国外航空公司;

从所述出行样本中获取总票价及里程,并计算得到单位票价;

将上述各个维度的旅客出行信息按照预设顺序组合得到所述样本。

根据本申请的一个或多个实施例,提供了一种类别确定装置,包括:

样本获取模块,用于获取待分类样本和训练样本集,所述训练样本集包括历史样本和该历史样本所属的类别;

近邻样本确定模块,用于从所述训练样本集中选取与所述待分类样本之间的距离最近的k个近邻样本;

权重确定模块,用于基于所述待分类样本分别与所述k个近邻样本之间的距离,计算所述k个近邻样本所属的各个类别的权重;

类别确定模块,用于依据所述各个类别的权重,确定所述待分类样本所属的目标类别。

根据本申请的一个或多个实施例,所述近邻样本确定模块具体用于:

获取所述待分类样本,以及所述训练样本集中各个历史样本;

分别计算所述待分类样本与各个历史样本之间的距离;

按照所述距离由小到大的顺序,依次选取k个历史样本确定为所述待分类样本的k个近邻样本。

根据本申请的一个或多个实施例,所述权重确定模块具体用于:

计算属于同一类别的各个近邻样本与所述待分类样本之间的距离的倒数之和,得到该类别对应的权重。

根据本申请的一个或多个实施例,所述类别确定模块具体用于:

从所述k个近邻样本所属的各个类别中,选取权重最大的类别确定为所述待分类样本的目标类别。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本申请各实施例中的装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。

本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所申请的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1