呵呵,前几天拿到了数据挖掘基础教程一书,感觉部分算法是基于统计学的原理的,而统计学是可以通过 Oracle 来实现。
其次是为了观看德国 vs 西班牙的世界杯比赛,来了一点小小的兴致,动手写点小脚本。不过本文只是为了实现而实现的,没有做 任何优化,有兴趣的话,大家可以玩一玩。
关于数据挖掘关联规则的材料,可以参见:
http://baike.baidu.com/view/1076817.htm?fr=ala0_1
关联规则是形如 X → Y 的蕴涵式,
其中且, X 和 Y 分别称为关联规则的先导 (antecedent 或 left-hand-side, LHS) 和后继 (consequent 或 right-hand-side, RHS) 。
关联规则在 D 中的支持度 (support) 是 D 中事务同时包含 X 、 Y 的百分比,即概率; =X^Y/D
置信度 (confidence) 是包含 X 的事务中同时又包含 Y 的百分比,即条件概率。 =(X^Y)/X
关联规则是有趣的,如果满足最小支持度阈值和最小置信度阈值。
若给定最小支持度α = n ,最小置信度β = m ,则分别通过以上的 X^Y/D 和 (X^Y)/X ,可获知是否存在关联
使用的原始数据
反范式后的数据
待统计项
-- 创建各个购买单元项视图
create view distinct_trans as select distinct tranobject from purchase;
-- 创建各个事务内部的购买单元项
create view all_trans as
-- 可以用 wm_concat 函数
SELECT tranid,MAX(tranobjects) tranobjects
FROM (select tranid,WMSYS.WM_CONCAT(tranobject) OVER(PARTITION BY tranid ORDER BY tranobject) tranobjects
from purchase
)
group by tranid;
-- 也可以用 sys_connect_by_path 函数
create view all_trans as
select tranid,substr(tranobjects,2) tranobjects from -- 格式化前面的逗号和空格
(
select distinct tranid,FIRST_VALUE(tranobjects) OVER(PARTITION BY tranid ORDER BY levels desc ) AS tranobjects -- 保留最大的那个
from
(
select tranid,sys_connect_by_path(tranobject,',') tranobjects,level levels -- 各购买事务的内部排列组合
from purchase
connect by tranid=prior tranid and tranobject<prior tranobject
)
);
-- 对所有购买单元项进行排列组合,即数据挖掘的 X^Y 项
create view all_zuhe as
select substr(sys_connect_by_path(tranobject,','),2) zuhe
from (select distinct tranobject from purchase)
connect by nocycle tranobject<prior tranobject;
select * from all_zuhe
-- 筛选出符合要求的排列组合,即数据挖掘的 X 项和 Y 项
create view full_zuhe as
select a.zuhe X,b.zuhe Y from all_zuhe a,all_zuhe b
where instr(a.zuhe,b.zuhe)=0 and instr(b.zuhe,a.zuhe)=0
and not exists(select 1 from distinct_trans c
where instr(a.zuhe,c.tranobject)>0 and instr(b.zuhe,c.tranobject)>0)
select * from full_zuhe
create or replace view tongji as
select xy,xy_total,x,x_total,y,y_total,transtotal from
(
select y||','||x xy,
(select count(*) from all_trans a where instr(a.tranobjects,c.x||','||c.y)>0 or instr(a.tranobjects,c.y||','||c.x)>0) xy_total, -- 包含 xy 的事务数
y,
(select count(*) from all_trans b where instr(b.tranobjects,c.y)>0) y_total, -- 包含 y 的事务数
x,
(select count(*) from all_trans b where instr(b.tranobjects,c.x)>0) x_total, -- 包含 x 的事务数
d.transtotal -- 总事务数
from full_zuhe c,(select count(distinct tranid) transtotal from purchase) d
order by xy_total desc,x_total desc
)
select * from tongji where xy_total>=3 and y_total>=3
分享到:
相关推荐
Oracle 9i Data Mining 手册不仅提供了关于数据挖掘理论和实践的全面介绍,而且还包含了许多实用案例和技术细节。对于希望深入了解并利用Oracle平台进行数据挖掘工作的专业人士来说,这是一份非常宝贵的资源。通过...
DM API提供了对多种数据挖掘算法的访问,包括分类、聚类、关联规则学习和序列模式挖掘等。 在“Oracle 10.1的数据挖掘示例代码”中,我们可能会看到以下关键概念的应用: 1. **分类(Classification)**:这是一种...
【关联规则挖掘】关联规则挖掘是一种数据挖掘技术,用于发现数据集中不同项目之间的频繁模式或关联。在本论文中,它被应用于分析Oracle数据库的审计记录,以构建用户正常行为模型,从而识别异常行为。通过分析审计...
2. **算法**:Oracle数据挖掘支持多种数据挖掘算法,如决策树(CART)、神经网络(NN)、支持向量机(SVM)、K-means聚类、Apriori关联规则等。这些算法能够处理不同类型的问题,如分类问题、回归问题、非监督学习等...
关联规则数据挖掘技术在教学管理中的应用主要涉及将数据挖掘技术应用于高校教学管理信息系统中,以提取对教学和决策有价值的信息。本文主要探讨了如何利用关联规则挖掘技术分析学分制选课系统的数据,从而优化学生...
常见的数据挖掘技术包括分类、聚类、关联规则学习、回归分析等。 ### (四)总结 数据仓库、OLAP和数据挖掘共同构成了商业智能的技术体系,它们分别负责数据的存储与整合、多维分析和深度洞察。数据仓库提供了结构...
3. 数据挖掘算法:Oracle支持多种数据挖掘算法,如分类(决策树、贝叶斯分类、神经网络)、聚类(K-means、层次聚类)、关联规则(Apriori、FP-Growth)和序列模式挖掘。这些算法可以单独或组合使用,以适应不同的...
2. **数据挖掘**:数据挖掘是从大量数据中提取知识的过程,它涉及到多种技术,如分类、聚类、关联规则学习(如本项目)、序列模式挖掘等。在这个程序中,我们将专注于关联分析,这是一种找出数据中频繁出现的项集和...
《关于数据挖掘技术方面综述》一文详细介绍了数据挖掘的基础理论、分类、算法以及未来研究方向,为读者提供了全面而深入的理解。 ### 数据挖掘的定义与基本过程 数据挖掘(Data Mining,DM)是指从海量、不完整、...
Oracle Data Mining (ODM)是Oracle公司提供的数据挖掘工具,它集成在Oracle 9i关系型数据库中,允许用户针对关系表进行特定的挖掘模式操作。 ODM的体系结构包含Oracle 9i Data Mining API和数据挖掘服务器(DMS)两...
数据挖掘主要分为分类、聚类、关联规则学习、序列模式挖掘和异常检测等类别。例如,分类方法如决策树、随机森林,聚类方法如K-means,关联规则学习则有Apriori算法。数据挖掘不仅可以帮助我们理解数据的内在结构,还...
数据挖掘的高级技术包括分类、聚类和关联规则学习。例如,可以使用决策树、随机森林或支持向量机进行分类预测,如预测各省份的GDP增长率;通过K-means或层次聚类分析对地区或行业进行分组;运用Apriori算法找出消费...
### 数据挖掘系统开发及Oracle Data Mining应用 #### 一、数据挖掘概述 数据挖掘(Data Mining)作为一种新兴技术,近年来随着人工智能和数据库技术的发展而日益受到重视。它是一种从大量数据中提取有价值信息的过程...
3. 关联规则学习:找出项集之间的频繁模式,如Apriori算法。 4. 序列模式挖掘:识别事件的序列模式,常用于时间序列数据。 5. 预测和回归:预测数值型变量,如线性回归、时间序列分析。 数据挖掘过程中,数据预处理...
在南京大学的课程中,学生可能学习了数据挖掘的主要方法和技术,比如关联规则学习中的Apriori算法,分类中的C4.5决策树,以及聚类中的K-means算法。此外,他们可能还接触到了数据挖掘在实际问题中的应用,如市场篮子...
常见的数据挖掘方法有分类(如决策树、随机森林)、聚类(如K-means、DBSCAN)、关联规则学习(如Apriori、FP-Growth)和序列模式挖掘(如 PrefixSpan)等。 3. **模式评估**:在找到潜在模式后,需要评估它们的...
数据挖掘是信息技术领域中一个关键的研究方向,它涉及从大量数据中发现有价值的、未知的、可理解的模式和知识。这个过程通常包括预处理、模式发现和后处理三个主要阶段。"数据挖掘概念与技术"这门课程的核心目标是...
ODM支持多种数据挖掘算法,包括分类、聚类、关联规则、序列模式、回归和异常检测等,覆盖了数据挖掘的主要应用场景。 1. **数据挖掘基础** - **数据挖掘定义**:数据挖掘是从大量数据中发现有价值信息和知识的过程...