发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种目标特征数据的挖掘方法和相应的一种目标特征数据的挖掘装置。
为了解决上述问题,本申请实施例公开了一种目标特征数据的挖掘方法,包括:
对第一特征数据统计特征频次;
根据所述特征频次过从所述第一特征数据过滤低频特征数据,获得第二特征数据;
根据所述特征频次过从所述第二特征数据过滤至少部分中频特征数据,获得目标特征数据。
优选地,还包括:
采用所述目标特征数据训练指定的模型。
优选地,所述对第一特征数据统计特征频次的步骤包括:
将第一特征数据分配至一个或多个第一工作节点;
由所述第一工作节点统计所分配的第一特征数据的特征频次;
由所述第一工作节点将已统计的第一特征数据和特征频次传输至第二工作节点;
由所述第二工作节点合并已统计的第一特征数据和特征频次。
优选地,所述根据所述特征频次过从所述第一特征数据过滤低频特征数据,获得第二特征数据的步骤包括:
当所述第一特征数据的特征频次小于预设的低频阈值时,确定所述第一特征数据为低频特征数据;
过滤所述第一特征数据,获得第二特征数据。
优选地,所述根据所述特征频次过从所述第一特征数据过滤低频特征数据,获得第二特征数据的步骤包括:
将所述第一特征数据及所述特征频次分配至一个或多个第一工作节点;
由所述第一工作节点根据所分配的特征频次过从所分配的第一特征数据过滤低频特征数据,获得第二特征数据;
由所述第一工作节点将过滤获得的第二特征数据和特征频次传输至第二工作节点;
由所述第二工作节点合并过滤获得的第二特征数据和特征频次。
优选地,所述根据所述特征频次过从所述第二特征数据过滤至少部分中频特征数据,获得目标特征数据的步骤包括:
对所述第二特征数据配置一随机数值;
当所述第二特征数据的特征频次与所述随机数值的乘积小于预设的中频阈值时,确定所述第二特征数据为中频特征数据;
过滤所述第二特征数据,获得目标特征数据。
优选地,所述根据所述特征频次过从所述第二特征数据过滤至少部分中频特征数据,获得目标特征数据的步骤包括:
将所述第二特征数据及所述特征频次分配至一个或多个第一工作节点;
由所述第二工作节点根据所分配的特征频次过从所分配的第二特征数据过滤至少部分中频特征数据,获得目标特征数据;
由所述第一工作节点将过滤获得的目标特征数据和特征频次传输至第二工作节点;
由所述第二工作节点合并过滤获得的目标特征数据和特征频次。
优选地,还包括:
采用第一原始特征数据训练第一测试模型;
采用过滤了特征频次小于第一候选阈值之后的第一原始特征数据训练第二测试模型;
对所述第一测试模型和所述第二测试模型进行A/B测试,获得第一分数和第二分数;
当所述第一点击率与所述第二点击率之间的差值小于预设的第一差距阈值时,确认所述第一候选阈值为低频阈值。
优选地,还包括:
采用第二原始特征数据训练第三测试模型;
采用过滤了特征频次与随机数值的乘积小于第二候选阈值之后的第二原始特征数据训练第四测试模型;
计算第一特征概率和第二特征概率;
当所述第一特征概率与所述第二特征概率之间的差值小于预设的第二差距阈值时,确认所述第二候选阈值为中频阈值;
其中,所述第一特征概率为正样本在所述第三测试模型的分数大于,负样本在所述第三测试模型的分数的概率;
所述第二特征概率为正样本在所述第四测试模型的分数大于,负样本在所述第四测试模型的分数的概率。
本申请实施例还公开了一种目标特征数据的挖掘装置,包括:
特征频次统计模块,用于对第一特征数据统计特征频次;
低频特征过滤模块,用于根据所述特征频次过从所述第一特征数据过滤低频特征数据,获得第二特征数据;
中频特征过滤模块,用于根据所述特征频次过从所述第二特征数据过滤至少部分中频特征数据,获得目标特征数据。
优选地,还包括:
模型训练模块,用于采用所述目标特征数据训练指定的模型。
优选地,所述特征频次统计模块包括:
第一分配子模块,用于将第一特征数据分配至一个或多个第一工作节点;
频次统计子模块,用于由所述第一工作节点统计所分配的第一特征数据的特征频次;
第一传输子模块,用于由所述第一工作节点将已统计的第一特征数据和特征频次传输至第二工作节点;
第一合并子模块,用于由所述第二工作节点合并已统计的第一特征数据和特征频次。
优选地,所述低频特征过滤模块包括:
低频特征确定子模块,用于在所述第一特征数据的特征频次小于预设的低频阈值时,确定所述第一特征数据为低频特征数据;
第二特征数据获得子模块,用于过滤所述第一特征数据,获得第二特征数据。
优选地,所述低频特征过滤模块包括:
第二分配子模块,用于将所述第一特征数据及所述特征频次分配至一个或多个第一工作节点;
第一过滤子模块,用于由所述第一工作节点根据所分配的特征频次过从所分配的第一特征数据过滤低频特征数据,获得第二特征数据;
第二传输子模块,用于由所述第一工作节点将过滤获得的第二特征数据和特征频次传输至第二工作节点;
第二合并子模块,用于由所述第二工作节点合并过滤获得的第二特征数据和特征频次。
优选地,所述中频特征过滤模块包括:
随机数值配置子模块,用于对所述第二特征数据配置一随机数值;
中频特征确定子模块,用于在所述第二特征数据的特征频次与所述随机数值的乘积小于预设的中频阈值时,确定所述第二特征数据为中频特征数据;
目标特征数据获得子模块,用于过滤所述第二特征数据,获得目标特征数据。
优选地,所述中频特征过滤模块包括:
第三分配子模块,用于将所述第二特征数据及所述特征频次分配至一个或多个第一工作节点;
第二过滤子模块,用于由所述第二工作节点根据所分配的特征频次过从所分配的第二特征数据过滤至少部分中频特征数据,获得目标特征数据;
第三传输子模块,用于由所述第一工作节点将过滤获得的目标特征数据和特征频次传输至第二工作节点;
第三合并子模块,用于由所述第二工作节点合并过滤获得的目标特征数据和特征频次。
优选地,还包括:
第一测试模型训练模块,用于采用第一原始特征数据训练第一测试模型;
第二测试模型训练模块,用于采用过滤了特征频次小于第一候选阈值之后的第一原始特征数据训练第二测试模型;
测试模块,用于对所述第一测试模型和所述第二测试模型进行A/B测试,获得第一分数和第二分数;
低频阈值确定模块,用于在所述第一点击率与所述第二点击率之间的差值小于预设的第一差距阈值时,确认所述第一候选阈值为低频阈值。
优选地,还包括:
第三测试模型训练模块,用于采用第二原始特征数据训练第三测试模型;
第四测试模型训练模块,用于采用过滤了特征频次与随机数值的乘积小于第二候选阈值之后的第二原始特征数据训练第四测试模型;
概率计算子模块,用于计算第一特征概率和第二特征概率;
中频阈值确定模块,用于在所述第一特征概率与所述第二特征概率之间的差值小于预设的第二差距阈值时,确认所述第二候选阈值为中频阈值;
其中,所述第一特征概率为正样本在所述第三测试模型的分数大于,负样本在所述第三测试模型的分数的概率;
所述第二特征概率为正样本在所述第四测试模型的分数大于,负样本在所述第四测试模型的分数的概率。
本申请实施例包括以下优点:
本申请实施例过滤低频特征数据至少部分中频特征数据,获得的目标特征数据具有高频特征数据,可能具有部分中频特征数据,基于这样的目标特征数据训练模型,基本不影响模型的性能,在保证机器学习的效果的同时,大大减少了特征的数量,从而大大减少所需的机器数量、资源数量,大大减少训练的时间、提高训练的速度,从而大大降低了训练成本。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种目标特征数据的挖掘方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,对第一特征数据统计特征频次;
在具体实现中,可以通过网络日志采集源数据,如对源数据进行解析,去掉无意义的信息,如字段“-”,获得结构化的第一特征数据,如用户ID,用户访问的商品ID,访问时间,用户行为(如点击,购买,评价),等等。
例如,网站日志为:
118.112.27.164---[24/Oct/2012:11:00:00+0800]"GET/b.jpg?cD17Mn0mdT17L2NoaW5hLmFsaWJhYmEuY29tL30mbT17R0VUfSZzPXsyMDB9JnI9e2h0dHA6Ly9mdy50bWFsbC5jb20vP3NwbT0zLjE2OTQwNi4xOTg0MDEufSZhPXtzaWQ9MTdjMDM2MjEtZTk2MC00NDg0LWIwNTYtZDJkMDcwM2NkYmE4fHN0aW1lPTEzNTEwNDc3MDU3OTZ8c2RhdGU9MjR8YWxpX2FwYWNoZV9pZD0xMTguMTEyLjI3LjE2NC43MjU3MzI0NzU5ODMzMS43fGNuYT0tfSZiPXstfSZjPXtjX3NpZ25lZD0wfQ==&pageid=7f0000017f00000113511803054674156071647816&sys=ie6.0|windowsXP|1366*768|zh-cn&ver=43&t=1351047705828HTTP/1.0"200-"Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR 2.0.50727)"118.112.27.164.135104760038.61^sid%3D17c03621-e960-4484-b056-d2d0703cdba8%7Cstime%3D1351047705796%7Csdate%3D24|cna=-^-^aid=118.112.27.164.72573247598331.7
过滤后获得的结构化的第一特征数据为:
1,b2b-1633112210,1215596848,1,07/Aug/2013:08:27:22
在本申请实施例中,可以对第一特征数据进行过滤,获得目标特征数据,以训练指定的模型。
若第一特征数据的数量较少,则可以在单个计算机中进行过滤,若第一特征数据的数量较多,则可以在多个计算机中进行过滤,如分布式系统(Distributed System),Hadoop、ODPS(Open Data Processing Service)等等。
分布式系统可以指一个由多个互相连接的处理资源组成的计算机系统,它们在整个系统的控制下协同执行同一个任务,这些资源可以是地理上相邻的,也可以是在地理上分散的。
为使本领域技术人员更好地理解本申请实施例,在本申请实施例中,将Hadoop作为分布式系统的一种实施例进行说明。
Hadoop主要包括两部分,一是分布式文件系统(Hadoop Distributed FileSystem,HDFS),另外是分布式计算框架,即MapReduce。
HDFS是一个高度容错性的系统,能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。
MapReduce是一套从海量源数据提取分析元素最后返回结果集的编程模型,其基本原理可以是将大的数据分析分成小块逐个分析,最后再将提取出来的数据汇总分析。
在Hadoop中,用于执行MapReduce的机器角色有两个:一个是JobTracker,另一个是TaskTracker。
其中,JobTracker可以用于调度工作,TaskTracker可以用于执行工作。
进一步而言,在Hadoop中TaskTracker可以指所述分布式系统的处理节点,该处理节点可以包括一个或多个映射(Map)节点和一个或多个化简(Reduce)节点。
在分布式计算中,MapReduce负责处理了并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题,把处理过程高度抽象为两个函数:映射函数(map函数)和规约函数(reduce函数),map函数可以把任务分解成多个任务,reduce函数可以把分解后的多任务处理的结果汇总起来。
在Hadoop中,每个MapReduce的任务可以被初始化为一个Job,每个Job又可以分为两种阶段:map阶段和reduce阶段。这两个阶段分别用两个函数表示,即map函数和reduce函数。
map函数可以接收一个<key,value>形式的输入(Input),然后同样产生一个<key,value>形式的中间输出(Output),Hadoop函数可以接收一个如<key,(list of values)>形式的输入(Input),然后对这个value集合进行处理,每个reduce函数产生0或1个输出(Output),reduce函数的输出也是<key,value>形式的。
在具体实现中,可以提取预先采集的第一特征数据统计特征频次,即该第一特征数据的数量,进而基于该特征频次进行过滤。
在本申请的一个实施例中,步骤101可以包括如下子步骤:
子步骤S11,将第一特征数据分配至一个或多个第一工作节点;
在分布式系统中,具有第一工作节点和第二工作节点进行过滤。
例如,在Hadoop、ODPS等分布式系统中,第一工作节点为Map节点,第二工作节点为Reduce节点。
为了保证统计的完整性,在分配第一特征数据时,一般保证每个第一工作节点(如Map节点)上分配的第一特征数据数据都不重叠、即彼此不相同。
需要说明的是,第一特征数据可以为数据ID的形式进行表示。
假设有三个第一特征数据,userid1、userid2和userid3,第一工作节点A分配到第一特征数据为userid1,第一工作节点B分配到的第一特征数据为userid2和userid3,并不分配userid1。
在实际应用中,以哈希取余(hash(x)%N)分配法为例,每个第一工作节点(如Map节点)配置有序号,对每个第一特征数据计算一个哈希值,然后将该哈希值除以一个指定的值,取余数,将该第一特征数据分配至序号的值与该余数相同的第一工作节点(如Map节点)中。
当然,上述分配方法只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他分配方法,如随机分配法(random(x)%N)等,本申请实施例对此不加以限制。
子步骤S12,由所述第一工作节点统计所分配的第一特征数据的特征频次;
子步骤S13,由所述第一工作节点将已统计的第一特征数据和特征频次传输至第二工作节点;
在本申请实施例中,第一工作节点(如Map节点)可以对所分配的第一特征数据进行统计,获得其特征频次,透传至第二工作节点(如Reduce节点)中。
例如,定义映射函数(map函数)为统计第一特征数据的特征频次。
其中,统计结果的数据格式可以为(第一特征数据,特征频次)。
子步骤S14,由所述第二工作节点合并已统计的第一特征数据和特征频次。
在第二工作节点(如Reduce节点)中,可以对第一工作节点(如Map节点)的统计结果进行合并,获得最终的结果。
例如,定义规约函数(reduce函数)为合并Map节点的统计结果。
其中,合并结果的数据格式可以为(第一特征数据,特征频次)。
步骤102,根据所述特征频次过从所述第一特征数据过滤低频特征数据,获得第二特征数据;
在本申请实施例中,可以按照特征频次,将第一特征数据划分出低频特征数据、中频特征数据和高频特征数据。
其中,低频特征数据,可以指特征频次最低的、占据第一特征数据总量第一比例的特征数据;
中频特征数据,可以指特征频次较高(高于低频特征数据的特征频次、低于高频特征数据的特征频次)的、占据第一特征数据总量第二比例的特征数据;
高频特征数据,可以指特征频次最高的、占据第一特征数据总量第三比例的特征数据;
由于低频特征数据、中频特征数据和高频特征数据为各不相同的特征数据,因此,若第一特征数据中仅包括低频特征数据、中频特征数据和高频特征数据,对于中频特征数据,可以认为是在第一特征数据中、除低频特征数据和高频特征数据之外的特征数据。
当然,上述特征数据的划分方式只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他特征数据的划分方式,如超低频特征数据、低频特征数据、中频特征数据、高频特征数据、超高频特征数据等等,本申请实施例对此不加以限制。另外,除了上述特征数据的划分方式外,本领域技术人员还可以根据实际需要采用其它特征数据的划分方式,本申请实施例对此也不加以限制。
应用本申请实施例,可以预先训练低频阈值,用于过滤低频特征数据。
具体而言,当第一特征数据的特征频次小于预设的低频阈值时,确定第一特征数据为低频特征数据,则可以过滤该第一特征数据,获得第二特征数据。
由于过滤了低频特征数据,那么,第二特征数据中包括中频特征数据和高频特征数据。
假设有5个第一特征数据及其特征频次:
(f1,2)、(f2,4)、(f3,7)、(f4,8)、(f5,9)
若过滤第一特征数据中占第一特征数据总数量20%-25%的低频特征数据,则可以设置低频阈值为3,这样第一特征数据f1会被过滤掉。
需要说明的是,在不同领域中,低频阈值也有所不同,并且,其第一比例不同也会使得低频阈值也有所不同,因此,本领域技术人员可以根据实际情况设定低频阈值,本申请实施例对此不加以限制。
在本申请的一个实施例中,可以通过如下方式训练低频阈值:
子步骤S21,采用第一原始特征数据训练第一测试模型;
所谓第一原始特征数据,实质也为特征数据,具有特征频次,在本申请实施例中,可以指未过滤低频特征数据的源数据,其包括低频特征数据、中频特征数据、高频特征数据。
对于未过滤低频特征数据的原始特征数据,可以进行机器学习,训练得到第一测试模型。
子步骤S22,采用过滤了特征频次小于第一候选阈值之后的第一原始特征数据训练第二测试模型;
在具体实现中,可以预先设定第一候选阈值,作为原始的低频阈值。
从第一原始特征数据中过滤特征频次小于第一候选阈值的特征频次,视为从原始特征数据过滤了低频特征。
采用过滤了低频特征的第一原始特征数据进行机器学习,训练得到第二测试模型。
子步骤S23,对所述第一测试模型和所述第二测试模型进行A/B测试,获得第一分数和第二分数;
子步骤S24,当所述第一点击率与所述第二点击率之间的差值小于预设的第一差距阈值时,确认所述第一候选阈值为低频阈值。
所谓A/B测试(A/B Testing),可以指为同一个目标(如低频阈值)制定A、B两个方案(如,第一测试模型、第二测试模型),让一部分用户使用A方案,另一部分用户使用B方案,记录下用户的使用情况(如在第一测试模型进行测试获得第一分数,在第二测试模型进行测试获得第二分数),判断哪个方案更符合目标。
以网页信息为例,采用第一测试模型提取第一网页信息(如广告数据、新闻数据等),采用第二测试模型提取第二网页信息(如广告数据、新闻数据等)。
对于访问的客户端,按照50%的概率选择第一测试模型或者第二测试模型进行服务,即展示第一网页信息、第二网页信息。
记录第一网页信息的第一点击概率作为第一分数,记录第二网页信息的第二点击率作为第二分数。
若第一分数和第二分数弱相等(即两者差值小于预设的第一差距阈值),则可以认为该第一候选阈值适合作为低频阈值,否则,选取新的第一候选阈值,重新进行训练。
在本申请的一个实施例中,步骤102可以包括如下子步骤:
子步骤S31,将所述第一特征数据及所述特征频次分配至一个或多个第一工作节点;
在分布式系统中,具有第一工作节点和第二工作节点进行过滤。
例如,在Hadoop、ODPS等分布式系统中,第一工作节点为Map节点,第二工作节点为Reduce节点。
在本申请实施例,可以通过哈希取余(hash(x)%N)分配法、随机分配法(random(x)%N)等方式,将第一特征数据及特征频次分配至一个或多个第一工作节点。
需要说明的是,第一特征数据可以为数据ID的形式进行表示。
子步骤S32,由所述第一工作节点根据所分配的特征频次过从所分配的第一特征数据过滤低频特征数据,获得第二特征数据;
子步骤S33,由所述第一工作节点将过滤获得的第二特征数据和特征频次传输至第二工作节点;
在本申请实施例中,第一工作节点(如Map节点)可以从所分配的第一特征数据过滤低频特征,获得第二特征数据,透传至第二工作节点(如Reduce节点)中。
例如,定义映射函数(map函数)为当第一特征数据的特征频次小于预设的低频阈值时,确定第一特征数据为低频特征数据,过滤该第一特征数据。
其中,过滤结果的数据格式可以为(第二特征数据,特征频次)。
需要说明的是,由于第一特征数据及其特征频次是配对的,因此,过滤了低频特征数据,其特征频次也会一同过滤,所保留的第二特征数据,其特征频次也会一同保留。
子步骤S34,由所述第二工作节点合并过滤获得的第二特征数据和特征频次。
在第二工作节点(如Reduce节点)中,可以对第一工作节点(如Map节点)的过滤结果进行合并,获得最终的结果。
例如,定义规约函数(reduce函数)为合并Map节点的过滤结果。
其中,合并结果的数据格式可以为(第二特征数据,特征频次)。
步骤103,根据所述特征频次过从所述第二特征数据过滤至少部分中频特征数据,获得目标特征数据。
由于中频特征数据对于模型训练是有用的,因此在本申请实施例中,可以通过随机的方式从第二特征数据过滤中频特征数据。
至于哪部分会被过滤掉,是随机的,即平等对待中频特征数据。
过滤之后剩余的目标特征数据除了包括高频特征数据,可能包括中频特征数据,也可能不包括中频特征数据。
应用本申请实施例,预先训练中频阈值,用于过滤中频特征数据。
具体而言,可以通过泊松分布(poission分布)等方式对第二特征数据配置一随机数值(即随机产生的数值)。
当第二特征数据的特征频次与随机数值的乘积小于预设的中频阈值时,则可以确定该第二特征数据为中频特征数据,过滤该第二特征数据,获得目标特征数据。
以泊松分布(poission分布)为例,由于泊松分布(poission分布)可以产生(0,1)之间的浮点数作为随机数值,因此,可以以0.1作为中频特征,符合以下公式的第二特征数据可以认为是中频特征:
特征频次*p<0.1
其中,p为泊松分布产生的随机数值。
需要说明的是,在不同领域中,中频阈值也有所不同,并且,其第二比例不同也会使得低频阈值也有所不同,因此,本领域技术人员可以根据实际情况设定中频阈值,本申请实施例对此不加以限制。
在本申请的一个实施例中,可以通过如下方式训练低频阈值:
子步骤S41,采用第二原始特征数据训练第三测试模型;
所谓第二原始特征数据,实质也为特征数据,具有特征频次,在本申请实施例中,可以指未过滤中频特征数据的源数据,其包括低频特征数据、中频特征数据、高频特征数据。
对于未过滤中频特征数据的第二原始特征数据,可以进行机器学习,训练得到第三测试模型。
子步骤S42,采用过滤了特征频次与随机数值的乘积小于第二候选阈值之后的第二原始特征数据训练第四测试模型;
在具体实现中,可以预先设定第二候选阈值,作为原始的中频阈值。
从第二原始特征数据中过滤特征频次与随机数值的乘积小于第二候选阈值的特征频次,视为从原始特征数据过滤了中频特征。
采用过滤了中频特征的第二原始特征数据进行机器学习,训练得到第四测试模型。
子步骤S43,计算第一特征概率和第二特征概率;
子步骤S44,当所述第一特征概率与所述第二特征概率之间的差值小于预设的第二差距阈值时,确认所述第二候选阈值为中频阈值。
在具体实现中,可以提取测试数据(包括正样本、负样本),对第三测试模型和第四测试模型计算AUC(Area under Curve)值。
其中,AUC值为Roc(Receiver Operating Characteristic)曲线下的面积,介于0.1和1之间,可以直观的评价分类器的好坏,一般AUC值越大,分类器的性能越好。
具体而言,AUC值是一个概率值,当随机挑选一个正样本以及负样本,当前的分类器根据计算得到的Score值(分数值)将这个正样本排在负样本前面的概率就是AUC值。
一般而言,AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类。
那么,在本申请实施例中,第一特征概率为正样本在所述第三测试模型的分数大于,负样本在第三测试模型的分数的概率;
第二特征概率为正样本在第四测试模型的分数大于,负样本在第四测试模型的分数的概率。
因此,在计算AUC的值时,使用AUC的一个性质(它和Wilcoxon-Mann-Witney Test是等价的)来进行计算。
Wilcoxon-Mann-Witney Test就是测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。
方法一:统计所有的M×N(M为正样本的数目,N为负样本的数目)个正负样本对中,有多少个组中的正样本的score大于负样本的score。
当二元组中正负样本的score相等的时候,按照0.5计算,然后除以MN:
方法二:对score从大到小排序,然后令最大score对应的sample的rank为n,第二大score对应sample的rank为n-1,以此类推。
把所有的正样本的rank相加,再减去正样本的score为最小的那M个值的情况。得到的就是所有的样本中有多少对正样本的score大于负样本的score,再除以M×N:
AUC=((所有的正例位置相加)-M*(M+1))/(M*N)
若第一特征概率和第二特征概率弱相等(即两者差值小于预设的第二差距阈值),则可以认为该第二候选阈值适合作为中频阈值,否则,选取新的第二候选阈值,重新进行训练。
在本申请的一个实施例中,步骤103可以包括如下子步骤:
子步骤S51,将所述第二特征数据及所述特征频次分配至一个或多个第一工作节点;
在分布式系统中,具有第一工作节点和第二工作节点进行过滤。
例如,在Hadoop、ODPS等分布式系统中,第一工作节点为Map节点,第二工作节点为Reduce节点。
在本申请实施例,可以通过哈希取余(hash(x)%N)分配法、随机分配法(random(x)%N)等方式,将第一特征数据及特征频次分配至一个或多个第一工作节点。
需要说明的是,第一特征数据可以为数据ID的形式进行表示。
子步骤S52,由所述第二工作节点根据所分配的特征频次过从所分配的第二特征数据过滤至少部分中频特征数据,获得目标特征数据;
子步骤S53,由所述第一工作节点将过滤获得的目标特征数据和特征频次传输至第二工作节点;
在本申请实施例中,第一工作节点(如Map节点)可以从所分配的第二特征数据过滤中频特征,获得目标特征数据,透传至第二工作节点(如Reduce节点)中。
例如,定义映射函数(map函数)为当第二特征数据的特征频次与随机数值的乘积小于预设的中频阈值时,确定第二特征数据为中频特征数据,则过滤该第二特征数据。
其中,过滤结果的数据格式可以为(目标特征数据,特征频次)。
需要说明的是,由于第二特征数据及其特征频次是配对的,因此,过滤了中频特征数据,其特征频次也会一同过滤,所保留的目标特征数据,其特征频次也会一同保留。
子步骤S54,由所述第二工作节点合并过滤获得的目标特征数据和特征频次。
在第二工作节点(如Reduce节点)中,可以对第一工作节点(如Map节点)的过滤结果进行合并,获得最终的结果。
例如,定义规约函数(reduce函数)为合并Map节点的过滤结果。
其中,合并结果的数据格式可以为(目标特征数据,特征频次)。
对于过滤了低频特征数据和至少部分中频特征数据的目标特征数据,可以采用该目标特征数据训练指定的模型,例如,SVM((Support VectorMachine,支持向量机),逻辑回归模型,深度学习DP模型,等等,本申请实施例对此不加以限制。
很多情况下,低频特征数据、中频特征数据的数量大约占据特征数据总数的80%-90%,高频特征数据大约占据特征数据总数的10%-20%。
所以,理想情况下,仅保留10%-20%的高频特征数据,即可训练模型。
但是,很多中频特征数据能够比较好捕获用户长尾需求,往往不能直接丢弃。
至于低频特征数据,出现频率很低,在特征数据的总量很大的情况下,过滤后对模型性能基本没有影响。
例如,决定用户是否要买一本书,可以考虑的特征数据非常多,包括:
低频特征数据:天气;
中频特征数据:书的封面;
高频特征数据:书的质量。
实际上,大多数用户购书基本不考虑天气,较少考虑书的封面,而着重考虑书的质量。
因此,过滤天气这个低频特征数据或者书的封面这个中频特征数据,保留书的质量这个高频特征数据或者书的封面这个中频特征数据,对训练购书模型的性能基本没有影响。
由此可见,获取到的是整个群体的特征,考虑群体中主要的特征(如书的质量),而过滤次要的特征(如天气),对模型性能基本不会产生影响。
目前,通过一个频次阈值过滤特征,不区分低频特征数据、中频特征数据还是高频特征数据,笼统地过滤特征,可能会把大量有效的特征数据(如中频特征、甚至高频特征)过滤掉,从而造成机器学习的效果显著下降。
本申请实施例过滤低频特征数据至少部分中频特征数据,获得的目标特征数据具有高频特征数据,可能具有部分中频特征数据,基于这样的目标特征数据训练模型,基本不影响模型的性能,在保证机器学习的效果的同时,大大减少了特征的数量,从而大大减少所需的机器数量、资源数量,大大减少训练的时间、提高训练的速度,从而大大降低了训练成本。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图2,示出了本申请的一种目标特征数据的挖掘装置实施例的结构框图,具体可以包括如下模块:
特征频次统计模块201,用于对第一特征数据统计特征频次;
低频特征过滤模块202,用于根据所述特征频次过从所述第一特征数据过滤低频特征数据,获得第二特征数据;
中频特征过滤模块203,用于根据所述特征频次过从所述第二特征数据过滤至少部分中频特征数据,获得目标特征数据。
在本申请的一个实施例中,该装置还可以包括如下模块:
模型训练模块,用于采用所述目标特征数据训练指定的模型。
在本申请的一个实施例中,所述特征频次统计模块201可以包括如下子模块:
第一分配子模块,用于将第一特征数据分配至一个或多个第一工作节点;
频次统计子模块,用于由所述第一工作节点统计所分配的第一特征数据的特征频次;
第一传输子模块,用于由所述第一工作节点将已统计的第一特征数据和特征频次传输至第二工作节点;
第一合并子模块,用于由所述第二工作节点合并已统计的第一特征数据和特征频次。
在本申请的一个实施例中,所述低频特征过滤模块202可以包括如下子模块:
低频特征确定子模块,用于在所述第一特征数据的特征频次小于预设的低频阈值时,确定所述第一特征数据为低频特征数据;
第二特征数据获得子模块,用于过滤所述第一特征数据,获得第二特征数据。
在本申请的另一个实施例中,所述低频特征过滤模块202可以包括如下子模块:
第二分配子模块,用于将所述第一特征数据及所述特征频次分配至一个或多个第一工作节点;
第一过滤子模块,用于由所述第一工作节点根据所分配的特征频次过从所分配的第一特征数据过滤低频特征数据,获得第二特征数据;
第二传输子模块,用于由所述第一工作节点将过滤获得的第二特征数据和特征频次传输至第二工作节点;
第二合并子模块,用于由所述第二工作节点合并过滤获得的第二特征数据和特征频次。
在本申请的一个实施例中,所述中频特征过滤模块203可以包括如下子模块:
随机数值配置子模块,用于对所述第二特征数据配置一随机数值;
中频特征确定子模块,用于在所述第二特征数据的特征频次与所述随机数值的乘积小于预设的中频阈值时,确定所述第二特征数据为中频特征数据;
目标特征数据获得子模块,用于过滤所述第二特征数据,获得目标特征数据。
在本申请的另一个实施例中,所述中频特征过滤模块203可以包括如下子模块:
第三分配子模块,用于将所述第二特征数据及所述特征频次分配至一个或多个第一工作节点;
第二过滤子模块,用于由所述第二工作节点根据所分配的特征频次过从所分配的第二特征数据过滤至少部分中频特征数据,获得目标特征数据;
第三传输子模块,用于由所述第一工作节点将过滤获得的目标特征数据和特征频次传输至第二工作节点;
第三合并子模块,用于由所述第二工作节点合并过滤获得的目标特征数据和特征频次。
在本申请的一个实施例中,该装置还可以包括如下模块:
第一测试模型训练模块,用于采用第一原始特征数据训练第一测试模型;
第二测试模型训练模块,用于采用过滤了特征频次小于第一候选阈值之后的第一原始特征数据训练第二测试模型;
测试模块,用于对所述第一测试模型和所述第二测试模型进行A/B测试,获得第一分数和第二分数;
低频阈值确定模块,用于在所述第一点击率与所述第二点击率之间的差值小于预设的第一差距阈值时,确认所述第一候选阈值为低频阈值。
在本申请的一个实施例中,该装置还可以包括如下模块:
第三测试模型训练模块,用于采用第二原始特征数据训练第三测试模型;
第四测试模型训练模块,用于采用过滤了特征频次与随机数值的乘积小于第二候选阈值之后的第二原始特征数据训练第四测试模型;
概率计算子模块,用于计算第一特征概率和第二特征概率;
中频阈值确定模块,用于在所述第一特征概率与所述第二特征概率之间的差值小于预设的第二差距阈值时,确认所述第二候选阈值为中频阈值;
其中,所述第一特征概率为正样本在所述第三测试模型的分数大于,负样本在所述第三测试模型的分数的概率;
所述第二特征概率为正样本在所述第四测试模型的分数大于,负样本在所述第四测试模型的分数的概率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种目标特征数据的挖掘方法和一种目标特征数据的挖掘装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。