CN109299313A - 一种基于FP-growth的歌曲推荐方法 - Google Patents
一种基于FP-growth的歌曲推荐方法 Download PDFInfo
- Publication number
- CN109299313A CN109299313A CN201810877202.2A CN201810877202A CN109299313A CN 109299313 A CN109299313 A CN 109299313A CN 201810877202 A CN201810877202 A CN 201810877202A CN 109299313 A CN109299313 A CN 109299313A
- Authority
- CN
- China
- Prior art keywords
- song
- support
- affairs
- frequent
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000002708 enhancing effect Effects 0.000 abstract description 3
- 238000007418 data mining Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000012098 association analyses Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于FP‑growth的歌曲推荐方法,属于数据挖掘推荐技术领域。先建立一个用户在听歌软件上的歌曲列表数据库,用户账号作为标识符TID,对应的歌曲列表作为一个事务T,所有事务的集合为事务集D;对D进行第一次扫描,计算并保留频繁项歌曲;然后,对D进行第二次扫描,构建频繁模式树FP‑tree,并提取出频繁项集;其次,由各频繁项集产生相应的强关联规则,并计算出各强关联规则的置信度大小;最后,通过各强关联规则的置信度大小,将这些频繁项集进行推荐排序。本发明与现有技术相比,主要提供了FP‑growth算法对用户所喜欢音乐类型的相似歌曲起到推荐作用,提高用户匹配到喜欢歌曲的效率,同时也增强了听歌软件为用户带来的听歌舒适性。
Description
技术领域
本发明涉及一种基于FP-growth的歌曲推荐方法,属于数据挖掘推荐技术领域。
背景技术
在现代,音乐的种类多种多样,音乐的数量也非常庞大,胜有一种百花齐放、百家争鸣之景。然而,就是由于现代音乐的迅猛发展,使得人们即便在喜好音乐类型中也很难找到自己钟意的歌曲。
FP-growth算法是韩家炜等人在2000年提出的关联分析算法,它采取如下分治策略:将提供频繁项集的数据库压缩到一棵频繁模式树(FP-tree),但仍保留项集关联信息。在算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的数据结构。FP-tree是一种特殊的前缀树,由频繁项头表和项前缀树构成。FP-growth算法基于以上的结构加快整个挖掘过程。而且算法已经被广泛的应用到商业、网络安全等各个领域,但还没有应用到音乐领域。
发明内容
本发明要解决的技术问题是提供一种基于FP-growth的歌曲推荐方法,将FP-growth算法应用到听歌软件中根据用户的歌单来推荐给用户可能喜好的歌曲曲目,提高用户匹配到喜欢歌曲的效率,同时也增强了听歌软件为用户带来的听歌舒适性。
本发明的技术方案是:一种基于FP-growth的歌曲推荐方法,包括如下步骤:
Step1、建立一个用户在听歌软件上的歌曲列表数据库,用户账号作为标识符TID,对应的歌曲列表作为一个事务T,所有事务的集合为事务集D;
Step2、对D进行第一次扫描,计算每一个事务T中各项歌曲的支持度计数support_count_x,设置一个最小支持度阈值min_sup,support_count_x≥min_sup的歌曲作为频繁项保留,反之剔除,然后将频繁项按照支持度计数降序排列;
Step3、对事务集D进行第二次扫描,每读入一个事务T时,创建标记为其歌曲的节点,然后形成根节点null到歌曲节点的路径,直到每个事务都映射到FP-tree的一条路径,读入所有事务后形成FP-tree;
Step4、从FP-tree的每条路径的结尾节点依次向上提取出相应的项集,项集的支持度计数support_count_xj大于等于min_sup时,该项集作为频繁项集l保留,反之剔除;
Step5、设置一个最小置信度阈值min_conf;每个频繁项集l所产生的每个非空子集为s,若子集(l-s)与s的支持度计数之比大于等于最小置信度阈值min_conf,则输出强关联规则该强规则的置信度大小为l与s的支持度计数之比的值
Step6、将所计算出来的所有强关联规则按照其置信度confidence的大小进行排序,当输入一个歌曲时,通过关联规则得出与该歌曲相关联的其他歌曲。
具体地,所述步骤Step1中,歌曲列表数据库中每条信息包含用户账号字段及列表中的歌曲字段,用户账号作为标识符TID,对应歌曲列表作为一个事务T,所有事务的集合为D,每一首歌曲作为一个项。
具体地,所述步骤Step2中,最小支持度阈值min_sup的大小由用户根据自己的需求自行设置。
具体地,所述步骤Step3中,路径由根节点null和对应的所有歌曲节点组成,其中歌曲节点的路径顺序为Step2中的频繁项支持度计数降序排序。
具体地,所述步骤Step5的关联规则置信度大小的计算公式如公式(1)所示:
其中:
式(1)和(2)中,min_conf为最小置信度阈值;l为频繁项集,l所产生的每个非空子集为s;support_count(l)、support_count(s)、support_count(l-s)分别为括号内字母的支持度计数,为强关联规则。
本发明的有益效果是:提供了FP-growth算法对用户所喜欢音乐类型的相似歌曲起到推荐作用,提高用户匹配到喜欢歌曲的效率,同时也增强了听歌软件为用户带来的听歌舒适性。
附图说明
图1是本发明总体流程图;
图2是本发明步骤Step2流程图;
图3是本发明步骤Step3流程图;
图4是本发明具体实施方式中所举例子中Step3的流程图。
具体实施方式
下面结合附图和具体实施方式,对本发明作进一步说明。
实施例1:如图1-4所示,一种基于FP-growth的歌曲推荐方法,建立一个用户在听歌软件上的歌曲列表数据库(包含用户账号和用户的歌曲表单),用户账号作为标识符TID,对应的歌曲列表作为一个事务T,所有事务的集合为事务集D;对D进行第一次扫描,计算并保留频繁项歌曲;然后,对D进行第二次扫描,构建频繁模式树FP-tree,并提取出频繁项集;其次,由各频繁项集产生相应的强关联规则,并计算出各强关联规则的置信度大小;最后,通过各强关联规则的置信度大小,将这些频繁项集进行推荐排序。
具体步骤为:
Step1、建立一个用户在听歌软件上的歌曲列表数据库,用户账号作为标识符TID,对应的歌曲列表作为一个事务T,所有事务的集合为事务集D;
Step2、对D进行第一次扫描,计算每一个事务T中各项歌曲的支持度计数support_count_x,设置一个最小支持度阈值min_sup,support_count_x≥min_sup的歌曲作为频繁项保留,反之剔除,然后将频繁项按照支持度计数降序排列;
Step3、对事务集D进行第二次扫描,每读入一个事务T时,创建标记为其歌曲的节点,然后形成根节点null到歌曲节点的路径,直到每个事务都映射到FP-tree的一条路径,读入所有事务后形成FP-tree;
Step4、从FP-tree的每条路径的结尾节点依次向上提取出相应的项集,项集的支持度计数support_count_xj大于等于min_sup时,该项集作为频繁项集l保留,反之剔除;
Step5、设置一个最小置信度阈值min_conf;每个频繁项集l所产生的每个非空子集为s,若子集(l-s)与s的支持度计数之比大于等于最小置信度阈值min_conf,则输出强关联规则该强规则的置信度大小为l与s的支持度计数之比的值
Step6、将所计算出来的所有强关联规则按照其置信度confidence的大小进行排序,当输入一个歌曲时,通过关联规则得出与该歌曲相关联的其他歌曲。
进一步地,所述步骤Step1中,歌曲列表数据库中每条信息包含用户账号字段及列表中的歌曲字段,用户账号作为标识符TID,对应歌曲列表作为一个事务T,所有事务的集合为D,每一首歌曲作为一个项。
进一步地,所述步骤Step2中,最小支持度阈值min_sup的大小由用户根据自己的需求自行设置。
进一步地,所述步骤Step3中,路径由根节点null和对应的所有歌曲节点组成,其中歌曲节点的路径顺序为Step2中的频繁项支持度计数降序排序。
进一步地,所述步骤Step5的关联规则置信度大小的计算公式如公式(1)所示:
其中:
式(1)和(2)中,min_conf为最小置信度阈值;l为频繁项集,l所产生的每个非空子集为s;support_count(l)、support_count(s)、support_count(l-s)分别为括号内字母的支持度计数,为强关联规则。
所述步骤Step6的推荐方式中,假设给出以下几个关联规则及其置信度(Ii表示为第i个歌曲编号,置信度阈值设置为50%):
当用户正在听歌曲I1时,算法则按前后顺序依次推荐出歌曲I5、歌单{I2,I3}的试听选项;当用户听了{I1,I2}这两首歌时,算法则按前后顺序依次推荐出歌单{I4,I3}、歌曲I5的试听选项。
举例说明:下面结合举例的例子,详细说明本发明的方案:
一种基于FP-growth的歌曲推荐方法,所述方法的具体步骤如下:
Step1、建立一个用户在听歌软件上的歌曲列表数据库,用户账号作为标识符TID,对应的歌曲列表作为一个事务T,所有事务的集合为事务集D;具体地:
为方便阐述本发明,假设歌曲编号规则如下:
假设所建数据库中有如下五位用户的歌曲列表数据:
Step2、对D进行第一次扫描,计算每一个事务T中各项歌曲的支持度计数support_count_x,设置一个最小支持度阈值min_sup,support_count_x≥min_sup的歌曲作为频繁项保留,反之剔除,然后将频繁项按照支持度计数降序排列;具体地:
设置本案例中的最小支持度阈值为3,则得到的结果为:
Step3、对事务集D进行第二次扫描,每读入一个事务T时,创建标记为其歌曲的节点,然后形成根节点null到歌曲节点的路径,直到每个事务都映射到FP-tree的一条路径,读入所有事务后形成FP-tree;具体地:
因本案例中共有五位用户的歌曲列表数据即五个事务T,所以将产生五条路径分支,如图4所示。
首先,读入第一个事务T,得到第一条路径分支<(f:1),(m:1),(c:1),(a:1),(p:1)>,如图4中的(a);其次,读入第二个事务T,得到第二条路径分支<(f:1),(m:1),(c:1),(a:1),(b:1)>,其中路径前四项与上一步相同,则在这四个节点的数目上加1,然后将(b:1)作为一个分支加在(a:2)节点后,成为它的子节点,如图4中的(b);依次循环类推,直至读入所有事务T,构建出完整的FP-tree;
Step4、从FP-tree的每条路径的结尾节点依次向上提取出相应的项集。项集的支持度计数support_count_xj大于等于min_sup时,该项集作为频繁项集l保留,反之剔除;具体地:
首先,从FP-tree的结尾节点p开始提取相应的项集,它的两个节点存在路径<(f:4),(m:4),(c:3),(a:3),(p:2)>和<(c:1),(b:1),(p:1)>。其中,路径<f,m,c,a,p>出现了2次,<c,b,p>出现了1次。但是由于最小支持度阈值是3,所以从FP-tree上只能提取出一个直接频繁集{(p:3)}(该符号表示项集中包含p,其支持度计数为3)。结尾节点b类似,只能提取出一个直接频繁集{(b:3)}。
然后,从FP-tree的倒数第二个节点a开始提取相应的项集,它的节点存在路径<(f:4),(m:4),(c:3),(a:3)>中。那么路径<f,m,c,a>出现了3次,所以从FP-tree上提取的频繁项集有:{(fmca:3)}、{(fma:3)}、{(fca:3)}、{(fa:3)}、{(a:3)}。
依次循环类推,节点c相应的频繁项集有:{(fmc:3)}、{(fc:3)}、{(mc:3)}、{(c:3)}。节点m相应的频繁项集有:{(fm:4)}、{(m:4)}。节点f相应的频繁项集有:{(f:4)}。将所有的频繁项集及其支持度计数统计到下表中。
Step5、设置一个最小置信度阈值min_conf;每个频繁项集l所产生的每个非空子集为s,若子集(l-s)与s的支持度计数之比大于等于最小置信度阈值min_conf,则输出强关联规则该强规则的置信度大小为l与s的支持度计数之比的值具体地:
设置最小置信度阈值min_conf=80%。为简要阐述该步骤,此处仅讨论Step4中f项作为前项的频繁项集,计算后所有关联规则及其置信度大小如下表所示。
则强关联规则仅有:
Step6、将所计算出来的所有强关联规则按照其置信度confidence的大小进行排序,当输入一个歌曲时,通过关联规则得出与该歌曲相关联的其他歌曲。具体地:
将Step5所得强关联规则按其置信度大小排序,即用户在听歌曲f(去大理)时,算法则按推荐选项m(爱的就是你)作为用户可能喜欢歌曲的参考选项供用户选择性收听。
以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (3)
1.一种基于FP-growth的歌曲推荐方法,其特征在于:
Step1、建立用户歌曲列表数据库,用户账号作为标识符TID,对应的歌曲列表作为一个事务T,所有事务的集合为事务集D;
Step2、对D进行第一次扫描,计算每一个事务T中各项歌曲的支持度计数support_count_x,设置一个最小支持度阈值min_sup,support_count_x≥min_sup的歌曲作为频繁项保留,反之剔除,然后将频繁项按照支持度计数降序排列;
Step3、对事务集D进行第二次扫描,每读入一个事务T时,创建标记为其歌曲的节点,然后形成根节点null到歌曲节点的路径,直到每个事务都映射到FP-tree的一条路径,读入所有事务后形成FP-tree;
Step4、从FP-tree的每条路径的结尾节点依次向上提取出相应的项集,项集的支持度计数support_count_xj大于等于min_sup时,该项集作为频繁项集l保留,反之剔除;
Step5、设置一个最小置信度阈值min_conf;每个频繁项集l所产生的每个非空子集为s,若子集(l-s)与s的支持度计数之比大于等于最小置信度阈值min_conf,则输出强关联规则该强规则的置信度大小为l与s的支持度计数之比的值
Step6、将所计算出来的所有强关联规则按照其置信度confidence的大小进行排序,当输入一个歌曲时,通过关联规则得出与该歌曲相关联的其他歌曲。
2.根据权利要求1所述的基于FP-growth的歌曲推荐方法,其特征在于:所述步骤Step3中,路径由根节点null和对应的所有歌曲节点组成,其中歌曲节点的路径顺序为Step2中的频繁项支持度计数降序排序。
3.根据权利要求1所述的基于FP-growth的歌曲推荐方法,其特征在于:所述步骤Step5的关联规则置信度大小的计算公式如公式(1)所示:
其中:
式中,min_conf为最小置信度阈值;l为频繁项集,l所产生的每个非空子集为s;support_count(l)、support_count(s)、support_count(l-s)分别为括号内字母的支持度计数,为强关联规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810877202.2A CN109299313A (zh) | 2018-08-03 | 2018-08-03 | 一种基于FP-growth的歌曲推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810877202.2A CN109299313A (zh) | 2018-08-03 | 2018-08-03 | 一种基于FP-growth的歌曲推荐方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109299313A true CN109299313A (zh) | 2019-02-01 |
Family
ID=65172446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810877202.2A Pending CN109299313A (zh) | 2018-08-03 | 2018-08-03 | 一种基于FP-growth的歌曲推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109299313A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837504A (zh) * | 2019-11-04 | 2020-02-25 | 中国南方电网有限责任公司超高压输电公司昆明局 | 一种工控系统异常系统事件识别方法 |
CN110852863A (zh) * | 2019-11-15 | 2020-02-28 | 安徽海汇金融投资集团有限公司 | 一种基于关联分析的应收账款流转推荐方法及系统 |
CN111222686A (zh) * | 2019-11-21 | 2020-06-02 | 施甸县保施高速公路投资开发有限公司 | 优化高速公路服务区业态的方法 |
CN111563782A (zh) * | 2019-02-13 | 2020-08-21 | 北京京东尚科信息技术有限公司 | 一种待推荐产品的确定方法和终端 |
CN112100483A (zh) * | 2020-08-07 | 2020-12-18 | 西安工程大学 | 一种融合用户兴趣权重的关联规则推荐方法 |
CN113220931A (zh) * | 2021-03-24 | 2021-08-06 | 西安交通大学 | 一种歌单多标签推荐方法、系统、设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514267A (zh) * | 2013-09-04 | 2014-01-15 | 快传(上海)广告有限公司 | 一种网络关联信息获取方法和系统 |
EP3001415A1 (en) * | 2014-09-23 | 2016-03-30 | Thomson Licensing | Method and apparatus for determining whether a specific watermark symbol out of one or more candidate watermark symbols is embedded in a current section of a received audio signal |
US20160110452A1 (en) * | 2014-10-21 | 2016-04-21 | Barbara Werner | Method and apparatus for pairing music and food selections |
CN106650225A (zh) * | 2016-10-25 | 2017-05-10 | 康美药业股份有限公司 | 基于fp增长算法模型的中药配方数据挖掘方法及系统 |
CN107256238A (zh) * | 2017-05-23 | 2017-10-17 | 深思考人工智能机器人科技(北京)有限公司 | 一种多约束条件下的个性化信息推荐方法及信息推荐系统 |
CN108182294A (zh) * | 2018-01-31 | 2018-06-19 | 湖北工业大学 | 一种基于频繁项集增长算法的电影推荐方法及系统 |
-
2018
- 2018-08-03 CN CN201810877202.2A patent/CN109299313A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514267A (zh) * | 2013-09-04 | 2014-01-15 | 快传(上海)广告有限公司 | 一种网络关联信息获取方法和系统 |
EP3001415A1 (en) * | 2014-09-23 | 2016-03-30 | Thomson Licensing | Method and apparatus for determining whether a specific watermark symbol out of one or more candidate watermark symbols is embedded in a current section of a received audio signal |
US20160110452A1 (en) * | 2014-10-21 | 2016-04-21 | Barbara Werner | Method and apparatus for pairing music and food selections |
CN106650225A (zh) * | 2016-10-25 | 2017-05-10 | 康美药业股份有限公司 | 基于fp增长算法模型的中药配方数据挖掘方法及系统 |
CN107256238A (zh) * | 2017-05-23 | 2017-10-17 | 深思考人工智能机器人科技(北京)有限公司 | 一种多约束条件下的个性化信息推荐方法及信息推荐系统 |
CN108182294A (zh) * | 2018-01-31 | 2018-06-19 | 湖北工业大学 | 一种基于频繁项集增长算法的电影推荐方法及系统 |
Non-Patent Citations (2)
Title |
---|
刘亚林: "《基于FP-growth算法的音乐推荐应用研究》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
李围成: "《基于FP-树的时空数据挖掘算法研究》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563782A (zh) * | 2019-02-13 | 2020-08-21 | 北京京东尚科信息技术有限公司 | 一种待推荐产品的确定方法和终端 |
CN111563782B (zh) * | 2019-02-13 | 2024-05-21 | 北京京东尚科信息技术有限公司 | 一种待推荐产品的确定方法和终端 |
CN110837504A (zh) * | 2019-11-04 | 2020-02-25 | 中国南方电网有限责任公司超高压输电公司昆明局 | 一种工控系统异常系统事件识别方法 |
CN110852863A (zh) * | 2019-11-15 | 2020-02-28 | 安徽海汇金融投资集团有限公司 | 一种基于关联分析的应收账款流转推荐方法及系统 |
CN110852863B (zh) * | 2019-11-15 | 2023-06-23 | 安徽海汇金融投资集团有限公司 | 一种基于关联分析的应收账款流转推荐方法及系统 |
CN111222686A (zh) * | 2019-11-21 | 2020-06-02 | 施甸县保施高速公路投资开发有限公司 | 优化高速公路服务区业态的方法 |
CN112100483A (zh) * | 2020-08-07 | 2020-12-18 | 西安工程大学 | 一种融合用户兴趣权重的关联规则推荐方法 |
CN112100483B (zh) * | 2020-08-07 | 2023-09-19 | 西安工程大学 | 一种融合用户兴趣权重的关联规则推荐方法 |
CN113220931A (zh) * | 2021-03-24 | 2021-08-06 | 西安交通大学 | 一种歌单多标签推荐方法、系统、设备和存储介质 |
CN113220931B (zh) * | 2021-03-24 | 2023-01-03 | 西安交通大学 | 一种歌单多标签推荐方法、系统、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299313A (zh) | 一种基于FP-growth的歌曲推荐方法 | |
CN104809117B (zh) | 视频数据聚合处理方法、聚合系统及视频搜索平台 | |
CN108550381A (zh) | 一种基于FP-growth的药品推荐方法 | |
CN103870506B (zh) | 一种网页信息的抽取方法和系统 | |
CN102346747B (zh) | 在数据模型中查找参数的方法 | |
CN103902545B (zh) | 一种类目路径识别方法及系统 | |
CN110444259A (zh) | 基于实体关系标注策略的中医电子病历实体关系提取方法 | |
CN109344150A (zh) | 一种基于fp-树的时空数据挖掘分析方法 | |
CN105956053A (zh) | 一种基于网络信息的搜索方法及装置 | |
Nguyen et al. | Interlinking linked data sources using a domain-independent system | |
CN111611431A (zh) | 一种基于深度学习的音乐分类方法 | |
CN105488135A (zh) | 直播内容分类方法及装置 | |
CN107193882A (zh) | RDF数据上基于图匹配的why‑not查询回答方法 | |
CN103106262A (zh) | 文档分类、支持向量机模型生成的方法和装置 | |
CN106933969A (zh) | 基于行业上下游关系的个性化推荐系统和推荐方法 | |
Darshna | Music recommendation based on content and collaborative approach & reducing cold start problem | |
CN109741832A (zh) | 一种基于兼存率与FP-growth的心理行为分析方法 | |
CN106021430B (zh) | 基于Lucence自定义词库的全文检索匹配方法及系统 | |
CN103927168B (zh) | 一种面向对象的数据模型持久化的方法及装置 | |
CN104615782A (zh) | 基于滑动窗口最大匹配算法的地址匹配方法 | |
CN111353838A (zh) | 自动化校验商品类目的方法和装置 | |
Ycart et al. | A supervised approach for rhythm transcription based on tree series enumeration | |
Soni et al. | Emotion based social media text classification using optimized improved ID3 classifier | |
CN106294563A (zh) | 一种多媒体数据的处理方法和装置 | |
CN105354264B (zh) | 一种基于局部敏感哈希的主题标签快速赋予方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190201 |