欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2018115074260
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于Spark改进的K-Means算法的电商餐饮数据分析方法,其特征在于,所述方法包括以下步骤:步骤1,搭建实验平台及其配置,为实现并行K-Means聚类算法搭建执行环境,过程如下:

1.1配置Master的Spark的分布式环境,如下:

1.1.1下载Spark2.1.0安装包,解压并进行安装;

1.1.2修改相关配置文件:

进入/spark2.1.0-bin-hadoop2.7.5/conf目录下,修改两个文件,其中一个是配置spark-env.sh文件,设置变量SCALA_HONE、JAVA_HOME、SPARK_MASTER_IP、SPARK_WOKER_MEMORY和HADOOP_CONF_DIR的值;另一个是配置slave文件,将master和各节点添加到这个文件中;

1.2配置Scala开发环境:

因为Spark平台使用Scala语言进行编译,所以需要安装Scala;下载到.msi文件以后,按照步骤进行安装,安装完成后,设置全局变量SCALA_HOME为Scala的安装路径;

最后进行测试,查看Scala是否安装成功,打开一个新的CMD窗口,输入默认的Scala指令,如果交互命令可以正常循环执行,表示安装成功;

步骤2,原始数据集的获取,过程如下:实验数据是选取餐饮商铺的信息数据,数据对象包括经度、维度、城市、店名、地址、综合评分、点评数、环境评分、口味评分、服务评分和商圈数据信息;

步骤3,对原始数据集进行预处理,补充空缺数据和删除无用数据;

步骤4,使用Scalable语言实现K-Means算法在Spark中的开发,过程如下:

4.1K-Means算法以距离作为数据对象之间的相似性度量标准,来对数据进行聚类,属于无监督学习,采用欧氏距离来表示数据之间的相似性,欧氏距离的计算公式:其中,xi,xj分别代表数据集中任意两个数据对象,N表示每个数据对象总属性的个数;

K-Means聚类过程中的每一次迭代,聚类中心都要从新计算并更新,计算新的聚类中心,就是计算出这个簇中,所有对象的均值,假设第K个簇的聚类中心表示为Centerk,计算这个簇的新的聚类中心的方式如下:其中,Ck是第K类簇,|Ck|是第K类簇中数据对象的个数,这里的求和是指第K类簇Ck中所有元素在每列属性上的和,所以Centerk是一个长度为D的向量,表示如下:Centerk=[Centerk1,Centerk2,Centerk3,...,CenterkD]迭代的终止条件有两种,一种是设置迭代次数T,当达到第T次迭代的时候,程序终止迭代,此时得到的聚类结果即为最终的聚类结果;另一种是使用误差平方和作为程序迭代终止的阀值,该函数式表示如下:其中,K表示类簇的数目,当两次迭代的E的差值小于某一定的阀值的时候,即ΔE<δ,程序终止迭代;

4.2对初始化聚类中心部分的算法改进,步骤如下:

4.2.1随机从预处理后的数据集中随机选择个数据对象作为初始中心点Ci,其中,i∈(1,2,3,...K),数据集的数据对象假设一共有N个,将数据对象称作为数据点,数据点是指数据集中数据对象的三维特征组成的向量;

Ci=rand([V(1,j),V(2,j),V(3,j))=[V(1,i),V(2,i),V(3,i)]其中,j∈(1,2,3,...N)

4.2.2计算数据集中每个点到最近的聚类中心点Ci(Ci+1)的距离Dj,对所有的Dj做和,记为Sumi,首次使用的是Ci,循环内部使用的是Ci+1;

4.2.3再取一个随机点,然后使用权重的方式算出下一个初始聚类中心点,随机点Ri的取值方式是,随机值Ri∈(O,Sumi),对数据集做Ri=Ri-Dj的循环运算,直到Ri<0,那么,对应的Dj就是下一个聚类中心点Ci+1=Dj;

4.2.4重复4.2.2和4.2.3以上两个步骤,直至第K个中心点被选出,选取初始中心点算法结束;

4.3改进的K-Means算法在Spark中实现步骤:

4.3.1利用HDFS、RDD对原始数据进行并行处理

先对数据集里面的定量特征进行数值化处理和去除数据对象里面不需要的特征维度,并将处理后的数据源存放至HDFS;

4.3.2执行4.2步骤的聚类中心初始化过程,得到所需要的K个初始聚类中心;

4.3.3执行迭代操作,满足参考迭代次数或者得到的新的聚类中心点超过了所规定的临界值范围,则迭代结束,否则继续执行迭代操作;

4.3.4得到新的数据变量,从而得到新的聚类中心点;

4.3.5更新聚类中心点和迭代次数;

步骤5,将编辑好的程序进行编译执行,最终完成聚类过程。

2.如权利要求1所述的一种基于Spark改进的K-Means算法的电商餐饮数据分析方法,其特征在于,所述方法还包括以下步骤:步骤6,对聚类后的数据进行可视化。

3.如权利要求2所述的一种基于Spark改进的K-Means算法的电商餐饮数据分析方法,其特征在于,所述方法还包括以下步骤:步骤7,分别进行单板机和集群下的执行速度测试:分别将程序在单板机和不同Worker节点的集群下,记录整个数据处理所用时间。