关联规则( Association Rules)之频繁模式树(FP-Tree)

本文深入探讨了FrequentPatternTree的概念、构建方法及在并行计算中的应用,通过实例解析了如何从交易数据库中高效地寻找频繁模式,特别强调了其在推荐系统等领域的实践价值。

       Frequent Pattern Tree(频繁模式树)是Jiawei Han在2004年的文章《Mining Frequent Patterns without Candidate Generation 》中提出的。

————————————————————————————————————————————————————

下面给出一些定义:

设项集(set of items),交易数据库(transaction database),其中交易(transaction),是中的元素组成的集合。模式(Pattern)A是中的元素组成的集合,模式A的支持度(support)是指交易数据库中包含A的交易的数量。是最小支持度阈值,如果,模式A的支持度大于,那么称A为频繁模式(Frequent Pattern)。

频繁模式树就是要找到交易数据库中的频繁模式。

————————————————————————————————————————————————————

例子:

设项集,交易数据库如下表:


最小支持度阈值

构造频繁模式树只需要扫描(scan)交易数据库次。

第一次:扫描数据库,对其中的每一个项进行计数,得到一个list of frequent items(频繁项的列表) ,例如,项出现了4次,依次类推我们对其中的每一项进行计数,因为最小支持度阈值为3,,我们下面只给出出现次数大于3的项:


第二次:扫描数据库的每一交易,得到每一个交易的排序频繁项(Ordered Frequent Items)构造频繁模式树(构造过程很简单,原论文给出了详细的阐述):

我们对每一个交易,只保留大于3的项,并排序,然后我们得出下表,多出了一列就是排序频繁项(Ordered Frequent Items)






—————————————————————————————————————————————————————

根据上面的两步,我们已经构造出了频繁模式树,怎么样通过频繁模式树,找到频繁模式。

其中,我们拿和项有关的频繁模式举例,其他依次类推:

首先,我们找到所有的节点,并沿着树枝路径向上直到根节点(root),我们发现有两条路径:

然后,我们可以得出出现的3次同时出现了3次,是同时和出现次数最多的项,而且次数大于最小支持度阈值。所以就是一个频繁模式,依次类推得出其他项的频繁模式:

所以,通过频繁模式树找到了很多频繁模式。

—————————————————————————————————————————————————————

对于频繁模式树的并行计算(MapReduce),文章

《Parallel FP-Growth for Query Recommendation》中给出了详细说明。

FTPTREE 示例阐释下面的 MFC Internet 客户端 (WinInet) 功能: 使用 CInternetSession 和 CFtpConnection 类以最少数量的自定义代码获得 Internet 或 Intranet 连接。 将 CFtpFileFind 类与 CFtpConnection 一起使用以定位 FTP 站点的目录结构。 动态生成树控件的内容。 生成并运行示例 生成并运行 FTPTREE 示例 打开解决方案 Ftptree.sln。 在“生成”菜单上单击“生成”。 打开并运行 FTPTREE 应用程序。 FTPTREE 是示例对话框应用程序,它具有一个编辑框(用于服务器名称和该服务器上对象的路径(可选))和一个标准树控件对象。树控件属于此对话框,并且显示错误信息或在 ftp:// 编辑框中指定的 FTP 站点的内容(最多 128 项)。 CInternetSession 对象封装与 Internet(或 Intranet)的连接。当 FTPTREE 对话框存在于内存中时该对象将保持封装,但它可以只在需要时用很少的系统开销很容易地打开(并在之后立即关闭)。 FTPTREE 基于在注册表中指定的配置打开 Internet 会话。以下为 ftp:// 编辑框的有效输入。 myserver — 仅为 Intranet FTP 服务器的名称。 www.myserver.tld — 仅为 Internet FTP 服务器的名称。 myserver/dir/ — FTP 服务器和路径的名称。该路径将在树控件中扩展。 myserver/dir/file — FTP 服务器的名称和特定对象的路径。如果找到了该对象则选择它;如果未提供该对象,将尽可能地扩展树。 可以将协议前缀 ftp:// 添加到上述任何项中。 可能需要 TIS 代理来用于连接 FTPTREE 示例(通常情况下,包括 Wininet.dll)要求与 FTP 服务器直接连接或通过 TIS 代理与 FTP 服务器连接。FTPTREE、CFtpConnection 和直接 WININET API 调用将不与 CERN FTP 代理正确工作。 FTPTREE 示例使用在注册表中指定的代理信息。如果获得诸如“与服务器的连接被重置”之类的消息,这些消息表明 FTPTREE 无法与 Internet 站点连接,您可能需要更改您预配置的注册表设置来为 FTP 服务指定 TIS 代理。可以在 Internet Explorer 中的“选项”属性表的“连接”选项卡上更改这些设置。相应的注册表项是: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "ProxyEnable" "ProxyServer" "ProxyOverride" 关键字 此示例说明以下关键字: CFtpConnection::CFtpConnection;CFtpConnection::SetCurrentDirectory;CFtpConnection::GetCurrentDirectory;CFtpConnection::Close;CFtpFileFind::CFtpFileFind;CFtpFileFind::FindFile;CFtpFileFind::FindNextFile;CFileFind::IsDirectory;CInternetSession::CInternetSession;CInternetSession::GetFtpConnection;CInternetSession::Close;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值