没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
基于 WEKA 的数据挖掘算法学习(六)
1. 聚类
1.1 聚类任务
在“无监督学习”中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学
习来揭示数据的内在性质及规律,为进一步数据分析提供基础。聚类的目的是试图将数据集
中的样本划分为若干个通常不相交的子集,每个子集称为一个“簇”。
聚类既能是一个单独过程,用于寻找数据内在的分布结构,也可作为分类等其他学习任
务的前驱过程。
1.2 性能度量
聚类性能指标大致两类,一是将聚类结果与某个“参考模型”进行比较,称为“外部指标”,
二是直接考察聚类结果而不利用任何参考模型,称为“内部指标”。
聚类性能的度量的外部指标为:
Jaccard 系数:
JC
=
𝑎
𝑎
+
𝑏
+
𝑐
FMI 指数:
FMI
=
𝑎
𝑎
+
𝑏
.
𝑎
𝑎
+
𝑐
Rand 指数:
RI
=
2(𝑎
+
𝑑)
𝑚(𝑚
―
1)
性能度量结果值均在[0,1]区间,值越大越好。
聚类性能的度量的内部指标为:
DB 指数:
DBI
=
1
𝐾
∑
𝑘
𝑖
=
1
𝑚𝑎𝑥
𝑗
≠
𝑖
(
𝑎𝑣𝑔
(
𝐶
𝑖
)
+
𝑎𝑣𝑔(
𝐶
𝑗
)
𝑑
𝑐𝑒𝑛
(
𝑢
𝑖
,
𝑢
𝑗
)
)
Dunn 指数:
DI
=
𝑚𝑖𝑛
1
≤
𝐼
≤
𝐾
𝑚𝑖𝑛
𝑗
≠
𝑖
(
𝑑
𝑚𝑖𝑛
(
𝐶
𝑖
,
𝐶
𝑗
)
𝑚𝑎𝑥
1
≤
𝑙
≤
𝑘
𝑑𝑖𝑎𝑚(
𝐶
𝑙
)
)
DBI 的值越小越好,而 DI 的值越大越好。
1.3 距离计算
给定样本
𝒙
𝑖
=
(
𝑥
𝑖1
;
𝑥
𝑖2
;
…;
𝑥
𝑖𝑛
)
与
𝒙
𝑗
=
(
𝑥
𝑗
1
;
𝑥
𝑗
2
;
…;
𝑥
𝑗
𝑛
)
,最常用的是闵可夫斯
基距离:
𝑑𝑖𝑠𝑡
𝑚𝑘
(
𝒙
𝑖
,
𝒙
𝑗
)
=
(
∑
𝑛
𝑢
=
1
|
𝑥
𝑖𝑢
―
𝑥
𝑗𝑢
|
𝑝
)
1
𝑝
其中当 p=1 时为曼哈顿距离,p=2 时为欧式距离。
此外,对于无序属性,使用 VDM 距离:
𝑉𝐷𝑀
𝑃
(
𝑎,𝑏
)
=
∑
𝑘
𝑖
=
1
|
𝑚
𝑢,𝑎,𝑖
𝑚
𝑢,𝑎
―
𝑚
𝑢,𝑏,𝑖
𝑚
𝑢,𝑏
|
𝑝
其中,
𝑚
𝑢,𝑎
表示属性 u 上取值为 a 的样本数,
𝑚
𝑢,𝑎,𝑖
表示在第 i 个样本簇中在属性 u 上取值为
a 的样本数,k 为样本簇数。
明显的,闵可夫斯基距离和 VDM 结合可处理混合属性,当样本空间中不同属性重要性
不同时,可使用加权距离,赋予权重。
1.4 聚类算法
1.4.1 k 均值算法(k-means)
算法核心思想:首先选定簇数,随机选择样本作为初始均值向量,依次考察每个样本与
当前均值向量均值的距离,选定距离最近的簇,归于该簇。
所有样本考察结束一轮以后,分别更新,每个簇的新的均值向量,不断重复上述过程,
当均值向量未更新后得到最终的簇划分。为了防止运行时间过长,设置一个最大运行轮数或
者最小调整幅度阈值。
1.4.2 学习向量量化(LVQ)
试图找到一组原型向量来刻画聚类结构,与一般聚类算法不同,LVQ 假设数据样本带
有类别标记,学习过程中利用样本的监督信息来辅助聚类。
算法核心思想:首先令样本带上类别标记,设置簇数 q,学习目标就是找 q 个原型向量,
并且假定 q 个原型向量对应的类别标记。
根据样本的类别标记和簇预设类别标记对原型向量进行随机初始化,选择样本与某个原
型向量距离最相近者,当二者具有相同(不同)的类别标记时,更新原型向量为:
𝑝
′
‘’
=
𝑝
±
η
(
𝒙
𝑖
―
p)
不断重复上述过程,迭代不同的轮数。
1.4.3 密度聚类(DBSCAN)
此算法假设聚类结构能通过样本分布的紧密程度确定,通常根据样本密度的角度来考察
样本之间的可连接性,基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
DBSCAN 是著名的一种密度聚类算法,基于领域参数来刻画样本分布的紧密程度。
算法核心思想:随机选择数据集中的一个核心对象作为“种子”,由此出发确定相应的聚
类簇。根据给定领域参数(e,MinPts)找到所有的核心对象,以任意核心对象出发,找出
由密度可达的样本生成聚类簇,直到所有核心对象均被访问过。最终得到簇划分。
2. K 近邻学习
简称 KNN,是一种常用的监督学习的方法。算法核心思想:一个样本在特征空间中 K
个最相邻样本中的大多数样本属于某一类别,则该样本属于这个类别。
图 1 k 近邻分类示意图
由图 1k 近邻分类器示意图,可以清晰地看出测试样本在 k=1 和 k=5 时被判别为正例,
在 k=3 时被判别为反例。也完美体现了 k 近邻算法的核心思想。
3.weka 算法实现
3.1 数据集的准备
1、UCI 完备数据集:segmentation csv
2、UCI 不完备数据集:hepatitis.csv
3、UCI 不平衡数据集: balance-scale.csv
3.2 K-means
选择 ClusterSimpleKMeans
设置距离函数 distanceFunction=EuclideanDistance,设置 numCluster=7 不断改变 seed
值,进行数据测试,结果如下:
1、UCI 完备数据集:segmentation
Seed=5 时:
剩余11页未读,继续阅读
资源评论
会飞的黄油
- 粉丝: 22
- 资源: 303
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功