文章目录
聚类算法
1.聚类算法的概念
⼀种典型的⽆监督学习算法,主要⽤于将相似的样本⾃动归到⼀个类别中。
在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计算⽅法,会得到不同的聚类结 果,常⽤的相似度计算⽅法有欧式距离法。
聚类算法是⽆监督的学习算法,⽽分类算法属于监督的学习算法。
2.聚类算法实现流程
k-means聚类步骤
1、随机设置K个特征空间内的点作为初始的聚类中⼼
2、对于其他每个点计算到K个中⼼的距离,未知的点选择最近的⼀个聚类中⼼点作为标记类别
3、接着对着标记的聚类中⼼之后,重新计算出每个聚类的新中⼼点(平均值)
4、如果计算得出的新中⼼点与原中⼼点⼀样(质⼼不再移动),那么结束,否则重新进⾏第⼆步过程
由于每次都要计算所有的样本与每⼀个质⼼之间的相似度,故在⼤规模的数据集上,K-Means算法的收敛 速度⽐较慢。
3.模型评估
3.1 误差平⽅和(SSE \The sum of squares due to error)
3.2 “肘”⽅法 (Elbow method) — K值确定
(1)对于n个点的数据集,迭代计算k from 1 to n,每次聚类完成后计算每个点到其所属的簇中⼼的距离的平⽅和;
(2)平⽅和是会逐渐变⼩的,直到k==n时平⽅和为0,因为每个点都是它所在的簇中⼼本身。
(3)在这个平⽅和变化过程中,会出现⼀个拐点也即“肘”点,下降率突然变缓时即认为是最佳的k值。
在决定什么时候停⽌训练时,肘形判据同样有效,数据通常有更多的噪⾳,在增加分类⽆法带来更多回报时,我们停⽌增加类别。
3.3 轮廓系数法(Silhouette Coefficient)
结合了聚类的凝聚度(Cohesion)和分离度(Separation),⽤于评估聚类的效果:
⽬的:
内部距离最⼩化,外部距离最⼤化
- 计算样本i到同簇其他样本的平均距离ai,ai 越⼩样本i的簇内不相似度越⼩,说明样本i越应该被聚类到该簇。
- 计算样本i到最近簇Cj 的所有样本的平均距离bij,称样本i与最近簇Cj 的不相似度,定义为样本i的簇间不相似度:bi =min{bi1, bi2, …, bik},bi越⼤,说明样本i越不属于其他簇。
- 求出所有样本的轮廓系数后再求平均值就得到了平均轮廓系数。
- 平均轮廓系数的取值范围为[-1,1],系数越⼤,聚类效果越好。
- 簇内样本的距离越近,簇间样本距离越远
3.4 CH系数(Calinski-Harabasz Index)
类别内部数据的协⽅差越⼩越好,类别之间的协⽅差越⼤越好(换句话说:类别内部数据的距离平⽅和越⼩越好,类别 之间的距离平⽅和越⼤越好), 这样的Calinski-Harabasz分数s会⾼,分数s⾼则聚类效果越好。
tr为矩阵的迹, B k 为类别之间的协⽅差矩阵,W k 为类别内部数据的协⽅差矩阵;
m为训练集样本数,k为类别数。
4.k-means算法⼩结
优点:
1.原理简单(靠近中⼼点),实现容易
2.聚类效果中上(依赖K的选择)
3.空间复杂度o(N),时间复杂度o(IKN)
N为样本点个数,K为中⼼点个数,I为迭代次数
缺点:
1.对离群点,噪声敏感 (中⼼点易偏移)
2.很难发现⼤⼩差别很⼤的簇及进⾏增量计算
3.结果不⼀定是全局最优,只能保证局部最优(与K的个数及初值选取有关)
5. 特征降维
降维是指在某些限定条件下,降低随机变量(特征)个数,得到⼀组“不相关”主变量的过程
降维的两种⽅式
- 特征选择
- 主成分分析(可以理解⼀种特征提取的⽅式)
5.1 特征选择
数据中包含冗余或⽆关变量(或称特征、属性、指标等),旨在从原有特征中找出主要特征。
⽅法:
- Filter(过滤式):主要探究特征本身特点、特征与特征和⽬标值之间关联
- ⽅差选择法:低⽅差特征过滤
- 相关系数
低⽅差特征过滤:删除低⽅差的⼀些特征,前⾯讲过⽅差的意义。再结合⽅差的⼤⼩来考虑这个⽅式的⻆度。
特征⽅差⼩:某个特征⼤多样本的值⽐较相近 特征⽅差⼤:某个特征很多样本的值都有差别
相关系数 主要实现⽅式:⽪尔逊相关系数 斯⽪尔曼相关系数
- Embedded (嵌⼊式):算法⾃动选择特征(特征与⽬标值之间的关联)
- 决策树:信息熵、信息增益
- 正则化:L1、L2
- 深度学习:卷积等
5.2 主成分分析
- 定义:⾼维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量
- 作⽤:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
- 应⽤:回归分析或者聚类分析当中