数据挖掘方法入门——关联分析

数据挖掘方法入门——关联分析,第1张

自然界中,某件事情发生时,其他事件也会发生,这种联系称为关联。关联分析就是为了寻找事物之间的一些有趣的关联关系。

最让人熟知的就是购物篮分析,商场在分析用户经常同时购买“啤酒、尿布“、“篮球”、“篮球服”等商品组合,于是将其放在一起以促进销售。这种关联关系的分析,不仅应用与网站设计者可以根据访客日志数据,发现访客浏览习惯和网站页面间的关系。

拿某个商场的交易数据中进行分析,数据集中有限的项目经过排列组合以后可以产生大量的关联规则,但是,只有一小部分的规则会是用户感兴趣的,因此需要引入一个“兴趣度”的概念帮助用户评估得到的关联规则。

而与兴趣度评估相关的度量包括:简洁性、正确性、实用性、新颖性

1)简洁性:太复杂的规则会让用户的兴趣度降低,也难以解释和理解

2)正确性:令人信服的程度有多高。

正确性的判断指标是置信度,表示这个规则正确的概率有多大。即在某一项x出现的前提下,另外一项y出现的频率是多少。

置信度confident(x=>y)=p(y|x)

3)实用性:判断该规则再次出现的可能性有多大,即这个指标的覆盖率。

实用性的判断指标是支持度,支持度越大说明规则应用越广泛,即xy同时出现的频率.

支持度support(x=>y)= p(x U y)

4)新颖性:判断规则是否已经被导出的另外一个规则作蕴含。

在这4个指标中,置信度和实用性是用来评判一条规则是强关联规则的依据。

强关联规则:同时满足用户定义的最小支持度阈值和最小置信度阈值的关联规则

弱关联规则:不满足最小支持度阈值和最小置信度阈值的关联规则

5)改善度:

期望可信度是在x没有影响的作用下y出现的频率,p(i)

改善度则是评估x的出现对y的出现的影响性。p(y|x)/p(x)越大,则改善度越高,说明x的出现对y的可能影响就越大。

1)布尔规则和量化规则

(1)布尔规则:性别=女=》职业=老师

(2)量化规则:性别=女=》平均收入=2300

量化关联规则可以直接对原始数据进行处理,或先对数值型属性进行分区间进行动态分割

2)单层规则和多层关联规则

在单层规则中,所有的项不考虑现实数据的多层性,而在实际应用中,涉及不同的抽象层发现的多层关联规则则是一种更有用的关联规则,因为属性之间存在一种层次关系。

(1)不涉及不同抽象层的项的规则称为单层关联规则

adidas篮球=》nike篮球服

(2)较高层次和较低层次之间规则称为多层关联规则

adidas篮球=》篮球服

3)单维规则和多维规则

(1)单维关联规则:处理同一个属性或维度内的联系。

adidas篮球=》nike篮球服

(2)多维关联规则:多个属性或维度之间的联系。

用户的年龄和购买物品

两者的关系是一般由用户给定最小置信度阈值和最小支持度阈值。发现关联规则的任务就是从数据库中发现那些置信度、支持度大于等于给定最小阈值的强关联规则。

通常,用户会根据自己的挖掘需要来指定最小置信度阈值,记为minconf。

如果数据项集X满足support(X) >= minsup,则X是频繁数据项集。若规则X=>Y同时满足confidence(X=>Y)>=minconf,则称该规则为强关联规则,否则称为弱关联规则。

数据表的设计原则:

( )不应针对整个系统进行数据库设计 而应该根据系统架构中的组件划分 针对每个组件所处理的业务进行组件单元的数据库设计不同组件间所对应的数据库表之间的关联应尽可能减少 如果不同组件间的表需要外键关联也尽量不要创建外键关联 而只是记录关联表的一个主键 确保组件对应的表之间的独立性 为系统或表结构的重构提供可能性

( )采用领域模型驱动的方式和自顶向下的思路进行数据库设计 首先分析系统业务 根据职责定义对象 对象要符合封装的特性 确保与职责相关的数据项被定义在一个对象之内 这些数据项能够完整描述该职责 不会出现职责描述缺失 并且一个对象有且只有一项职责 如果一个对象要负责两个或两个以上的职责 应进行分拆

( )根据建立的领域模型进行数据库表的映射 此时应参考数据库设计第二范式 一个表中的所有非关键字属性都依赖于整个关键字 关键字可以是一个属性 也可以是多个属性的集合 不论那种方式 都应确保关键字能够保证唯一性 在确定关键字时 应保证关键字不会参与业务且不会出现更新异常 这时 最优解决方案为采用一个自增数值型属性或一个随机字符串作为表的关键字

( )由于第一点所述的领域模型驱动的方式设计数据库表结构 领域模型中的每一个对象只有一项职责 所以对象中的数据项不存在传递依赖 所以 这种思路的数据库表结构设计从一开始即满足第三范式 一个表应满足第二范式 且属性间不存在传递依赖

( )同样 由于对象职责的单一性以及对象之间的关系反映的是业务逻辑之间的关系 所以在领域模型中的对象存在主对象和从对象之分 从对象是从 N或N N的角度进一步主对象的业务逻辑 所以从对象及对象关系映射为的表及表关联关系不存在删除和插入异常

( )在映射后得出的数据库表结构中 应再根据第四范式进行进一步修改 确保不存在多值依赖 这时 应根据反向工程的思路反馈给领域模型 如果表结构中存在多值依赖 则证明领域模型中的对象具有至少两个以上的职责 应根据第一条进行设计修正 第四范式 一个表如果满足BCNF 不应存在多值依赖

( )在经过分析后确认所有的表都满足二 三 四范式的情况下 表和表之间的关联尽量采用弱关联以便于对表字段和表结构的调整和重构 并且 我认为数据库中的表是用来持久化一个对象实例在特定时间及特定条件下的状态的 只是一个存储介质 所以 表和表之间也不应用强关联来表述业务(数据间的一致性) 这一职责应由系统的逻辑层来保证 这种方式也确保了系统对于不正确数据(脏数据)的兼容性 当然 从整个系统的角度来说我们还是要尽最大努力确保系统不会产生脏数据 单从另一个角度来说 脏数据的产生在一定程度上也是不可避免的 我们也要保证系统对这种情况的容错性 这是一个折中的方案

( )应针对所有表的主键和外键建立索引 有针对性的(针对一些大数据量和常用检索方式)建立组合属性的索引 提高检索效率 虽然建立索引会消耗部分系统资源 但比较起在检索时搜索整张表中的数据尤其时表中的数据量较大时所带来的性能影响 以及无索引时的排序 *** 作所带来的性能影响 这种方式仍然是值得提倡的

( )尽量少采用存储过程 目前已经有很多技术可以替代存储过程的功能如 对象/关系映射 等 将数据一致性的保证放在数据库中 无论对于版本控制 开发和部署 以及数据库的迁移都会带来很大的影响 但不可否认 存储过程具有性能上的优势 所以 当系统可使用的硬件不会得到提升而性能又是非常重要的质量属性时 可经过平衡考虑选用存储过程

( )当处理表间的关联约束所付出的代价(常常是使用性上的代价)超过了保证不会出现修改 删除 更改异常所付出的代价 并且数据冗余也不是主要的问题时 表设计可以不符合四个范式 四个范式确保了不会出现异常 但也可能由此导致过于纯洁的设计 使得表结构难于使用 所以在设计时需要进行综合判断 但首先确保符合四个范式 然后再进行精化修正是刚刚进入数据库设计领域时可以采用的最好办法

( )设计出的表要具有较好的使用性 主要体现在查询时是否需要关联多张表且还需使用复杂的SQL技巧

lishixinzhi/Article/program/SQL/201311/16156


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6779567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存