《R语言与数据挖掘最佳实践和经典案例》阅读摘要
2015-05-24 10:42
579 查看
《R语言与数据挖掘最佳实践和经典案例》阅读摘要
Fly or die.—–sissp
一、简介
数据挖掘统计学、机器学习、信息检索、模式识别、生物信息学
R CRAN(cran.r-project.org)
《An introduction to R》
《R language definition》
数据集
Iris数据集
Bodyfat数据集
二者都包含在R包中
二、数据的导入与导出
R数据的保存与加载Save(a,file=“./data/dumData.Rdata”)
Rm(a)
load(“./data/dumData.Rdata”)
Print(a)
CSV文件的导入与导出
从SAS中导入数据
通过JDBC导入与导出数据
三、数据探索
查看数据,以iris数据集为例维度,dim(iris)
名称,names(iris)
结构,str(iris)
属性,attributes(iris)
特定行数据,iris[1:5,],head(iris),tail(iris)
探索单个变量
单个数值型变量的分布情况可以使用函数summary()进行查看,分别为:最小值、最大值、平均值、中位数、第一四分位数、第三四分位数
平均值、中位数和极差可以分别使用函数mean()、median()、range()获取,四分位数和百分位数可以使用quantile()函数
三、数据探索 探索单个变量(续)
方差,var()分布直方图,hist()
密度估计值,density()
频数,table()
饼图,pie()
条形图,barplot()
探索多个变量
协方差,cov()
相关系数,cor()
Aggregate()函数,计算统计数据
箱线图,boxplot()
散布图,plot(),使用with函数后可以省去iris$前缀s
三、数据探索
更多探索3D散布图,scatterplot3d包,Scatterplot3d()
交互3D散布图,rgl包,plot3d()
Lattice包
Graphics包
Ggplot2包
将图表保存到文件中
Bmp() jpeg() png() ptiff() pdf() postscript()
四、决策树与随机森林
Party包构建决策树以iris数据集为例,采用ctree()函数建立决策树
Predictt()函数进行新数据的预测
rpart包构建决策树
函数rpart()构建决策树,用bodyfat数据集为例
函数predict()对新数据进行预测
随机森林
randomForest包建立预测模型,两个限制:不能处理带缺失值的数据,分类属性水平划分数量最大值为32,
以iris数据集为例,训练一个随机森林,变量的重要性可以用函数importance()和varlmpPlot()获得,最后使用测试集对已经构建好的随机森林进行测试
五、回归分析
线性分析 lm()利用预测变量的一个线性组合函数来预测响应变量的统计分析方法
利用函数lm()做回归分析
画出散点图,分析统计量,建立回归模型
逻辑回归 glm()
使用数据拟合一条逻辑曲线来预测事件发生的概率,可以由函数glm()建立逻辑回归(参数需要设置)
广义线性回归 glm()
通过使用一个连接函数关联线性模型与响应变量,并且考虑所有度量偏差对预测值的影响来建立线性回归
非线性回归 nls()
六、聚类
K-means聚类将iris数据集移除species属性,再调用函数kmeans(),将聚类结果保存,绘制簇和中心
K-medoids聚类
使用函数pam()和pamk()进行聚类
与k-means聚类区别在于:k-means聚类选择簇中心表示聚类簇,而k-medoids聚类选择靠近簇中心的对象表示聚类簇,在含有离群点的情况下,k-medoids聚类的鲁棒性更好
基于中心点的划分PAM算法是k-medoids的经典算法,CLARA算法是对PAM算法的改进,当处理较大的数据集时,CLARA算法优于PAM算法,cluster包的pam(),clare()分别实现上述两个算法,fpc包提供函数pamk(),不需要给出聚类簇的个数根据最优平均阴影宽度进行划分
六、聚类
层次聚类使用函数hclust()进行层次聚类
基于密度的聚类
基本思想是将密度相连的对象划分到同一个簇,优势在于可以发现任意开关的簇,并且对噪声数据不敏感,相比之下k-means算法更倾向于发现球状的且大小相近的簇
Fpc包中的DBSCAN算法为数值型数据提供了基于密度的聚类
七、离群点检测
单变量的离群点检测通过函数boxplot.stats()实现,函数的返回结果中有一个‘out’的组件存储检测出的离群点
局部离群点因子检测-LOF
识别基于密度的局部离群点算法
缺点是只适用于数值型数据
函数lofactor()使用LOF算法计算局部离群点因子,该函数由DMwR包和dprep包提供
用聚类方法进行离群点检测
将数据进行划分,将那些没有被划分到任何簇的数据点视为离群点
时间序列数据的离群点检测
先使用函数stl()根据稳健回归对时间序列数据进行分解,然后进行离群点检测
基于局部加权的季节性趋势分解算法STL
八、时间序列分析与挖掘
R中的时间序列数据(构造)时间序列分解
数据集AirPassengers,使用函数decompose()将数据集分解成不同的成分
一些包,如stats包中的stl,timsac包中的decomp函数,以及ast包中的函数tsr
时间序列预测
根据历史数据来预测未来事件,如基于股票过去的形势来预测开盘价
两个常用的时间序列预测模型为自回归移动平均模型ARMA和自回归综合移动平均模型ARIMA
八、时间序列分析与挖掘
时间序列聚类动态时间规整DTW,找出两个时间序列之间的最优配置,R中的dtw包提供了实现
合成控制图(?)的时间序列数据
基于欧氏距离的层次聚类
基于DTW距离的层次聚类
时间序列分类
特征提取技术有奇异值分解SVD,离散傅里叶变换DFT,离散小波变换DWT,分段积累挖法PAA,连续重要点PIP,分段线性表示,以及符号表示
基于原始数据的分类,party包中的ctree()函数
基于特征提取的分类,离散小波变换(DWT)提取特征,然后建立分类模型,哈尔小波变换和离散傅里叶变换是常用的特征提取技术,,wavelets包用于实现离散小波变换
K-NN分类,找出与新实例最邻近的k个对象,再根据投票机制给该实例打上类标号,使用Arya和Mount’s ANN库
九、关联规则
基本概念关联规则表示两个项集之间的关联度或相关性,形式为A -> B,常见的度量是支持度、置信度和提升度,公式如下:
九、关联规则
Titanic数据集包含在datasets包中的4维数据表
关联规则挖掘
一个经典算法是APRIORI,一种广度优先的逐层搜索算法,通过计数找到频繁项集,再从中推导出关联规则,Arulus包中的apriori函数实现
另一个算法是ECLAT算法,不需要计数,依据等价、深度优先搜索和集合交找到频繁项集,Arules包中的eclat()函数实现
在关联规则挖掘中,一个常见的问题是挖掘出来的规则中有很多是没有意义的,调节设置的参数值?
消除冗余
一般来说,当一条规则是另一条规则的超集时,前者和后者的提升值相等,或者前者的提升度更小,被认定为冗余规则
解释规则
关联规则的可视化
常见的有散布图、泡泡图、有向图、平行坐标图,示例可以从CRAN上的arulesViz包中获取
十、文本挖掘
Twitter的文本检索TwitterR包可以抓取Twitter上的推文(或XML包)
或者使用rdmTweets.Rdata数据集
转换文本
将推文转换为数据框,然后转换为一个语料库
转换函数:tm_map()、asPlainTextDocument()、removeNumbers()、removePunctuation()、removeWords()、stemDocument()以及stripWwitespace()、removeURL()等
十、文本挖掘
提取词干可以通过snowball词干提取器来完成,需要用到Snowball、Rweka、rJava和Rwekajars包
词干补笔:stemCompletion()函数
建立词项-文档矩阵(tm包?)
TermDocumentMatrix()对语料库建立矩阵
频繁词项与关联
findFreqTerms()找出出现次数不少于10次的频项
findAssocs()找出关联度最高的词项
词云,wordcloud包
词项聚类,推文聚类
方法与第6章聚类类似
使用层次聚类,k-means和k-medoids算法
十一、社交网络分析
igrahp包,第10章中使用的twitter文本词项网络
推文网络
双模式网络
三个案例
房价指数的分析与预测客户回复预测与效益最大化
内存受限的大数据预测模型
个人总结
书中列出了R语言和常见数据挖掘结合实例,在每一章后有延伸阅读的材料,给出了相关程序包和一些介绍的材料的下载地址;使用R语言的优点在于R包数量多,已实现算法的集成,简化开发过程。R语言可以简化实现数据挖掘算法和结果呈现,常用的算法都可以找到R包的支持,结果可视化呈现也是R语言的一大优势;
与大数据结合,因为R语言本身不具备大数据分析功能,可以采用先抽样统计建模、再对进行实际应用部署;另一种思路是借助现有的rhadoop、rhbase等包应用。
相关文章推荐
- 数据分析与挖掘 - R语言:贝叶斯分类算法(案例三)
- 利用R语言实现支持向量机(SVM)数据挖掘案例
- 数据专家最佳实践:数据挖掘与运维分析
- 数据可视化之美:经典案例与实践解析
- 【数据挖掘案例实践】Loan Status
- 数据挖掘经典案例
- 数据可视化之美:经典案例与实践解析
- 数据可视化之美:经典案例与实践解析
- 数据挖掘经典案例
- ANT 十五大最佳实践经典案例分析
- 硬菜点播台 | MySQL阿里实践经典案例之参数调优最佳实践
- [置顶] 基于R语言利用QQ群进行数据挖掘案例整理
- 领悟Java编程思想:经典案例源代码最佳实践
- 数据分析与挖掘 - R语言:贝叶斯分类算法(案例一)
- 数据挖掘 你必须知道的32个经典案例(电子书)
- 数据分析与挖掘 - R语言:贝叶斯分类算法(案例二)
- 【TOP100】100个中国大数据应用最佳实践案例—为您打开万亿元大数据产业的财富之门
- 数据挖掘十大经典算法
- 数据管理的5项最佳实践