用户分类方法及装置、项目推荐方法及装置与流程

文档序号:28071344发布日期:2021-12-18 00:26阅读:106来源:国知局
用户分类方法及装置、项目推荐方法及装置与流程

1.本技术涉及信息处理领域,具体而言,涉及一种用户分类方法及装置、项目推荐方法及装置、电子设备和计算机存储介质。


背景技术:

2.k均值聚类算法(k

means clustering algorithm,k

means算法)是一种迭代求解的聚类分析算法,其步骤是,选取k个聚类中心,然后计算每个对象与各个聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。
3.然而,现有的k

means算法中,在进行聚类前,需要事先给定聚类中心个数。但在实际中,聚类中心个数的选定是难以估计的。选取不同的聚类中心个数可能会导致完全不同的聚类结果,因此,若选取不合适的聚类中心个数,会影响聚类结果的准确性。


技术实现要素:

4.本技术实施例的目的在于提供一种用户分类方法及装置、项目推荐方法及装置、电子设备和计算机存储介质,用以解决难以确定合适的聚类中心个数的问题。
5.第一方面,本技术提供一种用户分类方法,所述方法包括:获取用户属性数据集及初始聚类中心数量,所述用户属性数据集包括多个数据点,每个所述数据点对应一个用户的至少一维的用户属性;对所述用户属性数据集中的数据点进行聚类,直至收敛,生成与所述初始聚类中心数量对应的多个第一簇;确定各个所述第一簇的簇内评价指标和簇内用户数量,所述簇内评价指标用于表征簇内各数据点到聚类中心的平均距离,所述簇内用户数量与相应的第一簇中的数据点的数量对应;在确定所述簇内评价指标不满足标准簇内评价指标和/或所述簇内用户数量不满足标准簇内用户数量时,根据所述簇内评价指标、所述簇内用户数量、所述标准簇内评价指标和所述标准簇内用户数量对聚类中心的数量进行调整并根据调整后的聚类中心的数量对所述用户属性数据集中的数据点进行再次聚类,直至收敛,生成与所述调整后的聚类中心数量对应的多个第二簇。
6.在本技术实施例中,相较于传统的k

means算法中需要根据经验确定出合适的k值(即聚类中心的数量),本技术实施例提供的用户分类方法先随机确定一个k值,进行聚类,然后根据簇内评价指标和簇内用户数量与预设的标准簇内评价指标和标准簇内用户数量对聚类中心的数量进行调整,再根据调整后的聚类中心数量进行聚类,直至收敛。在簇内评价指标和簇内用户数量不满足预设条件时,对聚类中心的数量进行调整,从而在一定程度上提升最终的聚类结果的准确性。
7.在可选的实施方式中,所述对所述用户属性数据集中的数据点进行聚类,直至收敛,生成与所述初始聚类中心数量对应的多个第一簇,包括:从所述用户属性数据集中随机选取与所述初始聚类中心数量对应的多个数据点作为初始聚类中心;根据预设公式计算所述用户属性数据集中的每个非聚类中心的数据点到各个初始聚类中心的距离;将各个非聚类中心的数据点分到与其距离最近的初始聚类中心对应的簇中;将每个簇的质心作为新的
聚类中心,若新的聚类中心与当前聚类中心不同,则再次根据所述预设公式计算所述用户属性数据集中非聚类中心的数据点到各个新的聚类中心的距离,并将非聚类中心的数据点分到与其距离最近的聚类中心对应的簇中;以此类推,直至聚类后的每个簇的质心与前次的聚类中心相同。
8.在可选的实施方式中,所述确定各个所述第一簇的簇内评价指标,包括:基于公式:计算各个簇的簇内评价指标;其中,je
j
为第j个簇的簇内评价指标,n(c
j
)为第j个簇的簇内用户数量,x
i
为第j个簇中用户的数据点,μ
j
为第j个簇的聚类中心,dist(x
i

j
)表征x
i
和je
j
的海明距离。
9.在可选的实施方式中,所述在确定所述簇内评价指标不满足标准簇内评价指标和/或所述簇内用户数量不满足标准簇内用户数量时,根据所述簇内评价指标、所述簇内用户数量、所述标准簇内评价指标和所述标准簇内用户数量对聚类中心的数量进行调整,包括:针对每个第一簇,判断所述簇内用户数量是否小于所述标准簇内用户数量;若所述簇内用户数量小于所述标准簇内用户数量,删除该第一簇对应的聚类中心;若所述簇内用户数量大于所述标准簇内用户数量,判断所述簇内评价指标是否大于所述标准簇内评价指标;若所述簇内评价指标大于所述标准簇内评价指标,将该第一簇内与聚类中心距离最近的用户的数据点作为新增的聚类中心。
10.在本技术实施例中,将簇内各数据点到聚类中心的平均距离作为簇内评价指标。当簇内用户数量小于标准簇内用户数量,说明该簇中的用户数量较少,于是将该簇对应的聚类中心删除以减少聚类中心的个数;当簇内用户数量大于等于标准簇内用户数量但簇内评价指标大于标准簇内评价指标时,说明该簇中存在距离聚类中心较远的数据点,需要增加聚类中心的数量。通过上述方式对聚类中心的数量进行调整,使得最终的聚类结果更准确。
11.第二方面,本技术提供一种项目推荐方法,所述方法包括:获取用户属性数据集及初始聚类中心数量,所述用户属性数据集包括多个数据点,每个所述数据点对应一个用户的至少一维的用户属性;对所述用户属性数据集中的数据点进行聚类,直至收敛,生成与所述初始聚类中心数量对应的多个第一簇;确定各个所述第一簇的簇内评价指标和簇内用户数量,所述簇内评价指标用于表征簇内各数据点到聚类中心的平均距离,所述簇内用户数量与相应的第一簇中的数据点的数量对应;在确定所述簇内评价指标不满足标准簇内评价指标和/或所述簇内用户数量不满足标准簇内用户数量时,根据所述簇内评价指标、所述簇内用户数量、所述标准簇内评价指标和所述标准簇内用户数量对聚类中心的数量进行调整并根据调整后的聚类中心的数量对所述用户属性数据集中的数据点进行再次聚类,直至收敛,生成与所述调整后的聚类中心数量对应的多个第二簇;获取目标用户所在簇中各个用户对应的用户

评分矩阵;基于所述用户

评分矩阵确定多个项目,其中,每个所述项目均被超过预设数量的处于所述目标用户所在簇中的用户进行评分;计算每个项目的平均评分,并基于所述平均评分向所述目标用户推荐项目。
12.在本技术实施例中,上述推荐方法可以解决协同过滤算法中存在的冷启动问题。目标用户可以为没有对任何项目进行过评分的新用户。由于新用户没有对任何项目进行过评分,无法确定用户的喜好,进而无法进行准确的推荐。本技术实施例先通过前述实施方式
中的用户分类方法确定该目标用户所处的簇,从而确定出与该用户行为或兴趣相似的用户群体,进而根据该用户群体对应用户

评分矩阵确定出被多数用户评过分的项目,计算此类项目的平均评分,基于平均评分向目标用户进行推荐,由此解决了协同过滤算法中的冷启动问题。此外,推荐的准确性也较高。
13.在可选的实施方式中,所述基于所述平均评分向所述目标用户推荐项目,包括:将所述多个项目的平均评分从大到小排序;由大到小选取预设数量的项目作为待推荐项目向所述目标用户推荐。
14.在本技术实施例中,将平均评分高的项目推荐给目标用户,提高推荐的准确性。
15.第三方面,本技术提供一种用户分类装置,所述装置包括:数据获取模块,用于获取用户属性数据集及初始聚类中心数量,所述用户属性数据集包括多个数据点,每个所述数据点对应一个用户的至少一维的用户属性;数据处理模块,用于对所述用户属性数据集中的数据点进行聚类,直至收敛,生成与所述初始聚类中心数量对应的多个第一簇;确定各个所述第一簇的簇内评价指标和簇内用户数量,所述簇内评价指标用于表征簇内各数据点到聚类中心的平均距离,所述簇内用户数量与相应的第一簇中的数据点的数量对应;在确定所述簇内评价指标不满足标准簇内评价指标和/或所述簇内用户数量不满足标准簇内用户数量时,根据所述簇内评价指标、所述簇内用户数量、所述标准簇内评价指标和所述标准簇内用户数量对聚类中心的数量进行调整并根据调整后的聚类中心的数量对所述用户属性数据集中的数据点进行再次聚类,直至收敛,生成与所述调整后的聚类中心数量对应的多个第二簇。
16.在可选的实施方式中,所述数据处理模块用于从所述用户属性数据集中随机选取与所述初始聚类中心数量对应的多个数据点作为初始聚类中心;根据预设公式计算所述用户属性数据集中的每个非聚类中心的数据点到各个初始聚类中心的距离;将各个非聚类中心的数据点分到与其距离最近的初始聚类中心对应的簇中;将每个簇的质心作为新的聚类中心,若新的聚类中心与当前聚类中心不同,则再次根据所述预设公式计算所述用户属性数据集中非聚类中心的数据点到各个新的聚类中心的距离,并将非聚类中心的数据点分到与其距离最近的聚类中心对应的簇中;以此类推,直至聚类后的每个簇的质心与前次的聚类中心相同。
17.在可选的实施方式中,所述数据处理模块用于基于公式:计算各个簇的簇内评价指标;
18.其中,je
j
为第j个簇的簇内评价指标,n(c
j
)为第j个簇的簇内用户数量,x
i
为第j个簇中用户的数据点,μ
j
为第j个簇的聚类中心,dist(x
i

j
)表征x
i
和μ
j
的海明距离。
19.在可选的实施方式中,所述数据处理模块用于针对每个第一簇,判断所述簇内用户数量是否小于所述标准簇内用户数量;若所述簇内用户数量小于所述标准簇内用户数量,删除该第一簇对应的聚类中心;若所述簇内用户数量大于所述标准簇内用户数量,判断所述簇内评价指标是否大于所述标准簇内评价指标;若所述簇内评价指标大于所述标准簇内评价指标,将该第一簇内与聚类中心距离最近的用户的数据点作为新增的聚类中心。
20.第四方面,本技术提供一种项目推荐装置,所述装置包括:数据获取模块,用于获取用户属性数据集及初始聚类中心数量,所述用户属性数据集包括多个数据点,每个所述
数据点对应一个用户的至少一维的用户属性;数据处理模块,用于对所述用户属性数据集中的数据点进行聚类,直至收敛,生成与所述初始聚类中心数量对应的多个第一簇;确定各个所述第一簇的簇内评价指标和簇内用户数量,所述簇内评价指标用于表征簇内各数据点到聚类中心的平均距离,所述簇内用户数量与相应的第一簇中的数据点的数量对应;在确定所述簇内评价指标不满足标准簇内评价指标和/或所述簇内用户数量不满足标准簇内用户数量时,根据所述簇内评价指标、所述簇内用户数量、所述标准簇内评价指标和所述标准簇内用户数量对聚类中心的数量进行调整并根据调整后的聚类中心的数量对所述用户属性数据集中的数据点进行再次聚类,直至收敛,生成与所述调整后的聚类中心数量对应的多个第二簇;推荐模块,用于获取目标用户所在簇中各个用户对应的用户

评分矩阵;基于所述用户

评分矩阵确定多个项目,其中,每个所述项目均被超过预设数量的处于所述目标用户所在簇中的用户进行评分;计算每个项目的平均评分,并基于所述平均评分向所述目标用户推荐项目。
21.在可选的实施方式中,所述推荐模块还用于将所述多个项目的平均评分从大到小排序;由大到小选取预设数量的项目作为待推荐项目向所述目标用户推荐。
22.第五方面,本技术提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如前述实施方式任一项所述的方法。
23.第六方面,本技术提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如前述实施方式中任一项所述的方法。
附图说明
24.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
25.图1为本技术实施例提供的一种用户分类方法的流程图;
26.图2为本技术实施例提供的一种项目推荐方法的流程图;
27.图3为本技术实施例提供的一种用户分类装置的结构框图;
28.图4为本技术实施例提供的一种项目推荐装置的结构框图;
29.图5为本技术实施例的电子设备的结构示意图。
30.图标:300

用户分类装置;301、401

数据获取模块;302、402

数据处理模块;400

项目推荐装置;403

推荐模块;500

电子设备;501

处理器;502

通信接口;503

存储器;504

总线。
具体实施方式
31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
32.请参阅图1,图1为本技术实施例提供的一种用户分类方法的流程图,该用户分类方法可以包括如下步骤:
33.步骤101:获取用户属性数据集及初始聚类中心数量。
34.步骤102:对用户属性数据集中的数据点进行聚类,直至收敛,生成与初始聚类中心数量对应的多个第一簇。
35.步骤103:确定各个第一簇的簇内评价指标和簇内用户数量。
36.步骤104:在确定簇内评价指标不满足标准簇内评价指标和/或簇内用户数量不满足标准簇内用户数量时,根据簇内评价指标、簇内用户数量、标准簇内评价指标和标准簇内用户数量对聚类中心的数量进行调整并根据调整后的聚类中心的数量对用户属性数据集中的数据点进行再次聚类,直至收敛,生成与调整后的聚类中心数量对应的多个第二簇。
37.下面将结合示例对上述流程进行详细说明。
38.步骤101:获取用户属性数据集及初始聚类中心数量。
39.本技术实施例中,首先获取用户属性数据。获取用户属性数据的方式有多种,例如:当需要对使用某一app的用户进行分类时,可以获取用户在注册账号时填写的自身属性数据作为用户属性数据;或是从预先存储的用户属性数据库中,获取对应用户的属性数据。
40.用户属性数据可以包括:用户id、年龄、性别、职业、所在城市等。
41.获取用户属性数据后,对用户属性数据进行预处理,将不连续的数字或是文本进行数字化处理。举例来说,对于年龄数据,“0

18”岁编码为“1”,“19

40”岁编码为“2”,“41

65”岁编码为“3”,“66岁及以上”编码为“4”;对于性别数据,将“男”编码为“1”,“女”编码为“2”。可以理解,上述编码方式仅为本技术实施例提供的一种具体实例,本技术不以此为限。
42.在对用户属性数据进行预处理时,还可以采用例如:独热编码、标签编码等方式。
43.对用户属性数据进行预处理后,形成用户属性数据集。用户属性数据集包括多个数据点,每个数据点对应一个用户的至少一维的用户属性。
44.初始聚类中心数量可以随机选取。本技术实施例对初始聚类中心数量的确定方法不做限定。
45.步骤102:对用户属性数据集中的数据点进行聚类,直至收敛,生成与初始聚类中心数量对应的多个第一簇。
46.作为一种可选的实施方式,步骤102可以包括如下步骤:
47.第一步,从用户属性数据集中随机选取与初始聚类中心数量对应的多个数据点作为初始聚类中心。
48.第二步,根据预设公式计算用户属性数据集中的每个非聚类中心的数据点到各个初始聚类中心的距离。
49.本技术实施例中,预设公式为:
[0050][0051][0052]
其中,x
k
表示用户属性数据集中非聚类中心对应的用户的数据点,k为大于0的自然数,x1x2x3…
x
k
对应用户属性数据集中非聚类中心对应的用户的数据点。表示x
k
对应的用户属性数据,e表示用户属性数据,m为用户属性数据对应的集合。举例来说,当用户属性
数据包括:年龄、性别和职业时,m则表示年龄、性别和职业,表示x
k
对应的年龄数据,表示x
k
对应的性别数据,表示x
k
对应的职业数据。
[0053]
μ
j
表示用户属性数据集中聚类中心对应的用户的数据点,j为大于0的自然数,u1u2u3…
u
j
对应用户属性数据集中聚类中心对应的用户的数据点。表示μ
j
对应的用户属性数据。
[0054]
表示x
k
和μ
j
的海明距离。
[0055]
第三步,将各个非聚类中心的数据点分到与其距离最近的初始聚类中心对应的簇中。
[0056]
在确定每个非聚类中心的数据点与每个初始聚类中心的距离后,将各个非聚类中心的数据点分到与其距离最近的初始聚类中心对应的簇中。
[0057]
第四步,将每个簇的质心作为新的聚类中心,若新的聚类中心与当前聚类中心不同,则再次根据预设公式计算用户属性数据集中非聚类中心的数据点到各个新的聚类中心的距离,并将非聚类中心的数据点分到与其距离最近的聚类中心对应的簇中;以此类推,直至聚类后的每个簇的质心与前次的聚类中心相同。
[0058]
在将所有非聚类中心的数据点分到与其距离最近的初始聚类中心对应的簇后,将每个簇的质心作为新的聚类中心。判断新的聚类中心与当前聚类中心(即第三步确定的聚类中心)是否相同。若不相同,则再次根据预设公式计算用户属性数据集中非聚类中心的数据点到各个新的聚类中心的距离,并将非聚类中心的数据点分到与其距离最近的聚类中心对应的簇中。如此循环,直至聚类后的每个簇的质心与前次的聚类中心相同,则表示聚类收敛,此时各个聚类中心对应的簇即为步骤102中的多个第一簇。
[0059]
步骤103:确定各个第一簇的簇内评价指标和簇内用户数量。
[0060]
本技术实施例中,簇内评价指标用于表征簇内各数据点到聚类中心的平均距离,簇内用户数量与相应的第一簇中的数据点的数量对应。
[0061]
可以理解,簇内用户数量通过统计每个簇中数据点的个数即可确定。
[0062]
簇内评价指标可以基于以下公式计算得到:
[0063][0064]
其中,je
j
为第j个簇的簇内评价指标,n(c
j
)为第j个簇的簇内用户数量,x
i
为第j个簇中用户的数据点,μ
j
为第j个簇的聚类中心,dist(x
i

j
)表征x
i
和μ
j
的海明距离。
[0065]
步骤104:在确定簇内评价指标不满足标准簇内评价指标和/或簇内用户数量不满足标准簇内用户数量时,根据簇内评价指标、簇内用户数量、标准簇内评价指标和标准簇内用户数量对聚类中心的数量进行调整并根据调整后的聚类中心的数量对用户属性数据集中的数据点进行再次聚类,直至收敛,生成与调整后的聚类中心数量对应的多个第二簇。
[0066]
本技术实施例中,在确定各个簇的簇内评价指标和簇内用户数量后,将各个簇的簇内评价指标和簇内用户数量与预设的标准簇内评价指标和标准簇内用户数量进行比较,根据比较结果对聚类中心的数量进行调整。
[0067]
具体地,步骤104中,在确定簇内评价指标不满足标准簇内评价指标和/或簇内用
户数量不满足标准簇内用户数量时,根据簇内评价指标、簇内用户数量、标准簇内评价指标和标准簇内用户数量对聚类中心的数量进行调整,可以包括如下步骤:
[0068]
第一步,针对每个第一簇,判断簇内用户数量是否小于标准簇内用户数量。
[0069]
第二步,若簇内用户数量小于标准簇内用户数量,删除该第一簇对应的聚类中心。
[0070]
第三步,若簇内用户数量大于标准簇内用户数量,判断簇内评价指标是否大于标准簇内评价指标。
[0071]
第四步,若簇内评价指标大于标准簇内评价指标,将该第一簇内与聚类中心距离最近的用户的数据点作为新增的聚类中心。
[0072]
上述比较规则可以表示为:
[0073]
当n(c
j
)<n时,删除该第一簇对应的聚类中心;
[0074]
当n(c
j
)>n,je
j
>je时,将该第一簇内与聚类中心距离最近的用户的数据点作为新增的聚类中心;
[0075]
当n(c
j
)>n,je
j
<je时,保持现在的聚类中心数量不变。
[0076]
其中,n为标准簇内用户数量,je为标准簇内评价指标。
[0077]
在对聚类中心的数量进行调整后,根据调整后的聚类中心的数量对用户属性数据集中的数据点进行再次聚类,直至收敛,生成与调整后的聚类中心数量对应的多个第二簇。可以理解,根据聚类中心的数量对用户属性数据集中的数据点进行聚类的方式与上述步骤102的方式相同,为使说明书简洁,在此不做赘述。
[0078]
本技术实施例中,相较于传统的k

means算法中需要根据经验确定出合适的k值(即聚类中心的数量),本技术实施例提供的用户分类方法先随机确定一个k值,进行聚类,然后根据簇内评价指标和簇内用户数量与预设的标准簇内评价指标和标准簇内用户数量对聚类中心的数量进行调整,再根据调整后的聚类中心数量进行聚类,直至收敛。在簇内评价指标和簇内用户数量不满足预设条件时,对聚类中心的数量进行调整,从而在一定程度上提升最终的聚类结果的准确性。
[0079]
作为一种可选的实施方式,本技术提供的用户分类方法还可以包括:针对多个第二簇,确定各个第二簇的簇内评价指标和簇内用户数量。然后根据上述比较规则判断是否需要对聚类中心数量进行调整,若需要调整,则根据上述规则对聚类中心数量进行调整。如此循环,直至聚类后的各个簇均满足n(c
j
)>n,je
j
>je时,输出各个簇的聚类结果,完成对用户的分类。
[0080]
通过不断循环调整聚类中心的数量,直至聚类后各个簇均满足预设的标准簇内评价指标和标准簇内用户数量后,完成聚类,从而提高聚类结果的准确性。
[0081]
基于同一发明构思,本技术还提出一种项目推荐方法。该项目推荐方法包括前述实施例所介绍的用户分类方法的步骤。请参阅图2,图2为本技术实施例提供的一种项目推荐方法在通过前述实施例所介绍的用户分类方法完成用户分类之后的流程图,具体地,该项目推荐方法在通过前述实施例所介绍的用户分类方法完成用户分类之后还可以包括如下步骤:
[0082]
步骤201:获取目标用户所在簇中各个用户对应的用户

评分矩阵。
[0083]
步骤202:基于用户

评分矩阵确定多个项目,其中,每个项目均被超过预设数量的处于目标用户所在簇中的用户进行评分。
[0084]
步骤203:计算每个项目的平均评分,并基于平均评分向目标用户推荐项目。
[0085]
需要说明的是,上述步骤201

203是在前述步骤104之后执行的。
[0086]
下面将结合示例对上述流程进行详细说明。
[0087]
步骤201:获取目标用户所在簇中各个用户对应的用户

评分矩阵。
[0088]
本技术实施例中,根据前述步骤101

104后,可以确定出目标用户所在的簇。与目标用户在同一个簇的用户可以认为是与目标用户行为或是兴趣相似的用户群体。
[0089]
获取目标用户所在簇中各个用户对应的用户

评分矩阵。该用户

评分矩阵可以为:
[0090][0091]
其中,c
wn
表示用户w对项目n的实际评分。若用户未对某个项目评分,则用0表示。
[0092]
步骤202:基于用户

评分矩阵确定多个项目,其中,每个项目均被超过预设数量的处于目标用户所在簇中的用户进行评分。
[0093]
确定用户

评分矩阵后,考虑到用户并没有对所有项目进行评分,为了提高推荐的准确性,选出被超过预设数量的用户进行评分的项目。举例来说,预设数量可以为20,则选出被超过20个用户评分的项目。
[0094]
步骤203:计算每个项目的平均评分,并基于平均评分向目标用户推荐项目。
[0095]
计算选出的每个项目的平均评分,然后基于平均评分向目标用户推荐项目。
[0096]
作为一种可选的实施方式,将计算的出的每个项目的平均评分从大到小排序,然后由大到小选取预设数量的项目作为待推荐项目向目标用户推荐。预设数量可以根据实际情况确定,例如20、30,本技术对此不做限定。
[0097]
作为另一种可选的实施方式,判断计算出的项目的平均评分是否大于预设阈值,将平均评分大于预设阈值的项目作为待推荐项目向目标用户推荐。
[0098]
本技术实施例中,上述推荐方法可以解决协同过滤算法中存在的冷启动问题。目标用户可以为没有对任何项目进行过评分的新用户。由于新用户没有对任何项目进行过评分,无法确定用户的喜好,进而无法进行准确的推荐。本技术实施例先通过前述实施方式中的用户分类方法确定该目标用户所处的簇,从而确定出与该用户行为或兴趣相似的用户群体,进而根据该用户群体对应用户

评分矩阵确定出被多数用户评过分的项目,计算此类项目的平均评分,基于平均评分向目标用户进行推荐,由此解决了协同过滤算法中的冷启动问题。此外,推荐的准确性也较高。
[0099]
基于同一发明构思,本技术实施例中还提供一种用户分类装置。请参阅图3,图3为本技术实施例提供的一种用户分类装置的结构框图,该用户分类装置300可以包括:
[0100]
数据获取模块301,用于获取用户属性数据集及初始聚类中心数量,所述用户属性数据集包括多个数据点,每个所述数据点对应一个用户的至少一维的用户属性;
[0101]
数据处理模块302,用于对所述用户属性数据集中的数据点进行聚类,直至收敛,生成与所述初始聚类中心数量对应的多个第一簇;确定各个所述第一簇的簇内评价指标和簇内用户数量,所述簇内评价指标用于表征簇内各数据点到聚类中心的平均距离,所述簇
内用户数量与相应的第一簇中的数据点的数量对应;在确定所述簇内评价指标不满足标准簇内评价指标和/或所述簇内用户数量不满足标准簇内用户数量时,根据所述簇内评价指标、所述簇内用户数量、所述标准簇内评价指标和所述标准簇内用户数量对聚类中心的数量进行调整并根据调整后的聚类中心的数量对所述用户属性数据集中的数据点进行再次聚类,直至收敛,生成与所述调整后的聚类中心数量对应的多个第二簇。
[0102]
在可选的实施方式中,所述数据处理模块302用于从所述用户属性数据集中随机选取与所述初始聚类中心数量对应的多个数据点作为初始聚类中心;根据预设公式计算所述用户属性数据集中的每个非聚类中心的数据点到各个初始聚类中心的距离;将各个非聚类中心的数据点分到与其距离最近的初始聚类中心对应的簇中;将每个簇的质心作为新的聚类中心,若新的聚类中心与当前聚类中心不同,则再次根据所述预设公式计算所述用户属性数据集中非聚类中心的数据点到各个新的聚类中心的距离,并将非聚类中心的数据点分到与其距离最近的聚类中心对应的簇中;以此类推,直至聚类后的每个簇的质心与前次的聚类中心相同。
[0103]
在可选的实施方式中,所述数据处理模块302用于基于公式:计算各个簇的簇内评价指标;
[0104]
其中,je
j
为第j个簇的簇内评价指标,n(c
j
)为第j个簇的簇内用户数量,x
i
为第j个簇中用户的数据点,μ
j
为第j个簇的聚类中心,dist(x
i

j
)表征x
i
和μ
j
的海明距离。
[0105]
在可选的实施方式中,所述数据处理模块302用于针对每个第一簇,判断所述簇内用户数量是否小于所述标准簇内用户数量;若所述簇内用户数量小于所述标准簇内用户数量,删除该第一簇对应的聚类中心;若所述簇内用户数量大于所述标准簇内用户数量,判断所述簇内评价指标是否大于所述标准簇内评价指标;若所述簇内评价指标大于所述标准簇内评价指标,将该第一簇内与聚类中心距离最近的用户的数据点作为新增的聚类中心。
[0106]
此外,本技术实施例还提供一种项目推荐装置。请参阅图4,图4为本技术实施例提供的一种项目推荐装置的结构框图,该项目推荐装置400可以包括:
[0107]
数据获取模块401,用于获取用户属性数据集及初始聚类中心数量,所述用户属性数据集包括多个数据点,每个所述数据点对应一个用户的至少一维的用户属性;
[0108]
数据处理模块402,用于对所述用户属性数据集中的数据点进行聚类,直至收敛,生成与所述初始聚类中心数量对应的多个第一簇;确定各个所述第一簇的簇内评价指标和簇内用户数量,所述簇内评价指标用于表征簇内各数据点到聚类中心的平均距离,所述簇内用户数量与相应的第一簇中的数据点的数量对应;在确定所述簇内评价指标不满足标准簇内评价指标和/或所述簇内用户数量不满足标准簇内用户数量时,根据所述簇内评价指标、所述簇内用户数量、所述标准簇内评价指标和所述标准簇内用户数量对聚类中心的数量进行调整并根据调整后的聚类中心的数量对所述用户属性数据集中的数据点进行再次聚类,直至收敛,生成与所述调整后的聚类中心数量对应的多个第二簇;
[0109]
推荐模块403,用于获取目标用户所在簇中各个用户对应的用户

评分矩阵;基于所述用户

评分矩阵确定多个项目,其中,每个所述项目均被超过预设数量的处于所述目标用户所在簇中的用户进行评分;计算每个项目的平均评分,并基于所述平均评分向所述目标用户推荐项目。
[0110]
在可选的实施方式中,所述推荐模块403还用于将所述多个项目的平均评分从大到小排序;由大到小选取预设数量的项目作为待推荐项目向所述目标用户推荐。
[0111]
请参阅图5,图5为本技术实施例的电子设备500的结构示意图,该电子设备500包括:至少一个处理器501,至少一个通信接口502,至少一个存储器503和至少一个总线504。其中,总线504用于实现这些组件直接的连接通信,通信接口502用于与其他节点设备进行信令或数据的通信,存储器503存储有处理器501可执行的机器可读指令。当电子设备500运行时,处理器501与存储器503之间通过总线504通信,机器可读指令被处理器501调用时执行如上述用户分类方法或项目推荐方法。
[0112]
处理器501可以是一种集成电路芯片,具有信号处理能力。上述处理器501可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本技术实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0113]
存储器503可以包括但不限于随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read

only memory,prom),可擦除只读存储器(erasable programmable read

only memory,eprom),电可擦除只读存储器(electric erasable programmable read

only memory,eeprom)等。
[0114]
可以理解,图5所示的结构仅为示意,电子设备500还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。于本技术实施例中,电子设备500可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备500也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
[0115]
此外,本技术实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述实施例中用户分类方法或项目推荐方法的步骤。
[0116]
在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0117]
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0118]
再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0119]
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0120]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0121]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1