【原创】WEKA聚类算法wine数据集分析研究报告(附代码数据).docx
《【原创】WEKA聚类算法wine数据集分析研究报告(附代码数据).docx》由会员分享,可在线阅读,更多相关《【原创】WEKA聚类算法wine数据集分析研究报告(附代码数据).docx(18页珍藏版)》请在冰豆网上搜索。
【原创】R语言案例数据分析报告论文(附代码数据)有问题到淘宝找“大数据部落”就可以了
WEKA聚类算法wine数据集分析研究
1实验目的
希望通过实验研究葡萄酒的差异化,并分析造成这种差异化的原因,可以更深刻的掌握聚类分析的原理;进一步熟悉聚类分析问题的提出、解决问题的思路、方法和技能;达到能综合运用所学基本理论和专业知识;锻炼收集、整理、运用资料的能力的目的;希望能会调用WEKA软件聚类分析有关过程命令,并且可以对数据处理结果进行正确判断分析,作出综合评价。
Wine这份数据集包含来自3种不同起源的葡萄酒的共178条记录。
13个属性是葡萄酒的13种化学成分。
通过化学分析可以来推断葡萄酒的起源。
值得一提的是所有属性变量都是连续变量。
数据集特征:
多变量
记录数:
178
领域:
物理
属性特征:
整数,实数属性数目:
13 捐赠日期
1991-07-01
相关应用:
分类
缺失值?
无 网站点击数:
337319
2实验数据
该实验的数据集是MostPopularDataSets(hitssince2007)中的wine数据集,这是是对在意大利同一地区生产的三种不同品种的酒,做大量分析所得出的数据。
这些数据包括了三种酒中13种不同成分的数量。
经过几天对数据集以及分类算法的研究,详细研究了朴素贝叶斯分类器和其他学习算法,包括决策树和神经网络等等。
同时由于这个数据集有13个属性,用决
策树实现起来会很复杂。
我最终选择了用贝叶斯分类算法来实现。
我将178个样
本分成118个训练样本和60个测试样本,采用朴素贝叶斯分类算法,计算出先验概率和后验概率,通过比较概率的最大值,判别出测试样本所属于的酒的类型,同时输出测试样本计算的正确率和错误率。
这些数据包括了三种酒中13种不同成分的数量。
13种成分分别为:
Alcohol,Malicacid,Ash,Alcalinityofash,Magnesium,Totalphenols,Flavanoids,Nonflavanoidphenols,Proanthocyanins,Colorintensity,Hue,OD280/OD315ofdilutedwines,Proline。
在“wine.data”文件中,每行代表一种酒的样本,共有
178个样本;一共有14列,其中,第一列为类标志属性,共有三类,分别记为
“1”,“2”,“3”;后面的13列为每个样本的对应属性的样本值。
其中第1
类有59个样本,第2类有71个样本,第3类有48个样本。
3实验方法
聚类是对数据对象进行划分的一种过程,与分类不同的是,它所划分的类是
18
未知的,故此,这是一个“无指导的学习”过程,它倾向于数据的自然划分。
其中聚类算法常见的有基于层次方法、基于划分方法、基于密度以及网格等方法。
本文中对近年来聚类算法的研究现状与新进展进行归纳总结。
一方面对近年来提出的较有代表性的聚类算法,从算法思想。
关键技术和优缺点等方面进行分析概括;另一方面选择一些典型的聚类算法和一些知名的数据集,主要从正确率和运行效率两个方面进行模拟实验,并分别就同一种聚类算法、不同的数据集以及同一个数据集、不同的聚类算法的聚类情况进行对比分析。
最后通过综合上述两方面信息给出聚类分析的研究热点、难点、不足和有待解决的一些问题等。
实验中主要选择了K均值聚类算法、FCM模糊聚类算法并以UCIMachine
LearningRepository网站下载的WINE数据集为基础,然后以WINE数据集在学习了解Weka软件接口方面的基础后作聚类分析,使用最常见的K均值(即K-means)聚类算法和FCM模糊聚类算法。
下面简单描述一下K均值聚类的步骤。
K均值算法首先随机的指定K个类中心。
然后:
(1)将每个实例分配到距它最近的类中心,得到K个类;
(2)计分别计算各类中所有实例的均值,把它们作为各类新的类中心。
重复
(1)和
(2),直到K个类中心的位置都固定,类的分配也固定。
在实验过程中通过利用Weka软件中提供的simpleKmeans(也就是K均值聚类算法对WINE数据集进行聚类分析,更深刻的理解k均值算法,并通过对实验结果进行观察分析,找出实验中所存在的问题。
然后再在学习了解Weka软件接口方面的基础上对Weka软件进行一定的扩展以加入新的聚类算法来实现基于
Weka平台的聚类分析。
3.1K均值聚类算法
3.1.1K均值聚类算法理论
K均值算法是一种硬划分方法,简单流行但其也存在一些问题诸如其划分结果并不一定完全可信。
K均值算法的划分理论基础是
c
min
i1
kAxk vi
2
i
(1)
其中c是划分的聚类数,Ai是已经属于第i类的数据集vi是相应的点到第i类的平
均距离,即
vi
其中Ni表示在数据集Ai中的对象数。
3.1.2算法的基本过程
Ni
k i
x
k1k,x ANi
(2)
step1:
任意选择K个对象作为初始的类的中心;
step2:
repeat;
step3:
根据类中的平均值,将每个数据点(重新)赋给最相近的类;
step4:
更新类的平均值;
step5:
until不再发生变化,即没有对象进行被重新分配时过程结束。
3.2FCM模糊聚类算法
FCM算法也是一种基于划分的聚类算法,它的思想就是使得被划分到同一类的对象之间相似度最大,而不同类之间的相似度最小。
模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则是一种柔性的模糊划分。
在介绍FCM具体算法之前我们先介绍一些模糊集合的基本知识。
3.2.1FCM模糊聚类算法的理论
1)理论基础-模糊集基本知识
首先说明隶属度函数的概念。
隶属度函数是表示一个对象x隶属于集合A的
A
程度的函数,通常记做 x,其自变量范围是所有可能属于集合 的对象(即
A
集合A所在空间中的所有点),取值范围是0,1,即0
x 1。
x 1表
A A
示x完全隶属于集合A,相当于传统集合概念上的xA。
一个定义在空间Xx上的隶属度函数就定义了一个模糊集合A,或者叫定义在论域Xx上的模糊子集。
在聚类的问题中,可以把聚类生成的类看成模糊集合,因此每个样
本点隶属于每个类的隶属度就是0,1区间里面的值。
2)FCM的算法理论
1973年,Bezdek提出了该算法,并作为早期硬C均值聚类(HCM)方法的一种改进,命名为模糊C均值聚类简称FCM是一种目标函数法。
假设将样本空
间X要分为k个类,则类中心集C
(c1,c2,c3,L,ck)使下式的目标函数值最小
minJ
n k 2
mx c 3
m ij i j ()
i1j1
k
ij 1
j1
且有
(4)
ij [0,1]
其中
i 1,2,L,n;
j 1,2,L,k
U (ij)
被称为模糊隶属度矩阵。
ij表示的是数据xi隶属于类中心cj的隶属度。
m是模
糊加权参数,用于控制在模糊类间的程度依据参考的文献中一般取值为1 5。
应用拉格朗日乘法并基于上述约束可得到如下式
1
ij 2
c Dijm1
t1 Dtj
且
(5)
1 i c,1 j N
N
x
m
ij j
C j1
1 i c (6)
i N
mij
j1
其中Dij是Xi到第j类中心Cj的欧氏距离,即
Xi
3.2.2FCM模糊聚类算法的过程
Cj。
step1:
置初始化参数值,包含模糊加权参数值m和聚类数k,以及迭代的次数s和算法终止误差。
step2:
随机化置初始化聚类的中心C0,t 0。
step3:
计算隶属度矩阵U可通过(5)式计算Us得来。
step4:
依据(6)式迭代计算聚类的中心Cs1。
step5:
检验Us1 Us
3.2.3实验配置
是否成立,成立则算法结束否则goto
step3。
实验配置过程与K均值算法的实验配置过程基本相同,只是在FCM模糊聚类算法实验中要用到模糊隶属度参数,一般将其设置在1~5之间在实验中设置如下param.m=2。
也可以根据需要对其进行修改。
3.2.4FCM模糊聚类算法特点
FCM算法需要两个参数一个是聚类数目c,另一个是参数m。
一般来讲c要
远远小于聚类样本的总个数,同时要保证c
1。
对于m,它是一个控制算法的
柔性的参数,如果m过大,则聚类效果会很次,而如果m过小则算法会接近K均值聚类算法。
算法的输出是c个聚类中心点向量和c*N的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。
根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。
聚类中心表示的是每个类的平均特征,可以认为是这个类的中心代表。
FCM算法是图像分割使用最多的方法之一,它的成功主要归功于为解决每
个图像像素的隶属需要引入了模糊性。
与K均值聚类相比较来说FCM能够保留初始图像的更多信息。
FCM对孤立点和其他人造图像非常敏感。
3.3基于weka的聚类分析
3.4.1数据的预处理
从网站下载的WINE原始数据集wine.data文件,而Weka软件需要的是ARFF
文件格式的数据。
因此需要将数据转换成Weka支持的ARFF文件格式的。
转换过程如下
首先用记事本方式打开文件发现文件中的数据之间是以逗号来划分的,因此可以将数据文件的名称改为wine.csv。
然后,打开Weka选择Tools选项下的
ArffViewer如下图
打开ArffViewer后选择File选项下的Open弹出如下图的打开窗口,在文件类型一栏选择CSVdatafiles(*.csv)项。
然后找到相应的文件后单击打开后如下图
接下来选择File选项下的Saveas后弹出如下图
在文件名栏输入相应的文件名后单击保存即可得到相应的arff格式的数据集文件。
K均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值0和1的属性。
WEKA将自动实施这个分类型到数值型的变换,而且
WEKA会自动对数值型的数据作标准化。
WEKA中的StringToWordVector过滤
器能将ARFF文件中的文本数据转换为空间向量模型,它同时拥有分词、特征表示、特征提取等功能。
在Explorer中的Reprocess界面导入ARFF文件,选择
StringToWordVector过滤器,再设置相关参数。
3.4.2聚类过程
进入Explorer中的Preprocess界面单击Openfile后弹出如下图的数据集选择窗口,选择WINE.