一种基于历史行为共现的数据划分方法及系统与流程

文档序号:15638827发布日期:2018-10-12 21:48阅读:237来源:国知局

本发明涉及机器分类领域,特别涉及一种基于历史行为共现的数据划分方法及系统。



背景技术:

属性划分是指利用某一属性或某些属性将总体分成部分的过程。属性划分是很好的人工智能的应用场景,也是最早的人工智能技术落地的应用场景。属性划分在我们日上生活中非常常见,很多时候我们不自觉将不同物体进行划分,例如我们将苹果划分为水果,将菠菜划分为蔬菜,或者我们在看新闻时不由自主的按照新闻内容将新闻划分为体育新闻、财经新闻、社会新闻等等。

利用自身属性对物体或者信息等进行相应的划分具有广泛的需求和应用,例如门户网站会利用分类器将新闻内容按照内容划分为不同类型,邮箱会利用训练好的分类器根据邮件内容将邮件分为垃圾邮件、广告邮件等。利用人工智能技术手段对物体或者信息进行划分可以减少人工成本,对企业有良好的经济作用。

划分通俗来讲就是按照某种规则、根据或原则,将整体分为几个部分,现阶段划分的方法有如下几类:

现有技术一:基于规则的人工划分,主要是根据不同的划分需要按照用途、适用人群、使用范围等规则划分,这种方式普遍适用性较强,但存在划分速度慢,划分失误率高,人工成本高等问题。

现有技术二:基于人工标注类别、特征的有监督的机器分类划分方式,有监督模型是指用已知某种或某些特性的样本作为训练集,以建立一个数学模型,再用已建立的模型来预测未知样本,此种方法称为有监督学习。机器分类模型发展和演变日趋成熟和稳定,有多种分类器,例如分类模型的支持向量机(svm)、k近邻、逻辑回归(lr)、人工神经网络等等在基于人工标注和人工特征提取的前提下在不同数据和应用场景下表现出不俗的表现。

该方法的通常技术是通过人工标注类别同时按照人为的方式将部分内容进行类别标注,同时对每个物体、信息进行属性、特征标注,利用标注数据对分类模型进行训练,然后将训练成熟的分类器用于物体、信息等内容的划分,通常分类器为专属模型,针对不同的划分内容需要重新训练分类器。

这种方式随着技术的不断成熟,由于其减少人工成本,减少失误率,划分速度大幅度提升的优势,越来越多的传统业务用到机器划分方法,例如文本分类、情感分析、主题划分等等。

现有技术三:基于人工特征提取的相似性机器聚类划分方式,作为无监督的划分方法可以减少人工成本,也是一种常见的划分方法。无监督学习即与有监督对立,通常是在类别没有被标注的训练样本中来解决各种问题的方法。聚类是一种常见的机器学习中的无监督学习方法,聚类方法依照不同的计算方法可以分为划分方法、基于密度的方法、层次方法、基于网格的方法等等,常见的算法有基于划分的k-means算法、基于密度的dbscan算法、基于层次划分的chameleon算法等等。

这种方式尽管减少了有监督的分类划分方式的人工类别标注和模型训练过程,但由于特征的记录和提取仍然采用人工的方式。这种方式应用场景也很多例如:异常检测、舆情分析等等。

现有技术的缺陷:现有技术一,人工的投入经济成本高,不可避免的划分速度不如机器划分速度快且人工参与难以避免失误。现有技术二,虽然减少了人工的投入,但仍需一定的人工标注成本而且训练好的分类器不具备通用性,当应用场景更换时仍需花费一定时间和人工成本针对不同的应用需求进行模型设计和训练。现有技术三,虽然相对于现有技术二和现有技术一减少了一定人工成本,但是不是纯无人工成本。三种技术都在一定程度上依赖人工参与,并且划分过程中常见划分不统一的问题,例如一个商品根据颜色和大小进行划分得出的结果截然不同,此外对于无划分标准或者特征情况下的物体或者信息无从下手。

发明人经过大量的机器划分方法的研究以及对日常生活的观察,发现在历史数据中常常出现数据共现,数据共现是指不同使用对象对同种数据有交互或者同一使用对象在一定时间窗口内对一些数据存在使用交互,数据共现是一种非常普遍的现象,例如用户在一天之内连续点击了多条军事新闻,这种同一使用用户以一定时间单位作为时间窗口出现的多条军事新闻就是典型的数据共现。由于多年互联网用户使用的数据积累通常情况下用户在一定需求的情况下点击浏览某类信息或者选购某类商品,短时间内点击的某类信息、商品之间具有一定的相似性或者相关性,甚至可能从某种角度属于同一种信息、商品,例如某人想购买一台空调,通过电商平台一定时间内点击的都是空调只不过属于不同商家。

本发明就是通过物体、信息等自身存在的共现特征属性,利用共现数据具有相似性特点进行划分,通过这种方式解决解决物体划分标准不统一、无划分规则或标准时很难划分、人工参与成本高的现有划分的三个难题。本

技术实现要素:
可以简述为利用互联网长期的数据积累,从海量数据中获取信息,根据历史数据中多数人通过一定时间窗口内浏览、点击的共同出现的物体、信息等统计共现特征,利用自编码器进行降维处理,将这些物体、信息等经降维处理的共现特征通过无监督的技术手段进行归类,最终实现基于历史数据共现的无人工划分方法。

发明内容

本发明的目的是为解决物体划分标准不统一导致划分结果不明去、无划分规则或标准导致无法划分、人工参与成本高的现有划分的三个难题为企业在某些需要技术环节中节省成本、解决难题,提出了一种基于历史数据共现的划分方法及系统。

具体地说,本发明公开了一种基于历史行为共现的数据划分方法,其中包括:

步骤1、获取多位用户的历史行为,依时间顺序对该历史行为进行排序,得到预处理数据,以构建数据库;

步骤2、统计该数据库中各历史行为出现的次数作为总次数,并统计其与其余各历史行为在预设时间窗口内共同出现的次数作为共现次数,通过计算共现次数与总次数的比值,得到历史行为对其余各历史行为的共现概率,集合该共现概率作为共现特征;

步骤3、获取预设的划分阈值,对该共现特征使用基于划分的k-means方法进行聚类处理,采用穷举法得到该划分阈值内的划分数量,并得到每种该划分数量对应的聚类结果;

步骤4、对每种该划分数量对应的该聚类结果,通过对评价结果进行筛选,得到最优划分数量,输出该最优划分数量对应的聚类结果作为最终的划分结果。

该基于历史行为共现的数据划分方法,其中还包括:

步骤5、根据预设的周期更新该历史行为数据,按照更新后的历史行为数据重复执行该步骤1到该步骤4,以更新该划分结果。

该基于历史行为共现的数据划分方法,其中该步骤4还包括:依次利用簇内误差平方和、簇间误差平方和、ch、sh、s_dbw、sd,对该聚类结果进行评价,具体包括:

步骤41、获取步骤3中该聚类结果的簇内误差平方和以及簇间误差平方和的对应结果,并分别根据该簇内误差平方和、该簇间误差平方和及其对应的划分数量,绘制簇内误差平方和曲线及簇间误差平方和曲线,将该簇间误差平方和曲线、该簇内误差平方和曲线的交点对应的划分数量作为分离划分值,将该簇内误差平方和、该簇间误差平方和的比值的梯度拐点对应的划分数量,作为第一划分值;

步骤42、获取步骤3中该聚类结果的ch值,并取该ch值中划分数量大于该分离划分值的最大ch值对应的划分数量,作为第二划分值;

步骤43、获取步骤3中该聚类结果的sh值,并取该sh值中划分数量大于该分离划分值的最大sh值对应的划分数量,作为第三划分值;

步骤44、获取步骤3中该聚类结果的sd值,并取该sd值中划分数量大于该分离划分值的最小sd值对应的划分数量,作为第四划分值;

步骤45、获取步骤3中该聚类结果的s_dbw值,并取该s_dbw值中划分数量大于该分离划分值的最小s_dbw值对应的划分数量,作为第五划分值;

步骤46、采取投票机制的方式从该第一划分值、该第二划分值、该第三划分值、该第四划分值、该第五划分值中挑选投票结果最多的值,作为该最优划分数量,若出现投票结果一致的情况时,取该第五划分值作为该最优划分数量。

该基于历史行为共现的数据划分方法,其中该步骤1还包括:

对频繁出现或者记录出错的该历史行为数据进行过滤、合并或者舍去处理。

该基于历史行为共现的数据划分方法,其中该步骤2还包括:对该共现特征进行降维处理。

该基于历史行为共现的数据划分方法,其中该步骤2包括:

采用自编码器模型对该共现特征进行降维处理,该自编码器模型的编码器部分函数公式如下:

h=f(y)

f(y)=we*y

该自编码器模型的解码器部分函数定义如下公式所示:

该自编码器的损失函数为:

式中y为待降维共现特征,h表示降维特征,we表示编码器函数参数,wd表示为解码器参数,参数表示经解码器解析的特征,n表示待降维处理的该共现特征的数据总量;

通过随机梯度下降的方式进行训练,并按照神经网络前反馈的方式获取参数更新梯度,最后将训练完成的编码器部分用于该共现特征的降维处理。

该基于历史行为共现的数据划分方法,其中该历史行为数据为待划分的商品浏览信息、新闻信息或指定的敏感信息。

该基于历史行为共现的数据划分方法,其中该步骤2包括:

步骤21、获取该数据库aj为该数据库a中第j类历史行为,统计该数据库a中第m类历史行为am在该数据库a中出现的次数作为总次数,且m≦j;

步骤22、并统计am与该数据库a中第n类历史行为an在预设时间窗口内共同出现的次数作为共现次数,m≠n且n≦j,通过计算该共现次数与该总次数的比值,得到am对an的共现概率,

步骤23、调整n的数值,重复执行步骤22,直到遍历建数据库a中除am以外的历史行为类别,得到am对其余各类历史行为的共现概率,并将其集合作为一维共现概率;

步骤24、调整m的数值,重复执行步骤21和步骤22,直到遍历建数据库a中所有的历史行为类别,集合该一维共现概率得到二维共现概率,以得到数据库a中每一类历史行为对其余各类历史行为的共现概率,将该二维共现概率作为该共现特征。

本发明还提供了一种基于历史行为共现的数据划分系统,其中包括:

数据库构建模块,用于获取多位用户的历史行为,依时间顺序对该历史行为进行排序,得到预处理数据,以构建数据库;

共现特征提取模块、用于根据该数据库中各历史行为出现的次数,提取历史行为对其余各历史行为的共现概率,集合该共现概率作为共现特征;

划分模块,用于获取预设的划分阈值,对该共现特征使用基于划分的k-means方法进行聚类处理,采用穷举法得到该划分阈值内的划分数量,并得到每种该划分数量对应的聚类结果;

筛选模块,用于对每种该划分数量对应的该聚类结果进行评价,通过对评价结果进行筛选,得到最优划分数量,输出该最优划分数量对应的聚类结果作为最终的划分结果。

该基于历史行为共现的数据划分系统,其中该筛选模块还包括:依次利用簇内误差平方和、簇间误差平方和、ch、sh、s_dbw、sd,对该聚类结果进行评价,具体包括:

第一划分值评价模块,获取划分模块中该聚类结果的簇内误差平方和以及簇间误差平方和的对应结果,并分别根据该簇内误差平方和、该簇间误差平方和及其对应的划分数量,绘制簇内误差平方和曲线及簇间误差平方和曲线,将该簇间误差平方和曲线、该簇内误差平方和曲线的交点对应的划分数量作为分离划分值,将该簇内误差平方和、该簇间误差平方和的比值的梯度拐点对应的划分数量,作为第一划分值;

第二划分值评价模块,获取划分模块中该聚类结果的ch值,并取该ch值中划分数量大于该分离划分值的最大ch值对应的划分数量,作为第二划分值;

第三划分值评价模块,获取划分模块中该聚类结果的sh值,并取该sh值中划分数量大于该分离划分值的最大sh值对应的划分数量,作为第三划分值;

第四划分值评价模块,获取划分模块中该聚类结果的sd值,并取该sd值中划分数量大于该分离划分值的最小sd值对应的划分数量,作为第四划分值;

第五划分值评价模块,获取划分模块中该聚类结果的s_dbw值,并取该s_dbw值中划分数量大于该分离划分值的最小s_dbw值对应的划分数量,作为第五划分值;

第投票挑选模块,采取投票机制的方式从该第一划分值、该第二划分值、该第三划分值、该第四划分值、该第五划分值中挑选投票结果最多的值,作为该最优划分数量,若出现投票结果一致的情况时,取该第五划分值作为该最优划分数量。

总体技术效果:

本发明可以应用于具有历史交互数据属性的多个划分场景中,例如商品划分、新闻划分、敏感信息划分等等。本发明实验采用一个电商的历史点击数据,按照本发明的流程和计算过程,对商品进行划分处理,得到良好的商品划分。整个划分过程无任何人工参与,并且实现了在划分标准不统一、划分规则不明确等的前提下实现划分,这样做可以为划分需求单位节省大量的人工成本的同时解决现阶段的诸多问题。

附图说明

图1为发明技术方案及系统流程图;

图2为发明详细实施过程流程图;

图3为共现特征的自编码降维器;

图4为自编码降维器实验损失变化曲线图;

图5为最优划分k值获取流程图;

图6为簇内误差平方和与簇间误差平方和变化曲线;

图7为簇内误差平方和与簇间误差平方和比值及比值梯度变化曲线;

图8为ch变化曲线;

图9为sh变化曲线;

图10为sd变化曲线;

图11为s_dbw变化曲线。

具体实施方式

本发明公开了一种基于历史行为共现的数据划分方法,其中包括:

步骤1、获取多位用户的历史行为,依时间顺序对该历史行为进行排序,得到预处理数据,以构建数据库;

步骤2、统计该数据库中各历史行为出现的次数作为总次数,并统计其与其余各历史行为在预设时间窗口内共同出现的次数作为共现次数,通过计算共现次数与总次数的比值,得到历史行为对其余各历史行为的共现概率,集合该共现概率作为共现特征;

步骤3、获取预设的划分阈值,对该共现特征使用基于划分的k-means方法进行聚类处理,采用穷举法得到该划分阈值内的划分数量,并得到每种该划分数量对应的聚类结果;

步骤4、对每种该划分数量对应的该聚类结果,通过对评价结果进行筛选,得到最优划分数量,输出该最优划分数量对应的聚类结果作为最终的划分结果。

该基于历史行为共现的数据划分方法,其中还包括:

步骤5、根据预设的周期更新该历史行为数据,按照更新后的历史行为数据重复执行该步骤1到该步骤4,以更新该划分结果。

该基于历史行为共现的数据划分方法,其中该步骤4还包括:依次利用簇内误差平方和、簇间误差平方和、ch、sh、s_dbw、sd,对该聚类结果进行评价,具体包括:

步骤41、获取步骤3中该聚类结果的簇内误差平方和以及簇间误差平方和的对应结果,其中对应结果指的是每个聚类结果对应的的簇内误差平方和与簇间误差平法和的值。并分别根据该簇内误差平方和、该簇间误差平方和及其对应的划分数量,绘制簇内误差平方和曲线及簇间误差平方和曲线,将该簇间误差平方和曲线、该簇内误差平方和曲线的交点对应的划分数量作为分离划分值,将该簇内误差平方和、该簇间误差平方和的比值的梯度拐点对应的划分数量,作为第一划分值;

步骤42、获取步骤3中该聚类结果的ch值,并取该ch值中划分数量大于该分离划分值的最大ch值对应的划分数量,作为第二划分值;

步骤43、获取步骤3中该聚类结果的sh值,并取该sh值中划分数量大于该分离划分值的最大sh值对应的划分数量,作为第三划分值;

步骤44、获取步骤3中该聚类结果的sd值,并取该sd值中划分数量大于该分离划分值的最小sd值对应的划分数量,作为第四划分值;

步骤45、获取步骤3中该聚类结果的s_dbw值,并取该s_dbw值中划分数量大于该分离划分值的最小s_dbw值对应的划分数量,作为第五划分值;

步骤46、采取投票机制的方式从该第一划分值、该第二划分值、该第三划分值、该第四划分值、该第五划分值中挑选投票结果最多的值,作为该最优划分数量,若出现投票结果一致的情况时,取该第五划分值作为该最优划分数量。

该基于历史行为共现的数据划分方法,其中该步骤1还包括:

对频繁出现或者记录出错的该历史行为数据进行过滤、合并或者舍去处理。

该基于历史行为共现的数据划分方法,其中该步骤2还包括:对该共现特征进行降维处理。

该基于历史行为共现的数据划分方法,其中该步骤2包括:

采用自编码器模型对该共现特征进行降维处理,该自编码器模型的编码器部分函数公式如下:

h=f(y)

f(y)=we*y

该自编码器模型的解码器部分函数定义如下公式所示:

该自编码器的损失函数为:

式中y为待降维共现特征,h表示降维特征,we表示编码器函数参数,wd表示为解码器函数,参数表示经解码器解析的特征,n表示待降维处理的该共现特征的数据总量;

通过随机梯度下降的方式进行训练,并按照神经网络前反馈的方式获取参数更新梯度,最后将训练完成的编码器部分用于该共现特征的降维处理。

该基于历史行为共现的数据划分方法,其中该历史行为数据为待划分的商品浏览信息、新闻信息或指定的敏感信息。

该基于历史行为共现的数据划分方法,其中该步骤2包括:

步骤21、获取该数据库aj为该数据库a中第j类历史行为,统计该数据库a中第m类历史行为am在该数据库a中出现的次数作为总次数,且m≦j;

步骤22、并统计am与该数据库a中第n类历史行为an在预设时间窗口内共同出现的次数作为共现次数,m≠n且n≦j,通过计算该共现次数与该总次数的比值,得到am对an的共现概率,

步骤23、调整n的数值,重复执行步骤22,直到遍历建数据库a中除am以外的历史行为类别,得到am对其余各类历史行为的共现概率,并将其集合作为一维共现概率;

步骤24、调整m的数值,重复执行步骤21和步骤22,直到遍历建数据库a中所有的历史行为类别,集合该一维共现概率得到二维共现概率,以得到数据库a中每一类历史行为对其余各类历史行为的共现概率,将该二维共现概率作为该共现特征。

为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。

本发明的相关实验验证,将利用电商的历史交互数据实现对不同的商品进行划分。实施过程流程图如图2所示,具体实施方案如下:

s01,面向共现特征提取的数据预处理。

根据不同的历史交互数据内容进行预处理,本发明可以使用用户历史点击数据、用户历史浏览数据、用户历史通信数据等数据,不同业务需求数据预处理流程大体相同,按照历史数据交互时间进行排序,对频繁交互或者记录出错的数据进行过滤、合并或者舍去处理。

s02,提取并表示共现特征。共现特征的提取方法,首先选取一定的时间窗口,例如5分钟;然后依次按照时间窗口内的共现物体、信息等,依据同一用户的点击、浏览等交互数据,统计不同用户对该数据共同出现的频率。例如数据库中存在多个用户,一个用户在5分钟内点击(预览)了a和b,其他9个用户也同样出现了在5分钟内点击了a和b的情况,那么a和b的共现次数是10次即为共现商品的频率;最后根据共现的统计频率,计算出不同物体、信息等的共现概率,例如a商品在数据库中共被用户点击100次,其中与b在时间窗口内共同出现了10次,b对a的共现概率为0.1。

为使不同物体、信息等具有可比较性,根据总数量构建的特征向量例如a、b、c三件商品,a、b两商品的共现概率为0.5,c、b两商品的共现概率为0.7,a、c两商品的共现概率为0。根据该例子构建的特征矩阵如下所示:

本发明实施例根据电商用户点击数据数据及日常的用户对电商app使用情况的观察,选取5分钟作为共现时间窗口,实施例所采用数据中共包含28710个商品,所以根据商品的共现统计得出一个28710×28710的特征矩阵。

s03,针对共现特征降维的自编码器设计及训练。

特征矩阵维度过高将导致“维数灾难”,通常“维数灾难”会导致一些问题,随着数据维数的增加,在更高维度下的数据更加的离散,对于优化来讲难度更大;高维数据相比于低维数据来说,具有更多的噪音,并且有学者进行了相关实验,由于高维数据的噪音积累,随着特征数据的维数增加对于分类的误分率处于先降低后增加的趋势,在维度达到一定规模后呈单调上升趋势,并且高维特征的误分率与随机猜测的误分率相似;维度爆炸可能会导致计算成本和存储成本的升高,甚至可能导致由于当前阶段机器的性能和效率的限制,机器无法完成计算。

通过降维处理时解决“维数灾难”的一个常见的也是很好的办法。降维的方法有线性空间的降维、非线性空间的降维、神经网络降维方法。本发明选择使用神经网络的降维方式的自编码器进行降维处理,该方法降维过程中可以有效降维的同时减少特征表示损失,模型结构图3所示。

自编码器由编码器和解码器两部分组成,编码器将原始特征进行重新编码得到新的编码结果即降维特征,解码器目的是将重新编码的特征还原回原始特征。本发明中使用的编码器部分函数公式如下

h=f(y)

f(y)=we*y

为满足本发明的实验案例将隐藏层定义为16维,目的是将高维共现特征降维16维的低维特征,此外本发明中解码器部分函数定义如下公式所示。

本发明设计的自编码器损失函数定义为常见的均方损失,定义公式如下。

s04,训练自编码器,利用自编码器得到共现特征的降维特征。

根据s03中设计的自编码器的模型结构和损失函数,对自编码器进行相应的训练,参数更新采用小批量梯度下降方式,梯度获取采用神将网络中常用的前反馈方式。

本发明对自编码器训练过程进行了相应实验,实验输入为s01,s02两部分得到的共现特征,实验结果图4,其中y轴为损失项,x轴为迭代次数。由实验结果可知,随着迭代次数的增加,损失项不断减少直至收敛或达到阈值,损失项变化可知,自编码器在降维过程可以有效保持原始特征的特征信息,减少表示损失。

将训练完善的自编码器的编码器部分用于共现特征的特征降维处理,得到共现特征相应的降维特征。

s05,使用s03、s04得到降维共现特征,利用基于划分的聚类算法k-means进行聚类。

聚类指将样本数据集d通过一定的计算规则将其划分成一些互补相交的子集,这些子集被称为簇(cluster),聚类的目的是令簇内数据点彼此相似,簇间数据点彼此不相似。聚类的应用场景很多,例如用于模式识别、信息检索、舆情分析、异常检测等等。聚类方法按照不同的方式可以分为划分的方式、基于密度的方式、层次划分的方式、基于网格的方式。物体、信息等的相似性更适合用空间距离表示,而划分的方式和基于密度的方式更适合空间距离相似的聚类,由于本发明的目的是将物体、信息等进行划分处理,基于密度的方式会得到离群点不满足需求,因此采用基于划分的k-means算法进行聚类。

物体或者信息等的两两空间距离计算由欧式距离表示,计算公式如下所示。

n表示维度数量,x为样本,d为计算的欧式距离。

k-means算法描述如下:

(1)依照经验确定簇k的值,适当选择k个簇类的初始中心;

(2)在第n次迭代中,对任意一个样本,求其到k个中心的距离,将该样本归到距离最短的中心所在的类;

(3)利用均值等方法更新该类的中心值;

(4)对于所有的k个聚类中心,如果利用(2)(3)的迭代法更新后,逐渐收敛值保持不变,则迭代结束,否则继续迭代。

按照上述k-means算法的描述将经s03、s04处理的降维特征结果用于聚类得到相应的聚类结果,其中k值采用穷举的方法,并设置一定阈值。本发明同样使用某电商的历史点击数据进行相应的实验,得到相应聚类结果。

s06,数据共现的划分数量k值的无人工获取方法。

为获得相对最优的划分k值,对s05得到的聚类结果依次利用簇内误差平方和、簇间误差平方和、ch、sh、s_dbw、sd,对其进行评价,并获得相应的k值,具体获取流程如图5所示。

首先按照基本的评价指标,簇内误差平方和、簇间误差平方和得到两条随k值的指标变化曲线的交点作为分离k值,保证簇间分离程度比簇内分离程度大。再按照不同的非单调的评价指标按照大于分离k值的最佳结果得出划分k值。最后采取投票机制的方式得到相对最优k值,若每种方式获得的k值均不同,则采用s_dbw的结果作为最终划分k值。

s07,通过s05得到的聚类结果,利用簇内误差平方和、簇间误差平方和进行相应的评价,得出分离k值,按照评价结果得到划分k值。

簇内距离的误差平方和,是一种非常常见的聚类评价手段,其主要通过聚类簇内的密度、紧凑程度,判断聚类的好坏,计算簇内距离的误差平方和公式如下:

其中nc为聚类总数p是空间中的点,表示给定对象,mi为簇ci的均值。e所代表的就是所有对象到其所在聚类中心的距离之和,簇内距离越小表示簇越紧凑,聚类效果越好。

簇间误差平方和,和簇内误差平方和一样非常常见的一种聚类评价方式,通常也和簇内误差平方和一起综合衡量聚类效果。簇间误差平法和主要用于衡量簇与簇之间的间隔大小,计算簇间距离的误差平方和公式如下:

其中nc为聚类总数,zi为第i聚类中的样本数目,q表示为所有记录中心点的特征向量,mi表示第i聚类中心点的特征向量,e所代表的就是所有对象到其所在聚类中心的距离之和,簇间距离越大表示簇间分离得越好,聚类效果越好。

利用簇内误差平方和、簇间误差平方和两个评价指标对s05得到聚类结果进行评价。按照该方式对本发明采用的实验数据进行相应的实验,得出相应的实验结果随k值变化两个指标的变化图6。

实验结果显示,由于簇内误差平方和和簇间误差平方和属于严格单调曲线,在进行k值选取时需采用“拐点法”,即曲线斜率发生变化最大的地方,由上图可知两条曲线在k=45附近相交,表示k<45时簇与簇之间距离大于簇内间距离,聚合程度和分离程度不明显。所以应选择k>45作为聚类数量保障聚类效果。因此分离k值为45。

为综合簇内误差平方和和簇间误差平方和两种指标,采用外误差平方和比内误差平方和的比值的指标的“拐点”值作为k值得选择指标,图7为两种指标的比值随k值变化的曲线图。

图7中虚线为簇内误差平方和簇间误差平方和的比值曲线,实线为比值曲线的斜率值变化,由上图和实验数据可知大约在k=70左右的位置后斜率基本不再变化,因此通过利用簇内误差平方和、簇间误差平方和的比值得到的划分k值为70。

s08,通过s05得到的聚类结果,利用ch对聚类进行相应的评价,按照s07中得到的分离结果和评价结果得到划分k值。

calinski-harabaszindex(ch)算法出自t.calinskiandj.harabasz,“adendritemethodforclusteranalysis”,comm.instatistics,vol.3,no.1,pp.1–27,1974,ch的提出目的是利用多维度形容欧式距离,并且从两种角度考察划分结果即,凝聚状态和分离状态,ch的公式如下:

其中,nc表示聚类数量,n表示样本数量,ci表示簇i数据集合,d(x,y)表示x与y的距离。ch其本质是通过衡量簇内的紧凑程度的内误差平方和与衡量簇间分离程度的簇间误差平方和的一种综合性指标,但该指标对噪声和簇内数据分布不均的情况处理不佳,该指标越大表示的聚类效果越好。

利用ch对s05得到聚类结果进行评价,如图8所示s05得到的聚类结果随着k值变化ch的变化曲线。

ch越大表示聚类效果越好,但由于s07中簇内误差平方和与簇外误差平方和的比较k<45聚合程度、分离程度不佳,所以根据数据k=45时ch相对最大,因此通过ch指标得到的划分k值为45。

s09,通过s05得到的聚类结果,利用sh对聚类进行相应的评价,按照评价结果和s07中得到的分离k值,得到划分k值。

silhouetteindex(sh)出自j.dunn,“wellseparatedclustersandoptimalfuzzypartitions,”j.cybern.,vol.4,no.1,pp.95–104,1974.,sh的公式定义如下:

sh主要提出了两种函数即,a函数和b函数,用于成对比较每个簇间距离和簇内距离。其中a(x)函数用于衡量同一簇内的不同数据点之间的距离之和,b(x)函数用于衡量不同簇间内的数据点之间的距离之和。sh其本质是通过衡量簇内的数据点间的距离和与不同簇的数据点间的距离和综合判断聚类效果的好坏,sh指标越大聚类效果越好。

利用sh对s05得到聚类结果进行评价,如图9所示s05得到的聚类结果随着k值变化sh的变化曲线。

sh通过衡量簇内的数据点间的距离和与不同簇的数据点间的距离和综合判断聚类效果的好坏,sh指标越大聚类效果越好。虽然k=45前sh值比较大,但从s07中簇内距离的内误差平方和与簇间距离的外误差平方和可知k=45前时,簇内密度以及簇间分离程度不佳,所以选取k>45的值作为k值选取更优,根据数据可知k=94时相对于其他值sh指标最大,因此通过sh指标的评价得到的划分k值为94。

s10,通过s05得到的聚类结果,利用sd对聚类进行相应的评价,按照评价结果和s07中得到的分离k值,得到划分k值。

sd出自m.halkidi,m.vazirgiannis,andy.batistakis,“qualityschemeassessmentintheclusteringprocess,”inpkdd,london,uk,2000,pp.265–276。其计算公式定义如下:

sd=αscat(nc)+dis(nc)

σ(d)表示数据集d的方差,x表示数据集d的均值。

σ(ci)表示簇i的数据点的方差,ci表示数据集簇i数据的均值。

sd指标主要分为两部分,第一部分表示分布程度scat(x),通过计算簇内的方差判断簇内部的紧凑程度,然后利用这种紧凑程度通过和全局的方差值得到的比值,用来表示所有簇的平均紧凑程度;第二部分通过比较不同簇的中心距离评估簇与簇之间的分离程度和第一部分不同dis函数主要考虑的是集合中心以及簇的数量,参数α通常用dis(ncmax),ncmax即输入的最大聚类数目。sd指标越小表示聚类效果越好,但其参数ncmax通常是人工根据经验选择,不同的值影响指标的变化,这样增加了操作的难度。

sd指标越小表示聚类效果越好,如图10所示,参考s07中得到的分离k值,选取k>45以上的值,所以根据数据显示当k=50时sd值为6.469767是相对最小值,此时得到的划分k值为50。

s11,通过s05得到的聚类结果,利用s_dbw对聚类进行相应的评价,按照评价结果和s06中得到的分离k值,得到划分k值。

s_dbw出自m.halkidiandm.vazirgiannis,“clusteringvalidityassessment:findingtheoptimalpartitioningofadataset,”inicdm,washington,dc,usa,2001,pp.187–194.由m.halkidi和m.vazirgiannis提出的针对sd的一种改造,s_dbw的公式定义如下所示:

s_dbw=scat(nc)+dens_bw(nc)

s_dbw也分为两部分,第一部分为分布程度scat同sd指标一样,第二部分dens_bw主要衡量簇与簇间的关系,其主要思想在于,每一对簇的中心与簇内的距离的密度,两者至少有一个大于每一对簇组成的集合的中心到簇中的点之间的距离密度,其中dens_bw中f函数的公式为:

该函数用于计算,点和中心的距离与stdev的大小,若簇内点与中心的距离比stdev大的话则为0,否则为1,stdev定义为平均的簇内的距离标准差其公式如下所示:

vi表示为簇i的点的集合。s_dbw和sd不同之处在于s_dbw将聚类数量的影响降到最小。s_dbw指标越小,聚类效果越好。

s_dbw指标越小表示聚类效果越好如图11所示,从数据可知当k=94时基于k-means的商品划分的s_dbw指标最优,且大于s07中得到分离k值,因此通过s_dbw得到的划分k值为94。

s12,按照s06的流程和s07、s08、s09、s10、s11的计算结果得出相对最优的划分k值,得到商品划分结果。

为得到相对最优的划分数量k,对s07、s08、s09、s10、s11得出的划分k值,采取投票机制的方式获取选择投票结果最多的k值作为划分k值,若每种方式获得的k值均不同,则采用s_dbw的结果作为最终划分k值。

按照本发明专利的实验结果,选择k=94作为共现商品聚类的聚类数,使用k-means算法进行聚类,得到相对最优的商品的划分结果。

s13,划分更新处理

由于用户交互数据存在不断更新的情况,为保证划分的及时性和实际性,按照上述流程,对结果进行定期的更新处理。

以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。

本发明还提供了一种基于历史行为共现的数据划分系统,其中包括:

数据库构建模块,用于获取多位用户的历史行为,依时间顺序对该历史行为进行排序,得到预处理数据,以构建数据库;

共现特征提取模块、用于根据该数据库中各历史行为出现的次数,提取历史行为对其余各历史行为的共现概率,集合该共现概率作为共现特征;

划分模块,用于获取预设的划分阈值,对该共现特征使用基于划分的k-means方法进行聚类处理,采用穷举法得到该划分阈值内的划分数量,并得到每种该划分数量对应的聚类结果;

筛选模块,用于对每种该划分数量对应的该聚类结果进行评价,通过对评价结果进行筛选,得到最优划分数量,输出该最优划分数量对应的聚类结果作为最终的划分结果。

该基于历史行为共现的数据划分系统,其中该筛选模块还包括:依次利用簇内误差平方和、簇间误差平方和、ch、sh、s_dbw、sd,对该聚类结果进行评价,具体包括:

第一划分值评价模块,获取划分模块中该聚类结果的簇内误差平方和以及簇间误差平方和的对应结果,并分别根据该簇内误差平方和、该簇间误差平方和及其对应的划分数量,绘制簇内误差平方和曲线及簇间误差平方和曲线,将该簇间误差平方和曲线、该簇内误差平方和曲线的交点对应的划分数量作为分离划分值,将该簇内误差平方和、该簇间误差平方和的比值的梯度拐点对应的划分数量,作为第一划分值;

第二划分值评价模块,获取划分模块中该聚类结果的ch值,并取该ch值中划分数量大于该分离划分值的最大ch值对应的划分数量,作为第二划分值;

第三划分值评价模块,获取划分模块中该聚类结果的sh值,并取该sh值中划分数量大于该分离划分值的最大sh值对应的划分数量,作为第三划分值;

第四划分值评价模块,获取划分模块中该聚类结果的sd值,并取该sd值中划分数量大于该分离划分值的最小sd值对应的划分数量,作为第四划分值;

第五划分值评价模块,获取划分模块中该聚类结果的s_dbw值,并取该s_dbw值中划分数量大于该分离划分值的最小s_dbw值对应的划分数量,作为第五划分值;

第投票挑选模块,采取投票机制的方式从该第一划分值、该第二划分值、该第三划分值、该第四划分值、该第五划分值中挑选投票结果最多的值,作为该最优划分数量,若出现投票结果一致的情况时,取该第五划分值作为该最优划分数量。

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