R语言 样本相似性可视化

目录

一.轮廓图和雷达图

1.轮廓图

 2.雷达图

 二.星图和脸谱图

1.星图

 2.脸谱图

三.聚类图和热图 

1.聚类图

 2.热图


一.轮廓图和雷达图

1.轮廓图

轮廓图(outline plot)也称平行坐标图或多线图

用X轴表示各样本,用Y轴表示每个样本的多个变量的数值(X轴和Y轴可以互换),将同一样本在不同变量上的观测值用折线连接起来

观察轮廓图中各折线的形状及其排列方式,可以比较各样本在多个变量上取值的相似性及差异

# 图1 31个地区8项消费支出(元)的轮廓图
library(DescTools)
data6_1<-read.csv("./mydata/chap06/data6_1.csv")
head(data6_1)

    地区 区域划分 三大地带 食品烟酒   衣着    居住 生活用品及服务 交通通信
1   北京     华北 东部地带   7548.9 2238.3 12295.0         2492.4   5034.0
2   天津     华北 东部地带   8647.0 1944.8  5922.4         1655.5   3744.5
3   河北     华北 东部地带   3912.8 1173.5  3679.4         1066.2   2290.3
4   山西     华北 中部地带   3324.8 1206.0  2933.5          761.0   1884.0
5 内蒙古     华北 西部地带   5205.3 1866.2  3324.0         1199.9   2914.9
6   辽宁     东北 东部地带   5605.4 1671.6  3732.5         1191.7   3088.4
  教育文化娱乐 医疗保健 其他用品及服务
1       3916.7   2899.7         1000.4
2       2691.5   2390.0          845.6
3       1578.3   1396.3          340.1
4       1879.3   1359.7          316.1
5       2227.8   1653.8          553.8
6       2534.5   1999.9          639.3 

mat<-as.matrix(data6_1[,4:11]);rownames(mat)=data6_1[,1] # 将数据框转换成矩阵
par(mai=c(0.7,0.7,0.1,0.1),cex=0.9)
PlotLinesA(t(mat),xlab="消费项目",ylab="支出金额",args.legend=NA,
           col=rainbow(31),pch=21,pch.col=1,pch.bg="white",pch.cex=1)
legend(x="topright",legend=data6_1[,1],lty=1,
       col=rainbow(31),box.col="grey80",inset=0.01,ncol=4,cex=0.8)

# 图2 按区域分组的31个地区8项消费支出的轮廓图
library("ggiraphExtra")
require(ggplot2)

ggPair(data6_1,aes(color=区域划分))+               # 按区域划分因子分组
  theme(axis.text=element_text(size=9),              # 设置坐标轴字体大小
        # legend.position=c(0.6,0.87),                 # 设置图例位置
        legend.direction="horizontal",               # 图例水平排列
        legend.text=element_text(size="7"),          # 设置图例字体大小 
        axis.text.y=element_text(color = 'white'))    

# 图3 按三大地带分组的31个地区8项消费支出的轮廓图
ggPair(data6_1,aes(color=三大地带))+               # 按三大地带分组
  theme(axis.text=element_text(size=7),              # 设置坐标轴字体大小
        # legend.position=c(0.8,0.8),                     # 设置图例位置
        legend.direction="vertical",                    # 图例垂直排列
        legend.text=element_text(size="7"),          # 设置图例字体大小
        axis.text.y=element_text(color = 'white'))            

 2.雷达图

雷达图(radar chart)也称为蜘蛛图(spider chart),它是从一个点出发,每个变量用一条射线表示,P个变量形成P条射线(P个坐标轴),每个样本在P个变量上的取值连接成线,即围成一个区域,多个样本围成多个区域,就是雷达图

P个变量的计量单位可能不同,数值的量级往往差异很大,每条坐标轴的刻度需要根据每个变量单独确定,因此,不同坐标轴的刻度是不可比的

利用雷达图也可以研究多个样本之间的相似程度

data6_1<-read.csv("./mydata/chap06/data6_1.csv")
head(data6_1)

    地区 区域划分 三大地带 食品烟酒   衣着    居住 生活用品及服务 交通通信
1   北京     华北 东部地带   7548.9 2238.3 12295.0         2492.4   5034.0
2   天津     华北 东部地带   8647.0 1944.8  5922.4         1655.5   3744.5
3   河北     华北 东部地带   3912.8 1173.5  3679.4         1066.2   2290.3
4   山西     华北 中部地带   3324.8 1206.0  2933.5          761.0   1884.0
5 内蒙古     华北 西部地带   5205.3 1866.2  3324.0         1199.9   2914.9
6   辽宁     东北 东部地带   5605.4 1671.6  3732.5         1191.7   3088.4
  教育文化娱乐 医疗保健 其他用品及服务
1       3916.7   2899.7         1000.4
2       2691.5   2390.0          845.6
3       1578.3   1396.3          340.1
4       1879.3   1359.7          316.1
5       2227.8   1653.8          553.8
6       2534.5   1999.9          639.3 

library(fmsb)

par(mai=c(0.2,0.2,0.2,0.2),cex=0.7)

d<-data6_1[c(1,2,9),]                      # 选出北京、天津和上海三个地区
head(d)

   地区 区域划分 三大地带 食品烟酒   衣着    居住
1 北京     华北 东部地带   7548.9 2238.3 12295.0
2 天津     华北 东部地带   8647.0 1944.8  5922.4
9 上海     华东 东部地带  10005.9 1733.4 13708.7
  生活用品及服务 交通通信 教育文化娱乐 医疗保健  其他用品及服务
1         2492.4   5034.0       3916.7   2899.7               1000.4
2         1655.5   3744.5       2691.5   2390.0                 845.6

9         1824.9   4057.7       4685.9   2602.1                  1173.3 

# 图4 北京、天津和上海8项消费支出的雷达图

labels=c("食品烟酒","衣着","居住","生活用品及服务","交通通信","教育文化娱乐","医疗保健","其他用品及服务")
cols<-c("green2","red2","blue2")
pfcol<-c("lightgreen","red","lightblue")
radarchart(d[,4:11],vlabels=labels,maxmin=FALSE,seg=4,
           axistype=2,plty=c(1,2,6),plwd=1,pcol=cols,
           pdensity=c(30,60,90),pangle=c(90,90,160),
           palcex=1.1,pfcol=pfcol)
legend(x="topleft",legend=d[,1],lty=c(1,2,6),col=pfcol,fill=pfcol,text.width=0.2,inset=0.02,cex=0.9,box.col="grey80")              #添加图例
box(col="grey80")                       #添加边框

 

# 图5 尺度缩放后的31个地区8项消费支出的雷达图
library(ggiraphExtra)

ggRadar(data=data6_1,rescale=TRUE,aes(group=地区),alpha=0,size=1)+# 按地区分组
  theme(axis.text=element_text(size=9),                  # 设置坐标轴字体大小
        legend.position="right",                          # 设置图例位置
        legend.text=element_text(size="8"))               # 设置图例字体大小

# 图6 按三大地带分组的8项消费支出的雷达图

ggRadar(data=data6_1,rescale=FALSE,aes(group=三大地带),alpha=0.2,size=2)+
  # 按三大地带分组,不对时间做标准化
  theme(axis.text=element_text(size=9),              # 设置坐标轴字体大小
        legend.position="right",                          # 设置图例位置
        legend.text=element_text(size="9"))           # 设置图例字体大小

# 图7 按区域划分分面的8项消费支出的雷达图

ggRadar(data=data6_1,aes(group=区域划分,facet=区域划分),alpha=0.3,size=2,rescale=FALSE)+                       # 按区域划分分面
  theme(axis.text=element_text(size=7),    # 设置坐标轴字体大小
        legend.text=element_text(size="8")) # 设置图例字体大小

 二.星图和脸谱图

1.星图

星图(star plot)也被称为雷达图,它用P个变量将圆P等分,并将P个半径与圆心连接,再将一个样本的P个变量的取值连接成一个P边形,n个样本形成n个独立的P边形,即为星图

利用星图可根据n个P边形比较n个样本的相似性。

绘制星图时,因各样本的计量单位可能不同,或不同变量的数值差异可能很大,因此需要先对变量做标准化处理,之后再绘制星图

data6_1<-read.csv("./mydata/chap06/data6_1.csv")
head(6_1)

    地区 区域划分 三大地带 食品烟酒   衣着    居住 生活用品及服务 交通通信
1   北京     华北 东部地带   7548.9 2238.3 12295.0         2492.4   5034.0
2   天津     华北 东部地带   8647.0 1944.8  5922.4         1655.5   3744.5
3   河北     华北 东部地带   3912.8 1173.5  3679.4         1066.2   2290.3
4   山西     华北 中部地带   3324.8 1206.0  2933.5          761.0   1884.0
5 内蒙古     华北 西部地带   5205.3 1866.2  3324.0         1199.9   2914.9
6   辽宁     东北 东部地带   5605.4 1671.6  3732.5         1191.7   3088.4
  教育文化娱乐 医疗保健 其他用品及服务
1       3916.7   2899.7         1000.4
2       2691.5   2390.0          845.6
3       1578.3   1396.3          340.1
4       1879.3   1359.7          316.1
5       2227.8   1653.8          553.8
6       2534.5   1999.9          639.3 

# 图8 31个地区8项消费支出的星图

d<-data6_1[-c(2,3)]
matrix6_1<-as.matrix(d[,2:9]);rownames(matrix6_1)=d[,1]  # 将data6_1转化成矩阵
stars(matrix6_1,
      full=TRUE,                                # 绘制出满圆
      scale=TRUE,                               # 将数据缩放到[0,1]的范围。
      len=1,                                    # 设置半径或线段长度的比例
      draw.segments=TRUE,key.loc=c(10.5,1.8,5), # 绘制线段图,并设置位置
      mar=c(0.5,0.1,0.1,0.1),                   # 设置图形边界
      cex=0.7)                                  # 设置标签字体大小

 

# 图9 31个地区8项消费支出的半圆太阳图
stars(matrix6_1,
      full=FALSE,                                # 绘制出满圆
      scale=TRUE,                               # 将数据缩放到[0,1]的范围。
      len=1,                                    # 设置半径或线段长度的比例
      draw.segments=TRUE,key.loc=c(10.5,1.8,5), # 绘制线段图,并设置位置
      mar=c(0.5,0.1,0.1,0.1),                   # 设置图形边界
      cex=0.7)                                  # 设置标签字体大小

# 图10 31个地区8项消费支出的太阳图
stars(mat,
      full = T,
      scale = T,
      nrow = 5,
      len = 1,
      draw.segments = F,key.loc=c(13.2,2,5),
      col.stars = rainbow(31),
      frame.plot = T,
      mar = c(0.5,0.1,0.1,0.1),
      cex=0.6)

 2.脸谱图

脸谱图(faces plot)由美国统计学家Chernoff(1973)首先提出,也称为Chernoff脸谱(Chernoff faces)

脸谱图将P个变量(P个维度的数据)用人脸部位的形状或大小来表征

通过对脸谱的分析,可根据P个变量对样本进行归类或比较研究

按照Chernoff提出的画法 ,由15个变量决定脸部的特征 ,若实际变量更多,多出的将被忽略;若实际变量较少,变量将被重复使用

# 图11 31个地区8项消费支出的脸谱图
library(aplpack)
data6_1<-read.csv("C:/mydata/chap06/data6_1.csv")

d<-data6_1[-c(2,3)]
matrix6_1<-as.matrix(d[,2:9]);rownames(matrix6_1)=d[,1]  # 将data6_1转化成矩阵
faces(matrix6_1,face.type=1,ncol.plot=6,scale=TRUE,cex=1)

 effect of variables:
 modified item       Var             
 "height of face   " "食品烟酒"      
 "width of face    " "衣着"          
 "structure of face" "居住"          
 "height of mouth  " "生活用品及服务"
 "width of mouth   " "交通通信"      
 "smiling          " "教育文化娱乐"  
 "height of eyes   " "医疗保健"      
 "width of eyes    " "其他用品及服务"
 "height of hair   " "食品烟酒"      
 "width of hair   "  "衣着"          
 "style of hair   "  "居住"          
 "height of nose  "  "生活用品及服务"
 "width of nose   "  "交通通信"      
 "width of ear    "  "教育文化娱乐"  
 "height of ear   "  "医疗保健"  

三.聚类图和热图 

1.聚类图

根据分层聚类(hierarchical cluster)和K-均值聚类(K-means cluster)的结果绘制的图形(也称聚类树状图或谱系图)

层次聚类 ——事先不确定要分多少类, 而是先把每一个样本作为一类, 然后按照某种方法度量样本之间的距离 ,并将距离最近的两个样本合并为一个类别,从而形成k-1个类别再计算出新产生的类别与其他各类别之间的距离 ,并将距离最近的两个类别合并为一类。这时,如果类别的个数仍然大于1,则重复这一步上述步骤,直到所有的类别都合并成一类为止

K-均值聚类——不是把所有可能的聚类结果都列出来,使用者需要先指定要划分的类别个数,然后确定各聚类中心,再计算出各样本到聚类中心的距离 ,最后按距离的远近进行分类

K-均值聚类中的“K”就是 指事先指定要分的类别个数, 而“均值 ”则是指聚类的中心。

data6_1<-read.csv("C:/mydata/chap06/data6_1.csv")
head(data6_1)

    地区 区域划分 三大地带 食品烟酒   衣着    居住 生活用品及服务
1   北京     华北 东部地带   7548.9 2238.3 12295.0         2492.4
2   天津     华北 东部地带   8647.0 1944.8  5922.4         1655.5
3   河北     华北 东部地带   3912.8 1173.5  3679.4         1066.2
4   山西     华北 中部地带   3324.8 1206.0  2933.5          761.0
5 内蒙古     华北 西部地带   5205.3 1866.2  3324.0         1199.9
6   辽宁     东北 东部地带   5605.4 1671.6  3732.5         1191.7
  交通通信 教育文化娱乐 医疗保健 其他用品及服务
1   5034.0       3916.7   2899.7         1000.4
2   3744.5       2691.5   2390.0          845.6
3   2290.3       1578.3   1396.3          340.1
4   1884.0       1879.3   1359.7          316.1
5   2914.9       2227.8   1653.8          553.8
6   3088.4       2534.5   1999.9          639.3

# 图12 31个地区层次聚类树状图
library(factoextra)

df<-data6_1[,-c(2,3)]                          # 去掉数据框的2、3列
mat<-as.matrix(df[,2:9]);rownames(mat)=df[,1]  # 将data6_1转化成矩阵
d<-dist(scale(mat),method="euclidean") # 采用euclidean距离计算样本的点间距离
hc<-hclust(d,method="ward.D2")

# 采用ward.D法计算类间距离并用层次聚类法进行聚类
fviz_dend(hc,k=4,                              # 分成4类
          cex=0.6,                             # 设置数据标签的字体大小
          horiz=FALSE,                         # 垂直摆放图形
          k_colors=c("red","green3","blue3","6"), 
          # 设置聚类集群的线条颜色
          color_labels_by_k=TRUE,              # 自动设置数据标签颜色
          lwd=0.8,                             # 设置分支和矩形的线宽
          type="rectangle",                    # 设置绘图类型为矩形
          rect=TRUE,                           # 使用不同的颜色矩形标记类别
          rect_lty=1,rect_fill=TRUE,           # 设置标记框的线型和填充颜色
          main="")                             # 不显示标题

 

# 图13 31个地区层次聚类的圆形树状图
fviz_dend(hc,k=4,                              # 分成4类
          cex=0.6,                             # 设置数据标签的总体大小
          horiz=FALSE,                         # 垂直摆放图形
          k_colors=c("#1B9E77","#D95F02","#7570B3","#E7298A"), 
          # 设置聚类集群的线条颜色
          color_labels_by_k=TRUE,              # 自动设置数据标签颜色
          lwd=0.8,                             # 设置分支和矩形的线宽
          type="circular",                     # 设置绘图类型为矩形
          rect=TRUE,                           # 使用不同的颜色矩形标记类别
          rect_lty=1,rect_fill=TRUE)           # 设置标记框的线型和填充颜色

# 图14 31个地区层次聚类的植物形树状图
fviz_dend(hc,k=4,                              # 分成4类
          cex=0.8,                             # 设置数据标签的大小
          horiz=FALSE,                         # 垂直摆放图形
          k_colors=c("#1B9E77","#D95F02","#7570B3","#E7298A"), 
          # 设置聚类集群的线条颜色
          color_labels_by_k=TRUE ,             # 自动设置数据标签颜色
          lwd=0.8,                             # 设置分支和矩形的线宽
          type="phylogenic",                   # 设置绘图类型为矩形
          rect=TRUE,                           # 使用不同的颜色矩形标记类别
          repel=TRUE,                          # 避免图中的文本标签重叠
          rect_lty=1,rect_fill=TRUE)           # 设置标记框的线型和填充颜色

# 图15 31个地区分成4类的k-means聚类图

df<-data6_1[,-c(2,3)]                          # 去掉数据框的2、3列
mat<-as.matrix(df[,2:9]);rownames(mat)=df[,1]  # 将data6_1转化成矩阵

km<-kmeans(mat,centers=4)                     # 分成4类
fviz_cluster(km,mat[,-1],
             repel=TRUE,                                # 避免图中的文本标签重叠
             ellipse.type="norm",                       # 画出正态置信椭圆
             labelsize=8,                               # 设置文本字体的大小
             pointsize=1.5,                             # 设置点的大小
             main = "K-means聚类(分成4类)")

# 图16 31个地区分成3类的k-means聚类图
km<-kmeans(mat,centers=3)                     # 分成3类
fviz_cluster(km,mat[,-1],repel=TRUE,ellipse.type="convex",labelsize=8,main="K-means聚类(分成3类)")

 2.热图

热图(heat map)是将矩阵中的每个数值转化成一个颜色矩形,用颜色 表示数值的近似大小或强度热图在很多领域都有应用,比如基因组数据的可视化

热图可以在聚类的基础上同时用颜色表示出数据的大小绘制热图时要求数据必须是矩阵。由于各变量间的数值差异,一般需要做中心化或标准化处理。当数据量很大时,通常会将数据归类后再绘制热图

data6_1<-read.csv("./mydata/chap06/data6_1.csv")
head(data6_1)

    地区 区域划分 三大地带 食品烟酒   衣着    居住 生活用品及服务
1   北京     华北 东部地带   7548.9 2238.3 12295.0         2492.4
2   天津     华北 东部地带   8647.0 1944.8  5922.4         1655.5
3   河北     华北 东部地带   3912.8 1173.5  3679.4         1066.2
4   山西     华北 中部地带   3324.8 1206.0  2933.5          761.0
5 内蒙古     华北 西部地带   5205.3 1866.2  3324.0         1199.9
6   辽宁     东北 东部地带   5605.4 1671.6  3732.5         1191.7
  交通通信 教育文化娱乐 医疗保健 其他用品及服务
1   5034.0       3916.7   2899.7         1000.4
2   3744.5       2691.5   2390.0          845.6
3   2290.3       1578.3   1396.3          340.1
4   1884.0       1879.3   1359.7          316.1
5   2914.9       2227.8   1653.8          553.8
6   3088.4       2534.5   1999.9          639.3

# 图17 heatmap函数绘制的31个地区8项消费支出的热图

mat<-as.matrix(data6_1[,4:11]);rownames(mat)=data6_1[,1]    # 将data6_1中的数值变量转换为矩阵

heatmap(mat,scale="column",margins=c(4,3),cexRow=0.8,cexCol=0.8)  # 对矩阵按列做标准化后绘制热图

# 图18 col=rainbow(256)绘制的31个地区8项消费支出的热图


rc<-rainbow(nrow(mat),start=0,end=0.6)  # 设置注释矩阵中行变量的垂直侧条的颜色向量
cc<-rainbow(ncol(mat),start=0,end=0.6)  # 设置注释矩阵中列变量的水平条的颜色向量
heatmap(mat,scale="column",RowSideColors=rc,ColSideColors=cc,margins=c(4,3),col=rainbow(256),cexRow=0.8,cexCol=0.9)

 

# 图19 去掉聚类图的31个地区8项消费支出的热图
heatmap(mat,Rowv=NA,Colv=NA,                           # 去掉聚类图
        scale="column",margins=c(5,3),
        cm.colors(256,start=02,end=0.5),cexRow=0.8,cexCol=0.9)  

# 图20 heatmap.2绘制的31个地区8项消费支出的热图

library(gplots)

M<-as.matrix(data6_1[,4:11]);rownames(M)=data6_1[,1]
heatmap.2(M,
          scale="none",col=rainbow(256),tracecol="grey50",
          dendrogram="both",cexRow=0.8,cexCol=0.8,
          margins=c(5.3,3),keysize=2, key.title="色键与直方图")

 

# 图6-21 heatmap.2函数绘制的31个地区8项消费支出标准化后的热图

M<-as.matrix(data6_1[,4:11]);rownames(M)=data6_1[,1]


gplots::heatmap.2(M,
                  col=bluered,tracecol="gray50",scale="column",
                  dendrogram="both",cexRow=0.6,cexCol=0.7,
                  margins=c(5.3,3),keysize=2,key.title="色键与直方图")

# 图22 pheatmap函数绘制的31个地区8项消费支出的热图

library(pheatmap)

mat<-as.matrix(data6_1[,4:11]);rownames(mat)=data6_1[,1]  # 将数据框转化成矩阵
mat<-scale(mat)                                            # 对矩阵做标准化

pheatmap(mat,
         color=colorRampPalette(c("navy","white","firebrick3"))(10),
         # 热图中使用的颜色向量
         display_numbers=FALSE,                # 默认FALSE,不显示矩阵单元的数据
         cellheight_row=6,                     # 设置单元格行高度
         fontsize=8,                           # 设置文本字体大小
         treeheight_row=50,treeheight_col=35,  # 设置行和列聚类树的高度
         cutree_col=2,                         # 设置聚类列数
         cutree_row=4)                         # 设置聚类行数

 

  • 11
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
大数据背景下数据可视化方法研究 作者:黄堰 程晓荣 来源:《电脑知识与技术》2016年第17期 摘要:大数据时代数据飞速增长,高维数据越来越多迫切需要新的数据可视化 方法对高维数据进行处理。本文在传统的Radviz数据可视化方法基础上,结合弹簧模型 ,给出了一种改进的Radviz数据可视化方法,并通过两种模型之间的比较,证明了改进 的Radviz可视化方法增强了属性间的合力,降低了数据遮盖度,更好地保持了原有数据 集的特征。 关键词:大数据;数据可视化;Radviz;弹簧模型 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)17-0231- 03 随着大数据时代的到来,数据产生的速度呈直线上升,数据海量化已成为不可 避免的发展趋势。数据急剧增加对数据处理、数据挖掘以及数据可视化等都是一个极大 的挑战。目前,数据可视化面临高维数据越来越多,数据量越来越大,数据种类越来越 多等多种挑战。针对这些问题,提出了一种Radviz数据可视化方法,将高维数据样本非 线性的投影到二维目标空间,能够快速找到容易被领域专家认可的可视化模型。但是传 统的Radviz可视化方法将属性值均匀分布在圆周上造成属性间的值相互抵消,从而导致 数据遮盖度较大及可视化图形有内缩趋势等问题。本文提出了一种新的改进的Radviz可 视化方法,改进的方法增强属性了间的合力,降低了数据遮盖度,使得原始数据集的特 征能够更好地保持。 1 数据可视化 数据可视化技术诞生于二十世纪八十年代,是运用计算机图形学和图像处理等 技术,以图表、地图、动画或其他使内容更容易理解的图形方式来表示数据,使数据所 表达的内容更加容易被处理。数据可视化技术与虚拟现实技术、数据挖掘、人工智能, 甚至与人类基因组计划等前沿学科领域都有着密切的联系[1]。目前数据可视化技术大体 可以分为5类:基于几何投影可视化技术、面向像素可视化技术、基于图标可视化技术、 基于层次可视化技术以及基于图形可视化技术[2]。 数据可视化的简易工作图如图1所示: 2 传统的Radviz可视化方法分析 Radviz(Radial Coordinate Visualization)是一种基于弹簧模型的可视化方法,Radviz是将一系列多维空间的点通 过非线性方法映射到二维空间,实现在平面中对多维数据可视化的一种数据分析方法。 自从Ankerst于1996年提出Radviz技术以来,Radviz技术取得了很大的发展,被广泛应用 于可视化分析和数据挖掘等领域。近年来更是把Radviz技术运用到基因表达数据的分类 上,且取得了良好的分类效果[3]。 2.1 传统Radviz模型 经典的Radviz方法通常运用在平行坐标系上,将一系列具有多维度属性的点通 过非线性方法映射到二维空间,使人们得以用肉眼观察。如图2所示,设n个特征变量随 机均匀地分布在单位圆周上(如n= 6),记为~,现在假设n个弹性系数不同的弹簧一端全部固定在一个小球上,另一端分 别固定在~。假定第j根弹簧对于观测点i的弹性系数为,如果观测点固定在圆内的一个 平衡位置,那么(,)就是n维空间(,…,)在二维空间的投影,便实现了一个n维数据 转化到二维坐标的Radviz可视化[3]。 其中,表示随机均匀分布在单位圆周上的特征向量;单位圆周表示一个二维空 间;O表示特征向量映射在二维空间上的平衡点。 根据胡克定律,对一个弹簧而言,小球所受到的弹力取决于弹簧拉伸的长度( 矢量)和弹簧的弹性系数(标量) ,当小球静止不动时,则表明其受到所有弹簧的合力为零。对此可得到如下公式: 其中xj表示第j个变量在二维空间的圆周上的坐标,pi表示第i个观测点在圆内 二维空间平衡位置的坐标。公式(2-2)表示第i个观测的平衡位置,式(2- 3)表示观测平衡位置向量pi为各变量的坐标位置的加权平均。为了避免负值的出现,常 常采用归一化的方法,即将最大值和最小值归为1和0,归一化后的所有得数值都位于[0 ,1]之间[4]。归一化公式为: 从上述公式分析,我们可以得出如下结论: (1)维度值越大,那么该投影位置将更靠近该维度在圆周上的位置; (2)改变圆周上的属性,将影响投影的位置; 传统的Radviz可视化方法计算复杂度低;可显示维度大;相似多维对象的投影 点十分接近,容易发现聚类信息;直观便于理解。但是传统的Radviz方法也存在一些不 足,该方法受数据本身及数据集的类型影响,当相似的数据集或成比例的数据集较多时 ,数据遮盖度会很大,将会影响对原始数据集的特征保持[5.6]。 3 改进的Radviz可视化方法分析 传统的Radviz可视化方法受数据本身和数据集类型的影响,一旦相似数据集或 成比例的数据集较多,数据遮盖度就会很大,那么原始数据集的特征将会被影响,造
数据分析与可视化 什么是数据分析? 数据分析是基于商业目的,有目的的进行收集、整理、加工和分析数据,提炼有价信息 的一个过程.其过程概括起来主要包括:明确分析目的与框架、数据收集、数据处理、数 据分析、数据展现和撰写报告等6个阶段。 明确分析目的与框架 一个分析项目,你的数据对象是谁?商业目的是什么?要解决什么业务问题?数据分 析师对这些都要了然于心。基于商业的理解,整理分析框架和分析思路。例如,减少新 客户的流失、优化活动效果、提高客户响应率等等。不同的项目对数据的要求,使用的 分析手段也是不一样的. 2、数据收集 数据收集是按照确定的数据分析和框架内容,有目的的收集、整合相关数据的一个过 程,它是数据分析的一个基础。 数据处理 数据处理是指对收集到的数据进行加工、整理,以便开展数据分析,它是数据分析前 必不可少的阶段。这个过程是数据分析整个过程中最占据时间的,也在一定程度上取决 于数据仓库的搭建和数据质量的保证. 数据处理主要包括数据清洗、数据转化等处理方法。 4、数据分析 数据分析是指通过分析手段、方法和技巧对准备好的数据进行探索、分析,从中发现 因果关系、内部联系和业务规律,为商业目提供决策参考. 到了这个阶段,要能驾驭数据、开展数据分析,就要涉及到工具和方法的使用。其一 要熟悉常规数据分析方法,最基本的要了解例如方差、回归、因子、聚类、分类、时间 序列等多元和数据分析方法的原理、使用范围、优缺点和结果的解释;其二是熟悉1+1种 数据分析工具,Excel是最常见,一般的数据分析我们可以通过Excel完成,后而要熟悉一个 专业的分析软件,如数据分析工具SPSS/SAS/R/Matlab等,便于进行一些专业的统计分析 、数据建模等. 5、数据展现 一般情况下,数据分析的结果都是通过图、表的方式来呈现,俗话说:字不如表,表不 如图。借助数据展现手段,能更直观的让数据分析师表述想要呈现的信息、观点和建议。 常用的图表包括饼图、折线图、柱形图/条形图、散点图、雷达图等、金字塔图、矩 阵图、漏斗图、帕雷托图等。 6、撰写报告 最后阶段,就是撰写数据分析报告,这是对整个数据分析成果的一个呈现.通过分析报告 ,把数据分析的目的、过程、结果及方案完整呈现出来,以供商业目的提供参考。 一份好的数据分析报告,首先需要有一个好的分析框架,并且图文并茂,层次明晰, 能够让阅读者一目了然.结构清晰、主次分明可以使阅读者正确理解报告内容;图文并茂 ,可以令数据更加生动活泼,提高视觉冲击力,有助于阅读者更形象、直观地看清楚问题 和结论,从而产生思考. 另外,数据分析报告需要有明确的结论、建议和解决方案,不仅仅是找出问题,后者 是更重要的,否则称不上好的分析,同时也失去了报告的意义,数据的初衷就是为解决 一个商业目的才进行的分析,不能舍本求末. 数据分析常用的方法有哪些?他们多用来分析哪些类型的数据?通过分析可以得到怎样的 结果和结论?怎样得到保证其信度和效度? 常用数据分析方法:聚类分析、因子分析、相关分析、对应分析、回归分析、方差分析 ; 数据分析常用的图表方法:柏拉图(排列图)、直方图(Histogram)、散点图(scatter diagram)、鱼骨图(Ishikawa)、FMEA、点图、柱状图、雷达图、趋势图。 数据分析统计工具:SPSS、minitab、JMP. 常用数据分析方法: 1、聚类分析(Cluster Analysis) 聚类分析指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程。 聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的 相似性,而不同簇间的对象有很大的相异性。聚类分析是一种探索性的分析,在分类的 过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分 类。聚类分析所使用方法的不同,常常会得到不同的结论。不同研究者对于同一组数据 进行聚类分析,所得到的聚类数未必一致. 2、因子分析(Factor Analysis) 因子分析是指研究从变量群中提取共性因子的统计技术。因子分析就是从大量的数据中 寻找内在的联系,减少决策的困难。 因子分析的方法约有10多种,如重心法、影像分析法,最大似然解、最小平方法、阿尔 发抽因法、拉奥典型抽因法等等。这些方法本质上大都属近似方法,是以相关系数矩阵 为基础的,所不同的是相关系数矩阵对角线上的值,采用不同的共同性 2估值。在社会 学研究中,因子分析常采用以主成分分析为基础的反覆法。 3、相关分析(Correlation Analysis) 相关分析(correlation analysis),相关分析是研究现象之间是否存在某种依存关系,并对具体有依存关系的现 象探讨其相关方向以及相关程度.相关关系是一种非确定性的关系,例如

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可乐  

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值