【SPMF开源数据挖掘平台入门】MaxSP算法使用说明

前段时间,由于项目中用到了序列挖掘的算法,师兄推荐我用用SPMF。在此做个记录。

首先简单介绍一下SPMF:

SPMF是一个采用Java开发的开源数据挖掘平台。

它提供了51种数据挖掘算法实现,用于:

  • 序列模式挖掘,

  • 关联规则挖掘,
  • frequent itemset 挖掘,
  • 顺序规则挖掘,
  • 聚类

HOME PAGE:http://www.philippe-fournier-viger.com/spmf/


首先还是学习一下序列挖掘的有关概念:

所谓序列模式,我的定义是:在一组有序的数据列组成的数据集中,经常出现的那些序列组合构成的模式。跟我们所熟知的关联规则挖掘不一样,序列模式挖掘的对象以及结果都是有序的,即数据集中的每个序列的条目在时间或空间上是有序排列的,输出的结果也是有序的。
举个简单的例子来说明,关联规则一个经典的应用是计算超市购物中被共同购买的商品,它把每个顾客的一次交易视作一个transaction,计算在不同transaction中不同item组合的规律性。而如果我们考虑一个用户多次在超市购物的情况,那么这些不同时间点的交易记录就构成了一个购买序列,N个用户的购买序列就组成一个规模为N的序列数据集。考虑这些时间上的因素之后,我们就能得到一些比关联规则更有价值的规律,比如关联挖掘经常能挖掘出如啤酒和尿布的搭配规律,而序列模式挖掘则能挖掘出诸如《育儿指南》->婴儿车这样带有一定因果性质的规律。所以,序列模式挖掘比关联挖掘能得到更深刻的知识。
在实际当中,序列模式挖掘被广泛地应用于各种序列数据集中,如生物信息学上的基因微阵列数据,从中挖掘哪些基因组合模式在某类病人中会频繁出现;以单词作为item的文档序列,研究在不同文档中单词序列的出现模式;用户点击流数据,用于挖掘用户的频繁点击模式,建立用户模型,完善网站功能与UI结构。除此之外还有很多,只要是序列数据集,都可以考虑利用序列模式挖掘获得规律。
图1是一个序列数据库,及其以0.75作为最小阈值(min_sup)的频繁序列模式。借此介绍序列挖掘中的几个主要概念。


图1 简单的序列数据库,基本概念
序列(Sequence):以SID表示,一个序列即是一个完整的信息流。 项目(Item):序列中最小组成单位的集合,比如在这个样例中的项目为{A, B, C}。 事件(Event):通常用时间戳标志,标识事件之间的前后关系。又叫Itemset,是Item的集合,样例中以EID表示。 k频繁序列:如果频繁序列的项目个数为k,则称之为k频繁序列,以Fk表示(图1的F1,F2,F3)。 序列的包含关系:对于序列x和y,如果存在着一个保序的映射,使得x中的每个事件都被包含于y中的某个事件,则称为x被包含于y(x是y的子序列),例如序列B->AC是序列AB->E->ACD的子序列。 支持度(support):某序列x的支持度是指在整个序列集中包含x的序列的频次。 有了以上概念之后,序列模式挖掘的问题就定义为:给定一个序列数据库以及最小支持度min_sup,找出所有支持度大于min_sup的序列模式。 (引自:http://www.360doc.com/content/11/0924/09/7511080_150810319.shtml

MaxSP算法介绍:(来自spmf中,MaxSP算法ppt中的例子)
也就是说,我在有一个上图的database的情况下,可以利用算法挖掘出支持度大于minsup的pattern。
可以看到,算法找出的是最大序列模式——maximal sequential patterns
 
首先对pattern做了分类:1:sequential patterns;2:closed patterns;3:maximal patterns
如何判断是否为最大Maximal呢?

什么意思呢?如下例子:

因为有{{a},{g}},所以虽然{{a}}的支持度大于minsup,但还是不会被输出,因为他不是maximal。


以使用MaxSP算法为例,来介绍SPMF的使用:

Algorithm——算法说明pdf+ppt下载下来

打开ppt可以看到对MaxSP的介绍:(ppt和pdf的内容基本相同)



download——源码,jar包



document——example

找到MaxSP即可看到算法说明:

里面说了有三种方式可以执行算法:

1:可视化的界面:http://www.philippe-fournier-viger.com/spmf/how_to_run_graphical_interface.php

2:命令行运行;

3:IDE中,直接copyMainTestMaxSP_saveToFile.java

如果你用的是eclipse的话,只需要把输入按照规定的格式改好,然后做一下简单的修改就可以用啦。

这里附上demo供大家参考:https://github.com/XBWer/SPMF_MaxSP

时间: 2024-12-11 17:19:05

【SPMF开源数据挖掘平台入门】MaxSP算法使用说明的相关文章

7款优秀的开源数据挖掘工具

7款优秀的开源数据挖掘工具 IDMer说道:本文只对几种流行的开源数据挖掘平台进行了检视,比如Weka和R等.如果您想找寻更多的开源数据挖掘软件,可以到KDnuggets和Open Directory上查看.为了评测这些软件,我们用了UCI Machine Learning Repository上的心脏病诊断数据集. Tanagra Tanagra (http://eric.univ-lyon2.fr/wricco/tanagra/) 是使用图形界面的数据挖掘软件,采用了类似Windows资源管

PL1936-大数据快速数据挖掘平台RapidMiner数据分析

随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了.对于学习有困难不知道如何提升自己可以加扣:1225462853进行交流得到帮助,获取学习资料. 下载地址:http://pan.baidu.com/s/1jI05TPW 炼数成金大数据课程 大数据快速数据挖掘平台RapidMiner数据分析  数据挖掘视频教程 课程简介: 作为一门学科,数据挖掘对于世人来说在很

Kaggle大数据竞赛平台入门

Kaggle大数据竞赛平台入门 大数据竞赛平台,国内主要是天池大数据竞赛和DataCastle,国外主要就是Kaggle.Kaggle是一个数据挖掘的竞赛平台,网站为:https://www.kaggle.com/.很多的机构,企业将问题,描述,期望发布在Kaggle上,以竞赛的方式向广大的数据科学家征集解决方案,体现了集体智慧这一思想.每个人在网站上注册后,都可以下载感兴趣项目的数据集,分析数据,构造模型,解决问题提交结果.按照结果的好坏会有一个排名,成绩优异者还可能获得奖金/面试机会等. 图

数据挖掘十大经典算法

一. C4.5  C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法.   C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足: 2) 在树构造过程中进行剪枝: 3) 能够完成对连续属性的离散化处理: 4) 能够对不完整数据进行处理. C4.5算法有如下优点:产生的分类规则易于理解,准确率较高.其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导

Mahout机器学习平台之聚类算法详细剖析(含实例分析)

第一部分: 学习Mahout必须要知道的资料查找技能: 学会查官方帮助文档: 解压用于安装文件(mahout-distribution-0.6.tar.gz),找到如下位置,我将该文件解压到win7的G盘mahout文件夹下,路径如下所示: G:\mahout\mahout-distribution-0.6\docs 学会查源代码的注释文档: 方案一:用maven创建一个mahout的开发环境(我用的是win7,eclipse作为集成开发环境,之后在Maven Dependencies中找到相应

Weka数据挖掘平台

Explorer: menu selection and form filling 缺点:when you open a dataset, it immediately loads it all in. This means that the Explorer can only be applied to small- to medium-size problems. Knowledge  Flow : allows you to design configurations for stream

开源任务管理平台TaskManager介绍

很早之前准备写Quartz系列文章,现在终于能够实现了.从本篇开始将带你实现一款自己的任务管理平台.在工作中你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行.一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用.NET编程吗?如果这些问题中任何一个你回答是,那么你应该使用Quartz.NET调度器. 阅读目录 Quart.Net介绍 Cron表达式 开源TaskManager实现原

《微信公众平台入门到精通》Vol.1

<微信公众平台入门到精通>Vol.1 从今天开始微信公众平台教程开写,前面部分会比较浅,已经在玩的朋友可以忽略. 第一章    微信公众账号注册.设置.登陆 一.微信公众平台注册 注册前的准备工作,很重要! 1.一个没有注册过公众账号的邮箱,如果是qq邮箱那么对应的qq号也要没有注册过公众账号. 2.身份证扫描件,每个身份证可以注册5个公众账号 3.手机,用来接受注册验证码 4.想好公众账号名称,非常重要,一旦申请成功名称不能修改,并且该名称最好与已获得认证的腾讯微博名称相同,等公众号到500

《微信公众平台入门到精通》Vol.2

<微信公众平台入门到精通>Vol.2 2017-05-28 连着两天没有更新公众平台的教程了,估计不少朋友在嘀咕了,非常抱歉,这些天疲倦的奔波在外,朋友们的消息还是及时在回复的,只是没有精力写东西.今天猛睡一天补交,接下来会空一些,会正常更新! 第二章    微信公众平台后台介绍 一.微信公众平台后台欢迎页面 登陆公众平台后首先进入的就是欢迎页,跟大部分CMS后台一样,这里会提供的是公众账号的一些运营数据,如下图: 在上次点击用户管理和实时消息两个导航选项后新增加的用户数和消息数,这话有点拗口