(1):数据挖掘相关包的介绍

今天发现一个很不错的博客(http://www.RDataMining.com),博主致力于研究R语言在数据挖掘方面的应用,正好近期很想系统的学习一下R语言和数据挖掘的整个流程,看了这个博客的内容,心里久久不能平静。决定从今天开始,只要晚上能在11点之前把碗洗好,就花一个小时的时间学习博客上的内容,并把学习过程中记不住的信息记录下来,顺便把离英语四级的差距尽量缩小。

下面列出了可用于数据挖掘的R包和函数的集合。其中一些不是专门为了数据挖掘而开发,但数据挖掘过程中这些包能帮我们不少忙,所以也包含进来。

1、聚类

  • 常用的包: fpc,cluster,pvclust,mclust

  • 基于划分的方法: kmeans, pam, pamk, clara

  • 基于层次的方法: hclust, pvclust, agnes, diana

  • 基于模型的方法: mclust

  • 基于密度的方法: dbscan

  • 基于画图的方法: plotcluster, plot.hclust

  • 基于验证的方法: cluster.stats

2、分类

  • 常用的包:

    rpart,party,randomForest,rpartOrdinal,tree,marginTree,

    maptree,survival

  • 决策树: rpart, ctree

  • 随机森林: cforest, randomForest

  • 回归, Logistic回归, Poisson回归: glm, predict, residuals

  • 生存分析: survfit, survdiff, coxph

3、关联规则与频繁项集

  • 常用的包:

    arules:支持挖掘频繁项集,最大频繁项集,频繁闭项目集和关联规则

    DRM:回归和分类数据的重复关联模型

  • APRIORI算法,广度RST算法:apriori, drm

  • ECLAT算法: 采用等价类,RST深度搜索和集合的交集: eclat

4、序列模式

  • 常用的包: arulesSequences

  • SPADE算法: cSPADE

5、时间序列

  • 常用的包: timsac

  • 时间序列构建函数: ts

  • 成分分解: decomp, decompose, stl, tsr

6、统计

  • 常用的包: Base R, nlme

  • 方差分析: aov, anova

  • 密度分析: density

  • 假设检验:  t.test, prop.test, anova, aov

  • 线性混合模型:lme

  • 主成分分析和因子分析:princomp

7、图表

  • 条形图: barplot

  • 饼图: pie

  • 散点图: dotchart

  • 直方图: hist

  • 密度图: densityplot

  • 蜡烛图, 箱形图 boxplot

  • QQ (quantile-quantile) 图: qqnorm, qqplot, qqline

  • Bi-variate plot: coplot

  • 树: rpart

  • Parallel coordinates: parallel, paracoor, parcoord

  • 热图, contour: contour, filled.contour

  • 其他图: stripplot, sunflowerplot, interaction.plot, matplot, fourfoldplot,
    assocplot, mosaicplot

  • 保存的图表格式: pdf, postscript, win.metafile, jpeg, bmp, png

8、数据操作

  • 缺失值:na.omit

  • 变量标准化:scale

  • 变量转置:t

  • 抽样:sample

  • 堆栈:stack, unstack

  • 其他:aggregate, merge, reshape

9、与数据挖掘软件Weka做接口

  • RWeka: 通过这个接口,可以在R中使用Weka的所有算法。

菜已经买回来,锅也准备好了,明天晚上接着学习不同的菜怎么放入锅里( 数据的导入与导出)。

(2):数据的导入与导出

晚主要学习如何把几种常用的数据格式导入到R中进行处理,并简单介绍如何把R中的数据保存为R数据格式和csv文件。

1、保存和加载R的数据(与R.data的交互:save()函数和load()函数)
a <- 1:10
save(a, file = "data/dumData.Rdata")  # data文件为当前工作目录下的文件,必须存在
rm(a)
load("data/dumData.Rdata")
print(a)

2、导入和加载.csv文件(write.csv()函数和read.csv()函数)
var1 <- 1:5
var2 <- (1:5) / 10
var3 <- c("R", "and", "Data Mining", "Examples", "Case Studies")
a <- data.frame(var1, var2, var3)
names(a) <- c("VariableInt", "VariableReal", "VariableChar")
write.csv(a, "data/dummmyData.csv", row.names = FALSE)
b <- read.csv("data/dummmyData.csv")

3、导入SPSS/SAS/Matlab等数据集
# 导入spss的sav格式数据则要用到foreign扩展包,加载后直接用read.spss读取sav文件
library(foreign)
mydata=read.spss('d:/test.sav')
# 上面的函数在很多情况下没能将sav文件中的附加信息导进来,例如数据的label,
# 那么建议用Hmisc扩展包的spss.get函数,效果会更好一些。
library(Hmisc)
data=spss.get("D:/test.sav")

4、导入数据库中的数据
library(RODBC)
Connection <- odbcConnect(dsn="servername",uid="userid",pwd="******")
Query <- "SELECT * FROM lib.table WHERE ..."
# Query <- readChar("data/myQuery.sql", nchars=99999)     或者选择从SQL文件中读入语句
myData <- sqlQuery(Connection, Query, errors=TRUE)
odbcCloseAll()

5、导入Excel数据
library(RODBC)
channel=odbcConnectExcel("d:/test.xls")
mydata=sqlFetch(channel,'Sheet1')      # 如果是Excel2007格式数据则要换一个函数odbcConnectExcel2007

把数据导入R以后,紧跟着该对数据进行描述性分析了,明天晚上再继续拉~水饺去了~

(3):数据探索

在开始一个数据分析项目之前,都非常有必要了解一下我们的数据,今天晚上主要整理数据探索方面一些常用的代码:

一、先看看数据

我们首先要先了解一下数据的尺寸和结构:

dim(iris)         # 了解数据集的维度,有多少行多少列?

names(iris)       # 数据有哪些列?

str(iris)         # 数据的结构如何?

attributes(iris)  # 数据的列名、行名和数据结构

然后看看数据集前几行和后几行长成什么样子:

iris[1:5, ]       # 看看数据的前5行

head(iris)        # 看看数据的前6行

tail(iris)        # 看看数据的最后6行

iris[1:10, "Sepal.Length"]      # Sepal.Length变量的前10个取值

iris$Sepal.Length[1:10]         # 用另外一种形式取出

二、看看单个变量的情况

summary(iris)     # 看看单个变量的关键数据:最小值、25%分位数、中位数、均值、75%分位数、最大值

quantile(iris$Sepal.Length)     # 单个变量的1%、25%、50%、75%、100%分位数

quantile(iris$Sepal.Length, c(0.1, 0.3, 0.65)) # 指定分位点对应的分位数

mean(),median(),range()     # 返回均值、中位数和数据的范围

对于连续变量:

var()                               # 返回变量的方差

hist(iris$Sepal.Length)             # 画出变量的直方图,看看变量的分布情况

plot(density(iris$Sepal.Length))    # 画出变量的密度函数图

对于类别变量:

table(iris$Species)                 # 统计每个类别的计数,了解一下各个类别的分布

pie(table(iris$Species))            # 画出每个类别的占比饼图

barplot(table(iris$Species))        # 画出柱状图

三、观察多个变量之间的关系

首先看看变量之间的相关性:

cov(iris[ , 1:4])     # 计算变量之间的协方差矩阵

cor(iris[ , 1:4])     # 计算变量之间的相关系数矩阵

然后研究一些在不同的目标变量水平下,某变量的基本情况:

aggregate(Sepal.Length~Spacies, summary, data=iris) # 对于Sepal.Length变量,在每个Species水平上执行summary计算

boxplot(Sepal.Length~Species, data=iris)    # 针对每个Species水平绘制Sepal.Length的盒形图

with(iris, plot(Sepal.Length, Sepal.Width, col=Species, pch=as.numeric(Species))) #针对每个Species水平绘制两个变量的散点图,并用颜色和点状区分

plot(jitter(iris$Sepal.Length), jitter(iris$Sepal.Width))    #标示散点图中的重叠图

接着用图形的方式研究变量之间的关系:

pairs(iris)         # 绘制任意两个矩阵之间的散点图,发现变量之间的相关性

四、看看其他方面

三维散点图(scatterplot3d包):

library(scatterplot3d)
scatterplot3d(iris$Petal.Width, iris$Sepal.Length, iris$Sepal.Width)

构造相似性矩阵,用热图可视化样本之间的相似性:

distMatrix <- as.matrix(dist(iris[,1:4]))
heatmap(distMatrix)

以Sepal.Length和Sepal.Width为横纵坐标,分水平,以Petal.Width大小为颜色,探索数据之间的关系:

library(lattice)
levelplot(Petal.Width~Sepal.Length*Sepal.Width, iris, cuts=9,col.regions=grey.colors(10)[10:1])

以等高线的形式探索数据的关系:

library(lattice)

filled.contour(volcano, color=terrain.colors, asp=1,plot.axes=contour(volcano, add=T))

画一顶帽子:

persp(volcano, theta = 25, phi = 30, expand = 0.5, col = "lightblue")

平面坐标可视化,研究不同类别变量之间的差异:

library(MASS)
parcoord(iris[1:4], col=iris$Species)

还可以用另外一个函数实现

library(lattice)
parallelplot(~iris[1:4] | Species, data=iris)

最后介绍一下ggplot2这个包,非常强悍,后续专门找一个晚上重点学习,一个简单的例子:

根据Species的不同类别,绘制Sepal.Length和Sepal.Width的散点图。

library(ggplot2)
qplot(Sepal.Length, Sepal.Width, data=iris, facets=Species ~.)

五、保存图片

# save as a PDF file
pdf("myPlot.pdf")
x <- 1:50
plot(x, log(x))
graphics.off()
# Save as a postscript file(PS文件)
postscript("myPlot2.ps")
x <- -20:20
plot(x, x^2)
graphics.off()

数据探索的学习就到这里咯,还有半个小时的时间,再整理一下决策树,哈哈,下回见啦~

全文转载自iData的学习笔记http://datapig.diandian.com/post/2012-06-13/R-Datamining01

感谢作者的分享!

转载于:https://blog.51cto.com/psnx168/1386091

【转载】R语言与数据挖掘学习笔记相关推荐

  1. R语言与数据挖掘学习笔记(常用的包)

    转载自:http://www.52analysis.com/R/ 下面列出了可用于数据挖掘的R包和函数的集合.其中一些不是专门为了数据挖掘而开发,但数据挖掘过程中这些包能帮我们不少忙,所以也包含进来. ...

  2. R语言与机器学习学习笔记(分类算法)

    转载自:http://www.itongji.cn/article/0P534092014.html 人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经 ...

  3. 语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)

    学习者:骆栢维 题目来源:生信基石之R语言 中级10 个题目:http://www.bio-info-trainee.com/3750.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...

  4. R plot图片背景设置为透明_学习健明老师发布的R语言练习题的学习笔记(一)...

    学习者:骆栢维 题目来源:生信基石之R语言 初级10 个题目:http://www.bio-info-trainee.com/3793.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...

  5. R语言dplyr包学习笔记(吐血整理宇宙无敌详细版)

    出处:AI入门学习 dplyr包主要用于数据清洗和整理,主要功能有:行选择.列选择.统计汇总.窗口函数.数据框交集等是非常高效.友好的数据处理包,学清楚了,基本上数据能随意玩弄,对的,随意玩弄,简直大 ...

  6. R语言与点估计学习笔记(矩估计与MLE)

    众所周知,R语言是个不错的统计软件.今天分享一下利用R语言做点估计的内容.主要有:矩估计.极大似然估计.EM算法.最小二乘估计.刀切法(Jackknife).自助法(Bootstrap)的相关内容. ...

  7. R语言基础知识-学习笔记汇总

    B站课程:生信必备技巧之R语言基础教程全集的代码笔记 1.R语言包安装 rm(list = ls()) # 设置镜像: options()$repos options()$BioC_mirror #o ...

  8. R语言入门(学习笔记)

    文章目录 软件安装及更新 安装R语言 安装Rstudio(集成开发环境,在安装R语言后再安装) R版本更新 软件操作 窗口简介 界面设置 编码转换 快捷键 基础语法 注释 赋值 清除 帮助文档 R包 ...

  9. R语言与点估计学习笔记(刀切法与最小二乘估计)

    一.       刀切法(jackknife) 刀切法的提出,是基于点估计准则无偏性.刀切法的作用就是不断地压缩偏差.但需要指出的是缩小偏差并不是一个好的办法,因为偏差趋于0时,均方误差会变得十分大. ...

最新文章

  1. 人大团队研究:面向文本生成,预训练模型进展梳理
  2. SharePoint 2013的100个新功能之网站管理(二)
  3. SQL:使用 CASE
  4. 为什么梯度的方向与等高线切线方向垂直?
  5. 白鹭 修改底层 egret.js 库后再次编译 成 新的库
  6. Linux标准目录配置(转自鸟哥)
  7. hive优化--增加减少map数
  8. 7-2 有理数比较 (10 分)
  9. FullCalendar - 开源的多功能 JavaScript 日历插件
  10. python学习日常-----作业(4)
  11. 解决MySql保存数据java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x91\x87\xE5\x91...‘
  12. 初中英语知识水平测试软件,美国初中生英文水平测试!百个单词检测,看看你认识几个...
  13. 编译php7.1.4出现 undefined reference to isfinite
  14. Python 课程学习笔记(5)列表 [ ] lst
  15. 飞腾FT2000/4 CPU UEFI开发 固件配置
  16. 商标变更的重要性不及时变更的损失
  17. CodeForces 869A The Artful Expedient
  18. jenkins API 使用postman调用
  19. 谷歌浏览器点击任意部分都会出现黑色光标
  20. 美国CPSIA关于玩具和儿童产品的测试要求,CPC证书要求

热门文章

  1. 大通证券分析报告(0608)
  2. 人类发明各种计算机的资料,电脑的发明:人类工具的进化
  3. oracle数据库扩大表空间,Oracle数据库手工扩大表空间
  4. $.ajax + blod通用excel文件下载
  5. [Python3] 爬取百度图片到本地
  6. 网站需要怎么优化比较好(网站优化有哪些技巧)
  7. 【软件设计师考试32小时】1. 计算机系统知识
  8. 实验一 基本 UI 界面设计
  9. 总结:进程和线程的区别
  10. 不用电脑怎么恢复微信删除的聊天记录的方法