R与数据分析旧笔记(十一)数据挖掘初步
PART 1
PART 1
传统回归模型的困难
1.为什么一定是线性的?或某种非线性模型?
2.过分依赖于分析者的经验
3.对于非连续的离散数据难以处理
网格方法
《Science》上的文章《Detecting Novel Associations in Large Data Sets》
方法概要:用网格判断数据的集中程度,集中程度意味着是否有关联关系
方法具有一般性,即无论数据是怎样分布的,不限于特点的关联函数类型,此判断方法都是有效
方法具有等效性,计算的熵值和噪音的程度有关,跟关联的类型无关
MIC:the Maximal Information Coefficient
MINE:Maximal Information-based Nonparametric Exploration
MIC值计算
坐标平面被划分为(x,y)网格G(未必等宽),其中
在G上可以诱导出“自然概率密度函数”p(x,y),任何一个方格(box)内的概率密度函数值为这个方格所包含的样本点数量占全体的样本点的比例
计算网格划分G下mutual information值
构造特征矩阵,矩阵元素
。取遍所有可能的(x,y)网格G
。Max取遍所有可能的(x,y)对
的计算是个难点,数据科学家构造了一个近似的逼近算法以提高效率
enter link description here
在作者的网站上,可以下载MINE计算MIC的程序(Java和R)以及测试用数据集
enter link description here
MIC的性质
如果变量对x,y存在函数关系,则当样本数增加时,MIC必然趋于1
如果变量对x,y可以由参数方程所表达的曲线描画,则当样本数增加时,MIC必然趋于1
如果变量对x,y在统计意义下互相独立,则当样本数增加时,MIC趋于0
PART 2
数据挖掘:关联规则挖掘
例子:购物篮分析
名词
挖掘数据集:购物篮数据
挖掘目标:关联规则
关联规则:牛奶=>鸡蛋【支持度=2%,置信度=60%】
支持度:分析中的全部事务的2%同时购买了牛奶和鸡蛋
置信度:购买了牛奶的同志有60%也购买了鸡蛋
最小支持度阈值和最小置信度阈值:由挖掘者或领域专家设定
项集:项(商品)的集合
k-项集:k个项组成的项集
频繁项集:满足最小支持度的项集,频繁k-项集一般记为
强关联规则:满足最小支持度阈值和最小置信度阈值的规则
关联规则挖掘路线图
两步过程:找出所有频繁项集;由频繁项集产生强关联规则
算法:Apriori
例子:详见《数据挖掘:概念与技术》
用R进行购物篮分析
安装arules()
包并加载
内置Groceries数据集
> library(arules)#加载arules程序包
> data(Groceries)#调用数据文件
> inspect(Groceries)#观看数据集里的数据
> .....................省略........
>9834 {semi-finished bread,
bottled water,
soda,
bottled beer}
9835 {chicken,
tropical fruit,
other vegetables,
vinegar,
shopping bags}
利用apriori函数提取关联规则
> rules=apriori(Groceries,parameter=list(support=0.01,confidence=0.5))#support为最小支持度,confidence为最小置信度
Parameter specification:
confidence minval smax arem aval originalSupport support minlen maxlen target
0.5 0.1 1 none FALSE TRUE 0.01 1 10 rules
ext
FALSE
Algorithmic control:
filter tree heap memopt load sort verbose
0.1 TRUE TRUE FALSE TRUE 2 TRUE
apriori - find association rules with the apriori algorithm
version 4.21 (2004.05.09) (c) 1996-2004 Christian Borgelt
set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
sorting and recoding items ... [88 item(s)] done [0.00s].
creating transaction tree ... done [0.01s].
checking subsets of size 1 2 3 4 done [0.00s].
writing ... [15 rule(s)] done [0.00s].
creating S4 object ... done [0.00s].
列出关联规则
> summary(rules)#查看求得的关联规则之摘要
set of 15 rules
rule length distribution (lhs + rhs):sizes
3
15
Min. 1st Qu. Median Mean 3rd Qu. Max.
3 3 3 3 3 3
summary of quality measures:
support confidence lift
Min. :0.01007 Min. :0.5000 Min. :1.984
1st Qu.:0.01174 1st Qu.:0.5151 1st Qu.:2.036
Median :0.01230 Median :0.5245 Median :2.203
Mean :0.01316 Mean :0.5411 Mean :2.299
3rd Qu.:0.01403 3rd Qu.:0.5718 3rd Qu.:2.432
Max. :0.02227 Max. :0.5862 Max. :3.030
mining info:
data ntransactions support confidence
Groceries 9835 0.01 0.5
> inspect(rules)
lhs rhs support
1 {curd,yogurt} => {whole milk} 0.01006609
2 {other vegetables,butter} => {whole milk} 0.01148958
3 {other vegetables,domestic eggs} => {whole milk} 0.01230300
4 {yogurt,whipped/sour cream} => {whole milk} 0.01087951
5 {other vegetables,whipped/sour cream} => {whole milk} 0.01464159
6 {pip fruit,other vegetables} => {whole milk} 0.01352313
7 {citrus fruit,root vegetables} => {other vegetables} 0.01037112
8 {tropical fruit,root vegetables} => {other vegetables} 0.01230300
9 {tropical fruit,root vegetables} => {whole milk} 0.01199797
10 {tropical fruit,yogurt} => {whole milk} 0.01514997
11 {root vegetables,yogurt} => {other vegetables} 0.01291307
12 {root vegetables,yogurt} => {whole milk} 0.01453991
13 {root vegetables,rolls/buns} => {other vegetables} 0.01220132
14 {root vegetables,rolls/buns} => {whole milk} 0.01270971
15 {other vegetables,yogurt} => {whole milk} 0.02226741
confidence lift
1 0.5823529 2.279125
2 0.5736041 2.244885
3 0.5525114 2.162336
4 0.5245098 2.052747
5 0.5070423 1.984385
6 0.5175097 2.025351
7 0.5862069 3.029608
8 0.5845411 3.020999
9 0.5700483 2.230969
10 0.5173611 2.024770
11 0.5000000 2.584078
12 0.5629921 2.203354
13 0.5020921 2.594890
14 0.5230126 2.046888
15 0.5128806 2.007235
按需要筛选关联规则
> x=subset(rules,subset=rhs%in%"whole milk"&lift>=1.2)#求所需要的关联规则子集
> inspect(sort(x,by="support")[1:5])#根据支持度对求得的关联规则子集排序并查看
lhs rhs support confidence
15 {other vegetables,yogurt} => {whole milk} 0.02226741 0.5128806
10 {tropical fruit,yogurt} => {whole milk} 0.01514997 0.5173611
5 {other vegetables,whipped/sour cream} => {whole milk} 0.01464159 0.5070423
12 {root vegetables,yogurt} => {whole milk} 0.01453991 0.5629921
6 {pip fruit,other vegetables} => {whole milk} 0.01352313 0.5175097
lift
15 2.007235
10 2.024770
5 1.984385
12 2.203354
6 2.025351
其中life=P(L,R)/(P(L)P(R))是一个类似相关系数的指标。lift=1时表示L和R独立,这个数越大,越表明L和R存在在一个购物篮中不是偶然现象。
R与数据分析旧笔记(十一)数据挖掘初步的更多相关文章
- R与数据分析旧笔记(十三) 聚类初步
聚类 聚类 关键度量指标:距离 常用距离 绝对值距离 绝对值距离也称为"棋盘距离"或"城市街区距离". 欧氏(Euclide)距离 闵可夫斯基(Minkowsk ...
- R与数据分析旧笔记(五)数学分析基本
R语言的各种分布函数 rnorm(n,mean=0,sd=1)#高斯(正态) rexp(n,rate=1)#指数 rgamma(n,shape,scale=1)#γ分布 rpois(n,lambda) ...
- R与数据分析旧笔记(三)不知道取什么题目
连线图 > a=c(2,3,4,5,6) > b=c(4,7,8,9,12) > plot(a,b,type="l") 多条曲线效果 plot(rain$Toky ...
- R与数据分析旧笔记(一)基本数学函数的使用
创建向量矩阵 > x1=c(2,3,6,8) > x2=c(1,2,3,4) > a1=(1:100) > length(a1) [1] 100 > length(x1) ...
- R与数据分析旧笔记(十八完结) 因子分析
因子分析 因子分析 降维的一种方法,是主成分分析的推广和发展 是用于分析隐藏在表面现象背后的因子作用的统计模型.试图用最少的个数的不可测的公共因子的线性函数与特殊因子之和来描述原来观测的每一分量 因子 ...
- R与数据分析旧笔记(十七) 主成分分析
主成分分析 主成分分析 Pearson于1901年提出的,再由Hotelling(1933)加以发展的一种多变量统计方法 通过析取主成分显出最大的个别差异,也用来削减回归分析和聚类分析中变量的数目 可 ...
- R与数据分析旧笔记(十六) 基于密度的方法:DBSCAN
基于密度的方法:DBSCAN 基于密度的方法:DBSCAN DBSCAN=Density-Based Spatial Clustering of Applications with Noise 本算法 ...
- R与数据分析旧笔记(十五) 基于有代表性的点的技术:K中心聚类法
基于有代表性的点的技术:K中心聚类法 基于有代表性的点的技术:K中心聚类法 算法步骤 随机选择k个点作为"中心点" 计算剩余的点到这个k中心点的距离,每个点被分配到最近的中心点组成 ...
- R与数据分析旧笔记(⑨)广义线性回归模型
广义线性回归模型 广义线性回归模型 例题1 R.Norell实验 为研究高压电线对牲畜的影响,R.Norell研究小的电流对农场动物的影响.他在实验中,选择了7头,6种电击强度, 0,1,2,3,4, ...
随机推荐
- 从汇编来看i++与++i
故事背景,一个正在c语言的家伙,问我++i 和 i++的问题,我当时由于要去上课没给他说,正好今晚有空就測试了一下例如以下代码: 编译环境:VS2010 语言:C++ #include <io ...
- linux下创建用户并且限定用户主目录
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号 一方面可以帮助系统管理员对使用系统的用户进 ...
- SharePoint webpart中悬浮窗口的webconfig路径
SharePoint webpart中悬浮窗口的webconfig路径在.../_layouts/15/下.
- 关于vs启动调试报错:CS0016: 未能写入输出文件“xxxxxxxx”--“目录名称无效。”解决方法
很多人都会遇到这个错误,网友说一般这错误都是由于权限引起,我尝试按照博客写的方法,解决失败!http://www.cnblogs.com/finesite/archive/2011/01/28/194 ...
- 怎样在Eclipse中使用debug模式调试程序
最基本的操作是: 1, 首先在一个java文件中设断点,然后运行,当程序走到断点处就会转到debug视图下, 2, F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6 ...
- 【Howie玩docker】-Centos 7 docker 启动容器iptables报No chain/target/match by that name
重启了一下服务器,以前能运行的docker网络应用都不能正常开启了. 因为用的是centos7,所以猜测有可能是iptables的问题. docker start 或者run 后总是提示类似的错误: ...
- wget www.baidu.com执行流程分析
下载网页的关键函数: main.c(main) b 1394 url_parse:解析url,获取url相关信息,返回结构体 struct url 的指针,存于 url_parsed retrieve ...
- Python核心编程笔记---- print@2
print 的输出从定向问题 print 可以用’>>‘来重定向输出,下面是例子 f = open('D:/python.txt','w+') print >> f," ...
- Flex4开发笔记(与JAVA交互)
(由于本人也是第一次接触flex开发,因此将开发过程中问题记录留档) 一.数据交换过程 借助BlazeDS可以实现flex与java之间的数据交互,大体流程如下: 1.导入blazeds的文件(配置w ...
- 将String类型的数字字符转换成int
java.lang.Integer.parseInt(String) public static int parseInt(String s) throws NumberFormatException ...