基于基站定位数据的商圈分析上机报告.docx_第1页
基于基站定位数据的商圈分析上机报告.docx_第2页
基于基站定位数据的商圈分析上机报告.docx_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于基站定位数据的商圈分析上机报告1数据读取及其标准化setwd(E:/数据处理)Data=read.csv(./business_circle.csv,header=T,encoding=utf-8)colnames(Data)=c(number,x1,x2,x3,x4)attach(Data)y1=(x1-min(x1)/(max(x1)-min(x1)y2=(x2-min(x2)/(max(x2)-min(x2)y3=(x3-min(x3)/(max(x3)-min(x3)y4=(x4-min(x4)/(max(x4)-min(x4)standardized=data.frame(Data,1,y1,y2,y3,y4)write.csv(standardized,./standardizedData.csv,s=TRUE)2 模型构建2.1 层次聚类library(ggplot2)Data=read.csv(./standardizedData.csv,header=F)Data1=data.frame(y1,y2,y3,y4)attach(Data1)dist=dist(Data1,method=euclidean)hc1-hclust(dist,ward.D2) plot(hc1) plot(hc1, hang=-1)#分成三类re1-rect.hclust(hc1, k=3, border=purple) #对构建好的谱系聚类图进行分类,这里分三类a=re12 #列表名下标b=re13c=re11#商圈类别1matrix=Data1a, # 137个观测值、4个变量d-dim(matrix) #137 4y-as.numeric(t(matrix) # t():矩阵转置,这里转换成数字向量row-factor(rep(1:d1,each=d2) x-rep(1:d2,times=d1) data-data.frame(y=y,x=x,row=row)View(data)ggplot(data=data,aes(x=x,y=y,group=row)+geom_line()+scale_x_continuous(breaks=c(1,2,3,4), labels=c(工作日人均停留时间, 凌晨人均停留时间, 周末人均停留时间,日均人流量)+labs(title=商圈类别1,x=,y=)#商圈类别2matrix=Data1b, d-dim(matrix)y-as.numeric(t(matrix)row-factor(rep(1:d1,each=d2)x-rep(1:d2,times=d1)data-data.frame(y=y,x=x,row=row)ggplot(data=data,aes(x=x,y=y,group=row)+geom_line()+scale_x_continuous(breaks=c(1,2,3,4), labels=c(工作日人均停留时间, 凌晨人均停留时间, 周末人均停留时间,日均人流量)+labs(title=商圈类别2,x=,y=)#商圈类别3matrix=Data1c,d-dim(matrix) #148 4y-as.numeric(t(matrix)row-factor(rep(1:d1,each=d2)x-rep(1:d2,times=d1)data-data.frame(y=y,x=x,row=row)ggplot(data=data,aes(x=x,y=y,group=row)+geom_line()+ scale_x_continuous(breaks=c(1,2,3,4), labels=c(工作日人均停留时间, 凌晨人均停留时间, 周末人均停留时间,日均人流量)+ labs(title=商圈类别3,x=,y=)2.2 K-means聚类setwd(E:/数据处理)Data=read.csv(./business_circle.csv,header=T,encoding=utf-8)km=kmeans(Data,center=3)print(km)#数据分组aaa=data.frame(Data,km$cluster) Data1=Datawhich(aaa$km.cluster=1), Data2=Datawhich(aaa$km.cluster=2), Data3=Datawhich(aaa$km.cluster=3), #商圈1的概率密度函数图par(mfrow=c(2,2) #公共参数列表 par #设置布局plot(density(Data1,1),col=red,main=工作日人均停留时间)plot(density(Data1,2),col=red,main=凌晨人均停留时间)plot(density(Data1,3),col=red,main=周末人均停留时间)plot(density(Data1,4),col=red,main=日均人流量)#商圈2的概率密度函数图par(mfrow=c(2,2)plot(density(Data2,1),col=purple,main=工作日人均停留时间)plot(density(Data2,2),col=purple,main=凌晨人均停留时间)plot(density(Data2,3),col=purple,main=周末人均停留时间)plot(density(Data2,4),col=purple,main=日均人流量)#商圈3的概率密度函数图par(mfrow=c(2,2)plot(density(Data3,1),col=blue,main=工作日人均停留时间)plot(density(Data3,2),col=blue,main=凌晨人均停留时间)plot(density(Data3,3),col=blue,main=周末人均停留时间)plot(density(Data3,4),col=blue,main=日均人流量)3 总结3.1数据标准化的方法及使用离差标准化原因1.数据标准化方法数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到0,1区间上,常见的数据归一化的方法有:1)minmax标准化(Minmax normalization)也叫离差标准化,是对原始数据的线性变换,使结果落到0,1区间,转换函数如下:其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。2)log函数转换通过以10为底的log函数转换的方法同样可以实现归一下,具体方法如下:3)atan函数转换用反正切函数也可以实现数据的归一化:使用这个方法需要注意的是如果想映射的区间为0,1,则数据都应该大于等于0,小于0的数据将被映射到1,0区间上。而并非所有数据标准化的结果都映射到0,1区间上,也有一些非归一化的方法,如下: 4)zscore标准化(zeromean normalization)也叫标准差标准化,是SPSS中最为常用的标准化方法:经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:其中为所有样本数据的均值,为所有样本数据的标准差。5)Decimalscaling小数定标标准化这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值x使用decimalscaling标准化到x的计算方法是:x=x/(10*j)其中,j是满足条件的最小整数。例如:假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用1000(即,j=3)除以每个值,这样,-986被规范化为-0.986。2.使用离差标准化原因数据标准化处理后,原始数据均可以转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析,但是离差标准化是最常用最简单的一种方式3.2构建层次聚类模型时,可以调节哪些参数,对模型有何影响1.层次聚类1)计算变量之间的距离代码为:dist.r = dist(data, method=” “)其中method包括6种方法,表示不同的距离测度:”euclidean”, “maximum”, “manhattan”, “canberra”, “binary” or “minkowski”,分别表示欧几里德距离,切比雪夫距离,绝对值距离,Lance 距离,明科夫斯基距离,定性变量距离。使用不同的距离会对聚类的结果产生一定的影响2)使用hclust()进行聚类代码为:hc.r = hclust(dist.r, method = “ ”)其中method包括7种方法,表示聚类的方法:single,complete,median,mcquitty,average,centroid,ward。分别表示:最短距离法,最长距离法,中间距离法,相似法,类平均法,重心法,离差平方和法。 3)画图plot(hc.r, hang = -1,labels=NULL) 或者plot(hc.r, hang = 0.1,labels=F)hang 等于数值,表示标签与末端树杈之间的距离,若是负数,则表示末端树杈长度是0,即标签对齐。labels 表示标签,默认是NULL,表示变量原有名称。labels=F :表示不显示标签。2.k-mean聚类kmeans(x, centers, iter.max = 10, nstart = 1, algorithm = c(Hartigan-Wong, Lloyd, Forgy, MacQueen), trace=FALSE), centers是初始类的个数或者初始类的中心。iter.max是最大迭代次数,其中默认迭代次数为10。nstart是当centers是数字的时候,随机集合的个数。algorithm是算法,默认是第一个。3.3 K-mean 算法实现基本步骤1.算法步骤K-Means算法的基本思想是初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个簇。然后按平均法重新计算各个簇的质心(这个点可以不是样本点),从而确定新的簇心。一直迭代,直到簇心的移动距离小于某个给定的值。K-Means聚类算法主要分为三个步骤:(1)第一步是为待聚类的点寻找聚类中心(2)第二步是计算每个点到聚类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论