R语言关联分析模型报告案例 附代码数据

更新时间:2024-04-21 13:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

【原创】附代码数据

有问题到淘宝找“大数据部落”就可以了

关联分析

目录

一、概括........................................................................................................................................... 1 二、数据清洗 ................................................................................................................................... 1

2.1公立学费(NPT4_PUB) ................................................................................................... 1 2.2毕业率(Graduation.rate) ............................................................................................... 1 2.3贷款率(GRAD_DEBT_MDN_SUPP) ................................................................................ 2 2.4偿还率(RPY_3YR_RT_SUPP) .......................................................................................... 2 2.5毕业薪水(MD_EARN_WNE_P10)。 ................................................................................ 3 2.6 私立学费(NPT4_PRIV) .................................................................................................. 3 2.7 入学率(ADM_RATE_ALL) .............................................................................................. 4 三、Apriori算法 .............................................................................................................................. 4

3.1 相关概念............................................................................................................................ 5 3.2 算法流程............................................................................................................................ 6 3.3 优缺点................................................................................................................................ 7 四、模型建立及结果 ....................................................................................................................... 8

4.1 公立模型............................................................................................................................ 8 4.2 私立模型.......................................................................................................................... 11

I

【原创】附代码数据

有问题到淘宝找“大数据部落”就可以了

一、 概括

对7703条样本数据,分别根据公立学费和私立学费差异,建立公立模型和私立模型,进行关联分析。

二、 数据清洗

2.1公立学费(NPT4_PUB)

此字段,存在4个负值,与实际情况不符,故将此四个值重新定义为NULL。重新定义后,NULL值的占比为75%,占比很大,不能直接将NULL值删除或者进行插补,故将NULL单独作为一个取值分组。

对非NULL的值按照等比原则进行分组,分组结果如下: A:[0,5896] B:(5896,7754] C:(7754, 9975] D:(9975, 13819] E:(13819, +] 分组后取值分布为: A 382

B 381 C 381 D 381 E 382 NULL 5796 2.2毕业率(Graduation.rate)

将PrivacySuppressed值重新定义为NULL,重新定义后,NULL值的占比为20%,占

比较大,不适合直接删除或进行插补,故将NULL单独作为一个取值分组。

对非NULL值根据等比原则进行分组,分组结果如下:

5

【原创】附代码数据

有问题到淘宝找“大数据部落”就可以了

A:[0,0.29] B:(0.29,0.47] C:(0.47, 0.61] D:(0.61, 0.75] E:(0.75, +]

分组后取值分布为: A 1255

B 1237 C 1190 D 1286 E 1219 NULL 1516 2.3贷款率(GRAD_DEBT_MDN_SUPP)

将PrivacySuppressed值重新定义为NULL,重新定义后,NULL值的占比为20%,占

比较大,不适合直接删除或进行插补,故将NULL单独作为一个取值分组。

对非NULL的值按照等比原则进行分组,分组结果如下: A:[0,9500] B:(9500,12000] C:(12000,19197] D:(19197, 25537] E:(25537, +] 分组后取值分布为: A 1702 B 847 C 1127 D 1225 E 1225 NULL 1577 2.4偿还率(RPY_3YR_RT_SUPP)

将PrivacySuppressed值重新定义为NULL,重新定义后,NULL值的占比为20%,占

比较大,不适合直接删除或进行插补,故将NULL单独作为一个取值分组。

对非NULL的值按照等比原则进行分组,分组结果如下:

5

【原创】附代码数据

有问题到淘宝找“大数据部落”就可以了

A:[0,9500] B:(9500,12000] C:(12000,19197] D:(19197, 25537] E:(25537, +] 分组后取值分布为: A 1702 B 847 C 1127 D 1225 E 1225 NULL 1577 2.5毕业薪水(MD_EARN_WNE_P10)。

将PrivacySuppressed值重新定义为NULL,重新定义后,NULL值的占比为19%,占

比较大,不适合直接删除或进行插补,故将NULL单独作为一个取值分组。

对非NULL的值按照等比原则进行分组,分组结果如下: A:[0,0.23] B:(0.23,0.33] C:(0.33, 0.45] D:(0.45, 0.6] E:(0.6, +]

分组后取值分布为: A 1255 B 1278 C 1240 D 1207 E 1248 NULL 1475 2.6 私立学费(NPT4_PRIV)

此字段,存在1个负值,与实际情况不符,故将此值重新定义为NULL。重新定义后,NULL值的占比为40%,占比很大,不能直接将NULL值删除或者进行插补,故将NULL单独作为一个取值分组。

5

【原创】附代码数据

有问题到淘宝找“大数据部落”就可以了

对非NULL的值按照等比原则进行分组,分组结果如下: A:[0,12111] B:(12111,16409] C:(16409, 19805] D:(19805, 23780] E:(23780, +] 分组后取值分布为: A 938

B 937 C 937 D 937 E 938 NULL 3016 2.7 入学率(ADM_RATE_ALL)

数据中,NULL值的占比为69%,占比很大,不能直接将NULL值删除或者进行插补,故将NULL单独作为一个取值分组。

对非NULL的值按照等比原则进行分组,分组结果如下: A:[0,0.52] B:(0.52,0.66] C:(0.66, 0.77] D:(0.77, 0.85] E:(0.85, +]

分组后取值分布为: A 466

B 507 C 484 D 325 E 620 NULL 5301 三、 Apriori算法

Apriori algorithm是关联规则里一项基本算法。其核心思想是通过候选集生

5

【原创】附代码数据

有问题到淘宝找“大数据部落”就可以了

成和情节的向下封闭检测两个阶段来挖掘频繁项集,是由Rakesh Agrawal和Ramakrishnan Srikant两位博士在1994年提出的关联规则挖掘算法。关联规则的目的就是在一个数据集中找出项与项之间的关系,也被称为购物蓝分析 (Market Basket analysis),“购物蓝分析”很贴切的表达了适用该算法情景中的一个子集。关于这个算法有一个非常有名的故事:\尿布和啤酒\。故事是这样的:美国的妇女们经常会嘱咐她们的丈夫下班后为孩子买尿布,而丈夫在买完尿布后又要顺 手买回自己爱喝的啤酒,因此啤酒和尿布在一起被购买的机会很多。这个举措使尿布和啤酒的销量双双增加,并一直为众商家所津津乐道。

3.1 相关概念

用R语言进行关联分析,涉及到的相关概念如下:

资料库(Transaction Database):存储着二维结构的记录集。定义为:D。 所有项集(Items):所有项目的集合。定义为:I。

记录 (Transaction ):在资料库里的一笔记录。定义为:T,T ∈ D。 项集(Itemset):同时出现的项的集合。定义为:k-itemset(k项集),k均表示项数。

支持度(support):定义为 supp(X) = occur(X) / count(D) = P(X)。P(A ∩ B)表示既有A又有B的概率。支持度是指在所有项集中{X, Y}出现的可能性,即项集中同时含有X和Y的概率。该指标作为建立强关联规则的第一个门槛,衡量了所考察关联规则在“量”上的多少。例如购物篮分析:牛奶?面包,支持度3%:意味着3%顾客同时购买牛奶和面包。

置信度(Confidence):定义为 conf(X->Y) = supp(X ∪ Y) / supp(X) = P(Y|X)。 P(B|A),在A发生的事件中同时发生B的概率 p(AB)/P(A)。置信度表示在先决条件X发生的条件下,关联结果Y发生的概率。这是生成强关联规则的第二个门槛,衡量了所考察的关联规则在“质”上的可靠性。例如购物篮分析:牛奶?面包,置信度40%:意味着购买牛奶的顾客40%也购买面包。

候选集(Candidate itemset):通过向下合并得出的项集。定义为C[k]。 频繁k项集:如果事件A中包含k个元素,那么称这个事件A为k项集事件

5

【原创】附代码数据

有问题到淘宝找“大数据部落”就可以了

A满足最小支持度阈值的事件称为频繁k项集。即支持度大于等于特定的最小支持度(Minimum Support/minsup)的项集,表示为L[k]。注意,频繁集的子集一定是频繁集。

强规则:同时满足最小支持度阈值和最小置信度阈值的规则称为强规则。即lift(X -> Y) = lift(Y -> X) = conf(X -> Y)/supp(Y) = conf(Y -> X)/supp(X) = P(X andY)/(P(X)P(Y))。

提升度(lift):提升度表示在含有X的条件下同时含有Y的可能性与没有X这个条件下项集中含有Y的可能性之比。该指标与置信度同样衡量规则的可靠性,可以看作是置信度的一种互补指标。有用的规则的提升度大于1。

3.2 算法流程

为了提高频繁项目的挖掘效率,Apriori算法利用了两个重要的性质,用于压缩搜索的空间:

1,若X为频繁项目集,则X的所有子集都是频繁项目集。 2,若X为非频繁项目集,则X的所有超集均为非频繁项目集。

Apriori算法的处理流程为:宽度优先搜索整个项集空间,从k=0开始,迭代产生长度为k+1的候选项集的集合Ck+1。候选项集是其所有子集都是频繁项集的项集。C1由I0中所有的项构成,在第k层产生所有长度为k+1的项集。这由两步完成:第一步,Fk自连接。将Fk中具有相同(k-1)-前缀的项集连接成长度为k的候选项集。第二步是剪枝,如果项集的所有长度为k的子集都在Fk中,该项集才能作为候选项集被加入Ck+1中。为了计算所有长度为k的候选项集的支持度,在数据库水平表示方式下,需要扫描数据库一遍。在每次扫描中,对数据库中的每条交易记录,为其中所包含的所有候选k-项集的支持度计数加1。所有频繁的k-项集被加入Fk中。此过程直至Ck+1等于空集时结束。

简单的讲,1过程为: (1)扫描; (2)计数; (3)比较;

5

【原创】附代码数据

有问题到淘宝找“大数据部落”就可以了

(4)产生频繁项集;

(5)连接、剪枝,产生候选项集;

(6)重复步骤(1)~(5)直到不能发现更大的频集。 图3.2.1为举例图示。

图3.2.1 Apriori举例图示

3.3 优缺点

Apriori算法的优点:Apriori的关联规则是在频繁项集基础上产生的,进而这可以保证这些规则的支持度达到指定的水平,具有普遍性和令人信服的水平。

Apriori算法的缺点:需要多次扫描数据库;生成大量备选项集;计数工作量太大。

5

【原创】附代码数据

有问题到淘宝找“大数据部落”就可以了

四、模型建立及结果

4.1 公立模型

此模型使用字段为:公立学费(NPT4_PUB)、毕业率(Graduation.rate)、贷款率(GRAD_DEBT_MDN_SUPP)、偿还率(RPY_3YR_RT_SUPP)、毕业薪水(MD_EARN_WNE_P10),入学率(ADM_RATE_ALL)。

因为NULL对实际情况无意义,因此除去取值中有NULL的样本,剩余样本数为589。对剩余样本进行关联分析,模型性能参数如下:

提升度越高,说明规则两边同时出现比只出现一个更为常见,大的提升度代表规则的重要性,并反映了不同情况间的真实联系,因此根据提升度,列出提升度排名前6条规则:

由结果可知,高毕业率高毕业薪水,容易有高偿还率;偿还率和入学率高时,容易出现高的毕业薪水;如果毕业率高,即使贷款率较高时,也有很好的偿还率。

注1:lhs是关联规则的左侧,rhs是关联规则的右侧。support,confidence,lift三列分别

5

本文来源:https://www.bwwdw.com/article/x5xp.html

Top