九-1.聚类分析

聚类通常作为其他数据挖掘或建模的前奏

一.特征认知

九-1.聚类分析_第1张图片

1.有监督无监督

分类: 有监督学习(有标签学习)

数据特征
九-1.聚类分析_第2张图片

聚类: 无监督学习(没有标签)

数据特征
九-1.聚类分析_第3张图片

2.聚类概念

  • 聚类是把各不相同的个体分割为有更多相似性子集合的工作。
  • 聚类生成的子集合称为簇

3.聚类要求

  • 生成的簇内部的任意两个对象之间具有较高的相似度
  • 属于不同簇的两个对象间具有较高的相异度

二.相似度衡量

度量关键: 距离

1.变量分类

  • 1.定量变量:连续变量
  • 2.定性变量: 性质上的差异:有序变量,名义变量

2.相似系数

简单匹配系数: SMC=匹配的属性个数/属性个数
Jaccard系数:
余弦相似系数: 文本度量

3.示例

x=(1,0,0,0,0,0,0,0,0,0)
y=(0,0,0,0,0,0,1,0,0,1)

f00 =7 (x取0并且y取0的属性个数)
f01 =2 (x取0并且y取1的属性个数)
f10 =1 (x取1并且y取0的属性个数)
f11 =0 (x取1并且y取1的属性个数)

简单匹配系数:SMC =(f11 +f00) / (f01 + f10 + f11 + f00)=(0+7)/(2+1+0+7)=0.7

Jaccard系数:J = (f11) / (f01 + f10 +f11) =0/2+1+0 =0

三.常用聚类算法

1.K-均值聚类

  • 1.随机选取K个样本点作为类中心
  • 2.计算各样本与各类中心的距离
  • 3.将样本归于最近类中心
  • 4.求各类中心的新类中心:所有样本的均值
  • 5.判断类中心是否再更新,没有就结束

2.实例

2.K-中心点聚类

3.密度聚类

4.层次聚类

5.期望最大化聚类

四.性能衡量

1.参数认知

名称 定义 例子
样本集: D={x1,…xn} 1 2 4 5
样本实际类比: C={c1,…c*n} 0 0 1 1
聚类结果: C={c1,…cn} 1 0 0 0
  • SS: C中相同簇在C*中相同簇
  • SD: C中相同簇在C*中不同簇
  • DS: C中不同的簇在C*中相同簇
  • DD: C中不同的簇在C*中不同簇
SS SD DS DD
{4,5} {2,4}{2,5} {1,2} {1,4}{1,5}
1 2 1 2

2.外部指标

聚类结果与实际结果进行比较

① jaccard系数

$$
jc=\frac{SS}{SS+SD+DS}

$$

j c = 1 1 + 2 + 1 jc=\frac{1}{1+2+1} jc=1+2+11 = 1 4 \frac{1}{4} 41

②Fm系数

$$
FM=\sqrt{\frac{SS}{SS+SD}*\frac{SS}{SS+DS}}

$$

F M = 1 1 + 2 ∗ 1 1 + 1 FM=\sqrt{\frac{1}{1+2}*\frac{1}{1+1}} FM=1+211+11 = 1 3 \sqrt{\frac{1}{3}} 31

③Rand系数

$$
RD=\frac{2(SS+SD)}{m(m-1)}

$$

R D = 2 ( 1 + 2 ) 4 ( 4 − 1 ) RD=\frac{2(1+2)}{4(4-1)} RD=4(41)2(1+2) = 1 2 \frac{1}{2} 21

3.内部指标

不依赖标签

  • 1紧密性
  • 2间隔性
  • 保留未学习

五.sklearn函数

from sklearn.cluster import KMeans
参数名 意义 接收 默认
n_clusters 簇数设定 int 8
init 初始化方法 ‘k-means++’:选取平均值为中心点
‘random’:随机选取中心点
‘k-means++’
max_iter 两次迭代之间的聚类中心的差异声明收敛 int (!==0) 300
precompute_distances 预计算距离 ‘auto’:如果n个样本n_samples * n_clusters > 1200万,不预先计算距离。这相当于使用双精度的每个作业大约100 MB的开销。
True :总是预先计算距离
False:永远不要预先计算距离。
’auto’
verbose 详细模式 int 0
random_state 确定用于质心初始化的随机数生成 int None
copy_x 是否复杂并修改使用该数据 bool True
n_jobs 用于计算的OpenMP线程数 int None
algorithm 表示K-means要使用的算法 “elkan”变化更为有效。但是,由于分配了一个额外的形状数组(n_samples, n_clusters),所以内存更多。
“auto”(为向后兼容而保留)选择了“Elkan”,但它将来可能会改变,以获得更好的启发式。
”auto”

六.评估指标

sklean.clusrer.

你可能感兴趣的:(机器学习,python,机器学习,聚类)