R语言学习20150414
2015-04-14 14:48
309 查看
2015/4/14
今天编写R语言程序,新学到的要点有:
1 (kmeans.result=kmeans(data,3))
在代码外面加上括号,就可以直接运行出对象的结果
2 在R中写代码,要各种注意大小写的问题,例如赋予空值,必须是NULL,尤其在引用数据行列名的时候更要注意。随时检查改变后的数据
3 plot 的用法
plot(iris2[c("Petal.Length","Sepal.Width")],col=kmeanss.result$cluster)
可以直接按照列名选择数据,并且颜色可以按照某个对象分别着色
还可以注意到,在矩阵的列选择中,如果采用x[,2] 选择出的是第二列向量,如果采用x[2]选择出的是只包含第二列的数据框
4 聚类中的kmeans算法
kmeanss.result<-kmeans(iris2,3)
plot(iris2[c("Petal.Length","Sepal.Width")],col=kmeanss.result$cluster)
points(kmeanss.result$centers[,c("Petal.Length","Sepal.Width")],col=3:5,pch=4,cex=5) #后两个参数分别定义,点的形状,大小
table(iris$Species,kmeanss.result$cluster)
经典的做法,聚类出结构-----在一个图中显示出聚类结果----画出类的中心点----列表对比聚类的结果和原始的标签
5 聚类中的层次聚类法
idx=sample(1:dim(iris)[1],40)
irissam=iris[idx,]
irissam$Species=NULL
hc=hclust(dist(irissam),method="ave")
plot(hc,hang=-1,labels=iris$Species[idx])
rect.hclust(hc,k=5)
groups=cutree(hc,k=3)
核心的代码是hclust(dist())
精妙之处:在plot中,加入hang即设定悬定在哪个纵坐标上比较好,同时如果已经有分类标签的话,也可以作为labels来设定,更好对比
rect.hclust 在层次聚类图中画方框,区别出类别来
groups函数则可以提取出类别数(层次聚类法中竟然木有像 kmeans&cluster 那样的参数!!!)
6 DBSCAN 基于密度聚类,这个方法可以标记出这种方法识别出的异常点
library(fpc)
iris2=iris[-5]
ds=dbscan(iris2,eps=0.42,MinPts=5) #这里如何选择 eps 和MinPts是个大学问)
#维数较多时,plot 负责画出所有变量两两之间的关系
plot(ds,iris2)
#只画出固定的两个维度
plot(ds,iris2[c(1,4)])
今天编写R语言程序,新学到的要点有:
1 (kmeans.result=kmeans(data,3))
在代码外面加上括号,就可以直接运行出对象的结果
2 在R中写代码,要各种注意大小写的问题,例如赋予空值,必须是NULL,尤其在引用数据行列名的时候更要注意。随时检查改变后的数据
3 plot 的用法
plot(iris2[c("Petal.Length","Sepal.Width")],col=kmeanss.result$cluster)
可以直接按照列名选择数据,并且颜色可以按照某个对象分别着色
还可以注意到,在矩阵的列选择中,如果采用x[,2] 选择出的是第二列向量,如果采用x[2]选择出的是只包含第二列的数据框
4 聚类中的kmeans算法
kmeanss.result<-kmeans(iris2,3)
plot(iris2[c("Petal.Length","Sepal.Width")],col=kmeanss.result$cluster)
points(kmeanss.result$centers[,c("Petal.Length","Sepal.Width")],col=3:5,pch=4,cex=5) #后两个参数分别定义,点的形状,大小
table(iris$Species,kmeanss.result$cluster)
经典的做法,聚类出结构-----在一个图中显示出聚类结果----画出类的中心点----列表对比聚类的结果和原始的标签
5 聚类中的层次聚类法
idx=sample(1:dim(iris)[1],40)
irissam=iris[idx,]
irissam$Species=NULL
hc=hclust(dist(irissam),method="ave")
plot(hc,hang=-1,labels=iris$Species[idx])
rect.hclust(hc,k=5)
groups=cutree(hc,k=3)
核心的代码是hclust(dist())
精妙之处:在plot中,加入hang即设定悬定在哪个纵坐标上比较好,同时如果已经有分类标签的话,也可以作为labels来设定,更好对比
rect.hclust 在层次聚类图中画方框,区别出类别来
groups函数则可以提取出类别数(层次聚类法中竟然木有像 kmeans&cluster 那样的参数!!!)
6 DBSCAN 基于密度聚类,这个方法可以标记出这种方法识别出的异常点
library(fpc)
iris2=iris[-5]
ds=dbscan(iris2,eps=0.42,MinPts=5) #这里如何选择 eps 和MinPts是个大学问)
#维数较多时,plot 负责画出所有变量两两之间的关系
plot(ds,iris2)
#只画出固定的两个维度
plot(ds,iris2[c(1,4)])
相关文章推荐
- 前言--R语言利用jiebaR进行词频分析----以一个项目来开始学习R吧
- R语言学习笔记 - 创建数据集
- R语言书籍的学习路线图
- R语言与机器学习中的回归方法学习笔记
- R语言-学习笔记
- R语言屌丝成长之路——学习路线
- R语言学习
- 如何高效率学习R?[转自微信:R语言中文社区]
- R语言学习笔记3--描述统计
- R语言学习笔记:方差分析
- R语言学习笔记之str函数
- R语言学习笔记之apply、lapply、sapply、mapply、tapply函数详解
- R语言学习2数据集
- R语言学习笔记之transform函数
- 独家 | 手把手教你学习R语言(附资源链接)
- 【R语言学习笔记】初识(三)
- 【R语言学习笔记】一、 数据的读取与保存
- R语言与Markov Chain Monte Carlo(MCMC)方法学习笔记(1)
- R语言学习笔记
- R语言学习笔记:向量化