量化机器学习系列分享(六)无监督学习常见算法
由bq2qbou2创建,最终由small_q 被浏览 86 用户
1. 无监督学习之聚类算法
1.1 聚类方法简介
聚类算法是一种无监督学习算法,它和监督学习任务下的分类算法是有明显对比的
- 监督学习的分类算法:数据属于哪一个类别是有标签定义的,模型有没有分类正确我们也是可以明显评判出来的
- 无监督学习的聚类算法:数据没有明确的标签表明类别,聚类的正确与否、好与坏,都是很难评价的
聚类算法的目的,是将数据集中的数据,划分为不同的类别,但是这个类别没有标签去衡量
- 目的可能是为了人为地将数据按照特征归类,比方说数据集中的个体,我想按照身高和体重,分出胖和瘦的区别来
- 目的可能是为了探寻数据背后的隐藏标签,比方说数据集中的个体,我在采样的时候忘了采访性别了,因此需要我根据身高和体重来划分性别
总的来说,聚类的目的是:
- 让同一类中的个体,尽可能地相似
- 让不同类中的个体,尽可能地不同
1.2 非参数型聚类法
1.2.1 K-Means聚类
K-Means聚类法,目的是将个体分为K类,它是一种非参数型的聚类方法,它的聚类很朴素,就是一步一步地将相似的个体划分到一起
K-Means聚类法的步骤是:
- 首先随机选取K个个体,作为K个类别的中心,其他的个体,看离哪个中心比较近,就被分为了那个中心所在的类别,所有个体都分完了以后,K个类别就形成了
- 这K个类别形成了之后,这K个类别会有K个新的中心点,这K个新的中心点,就作为了下一轮的中心
- 接着,其他的个体,看离哪个中心比较近,就被分为了那个中心所在的类别,所有个体都分完了以后,就形成了新的K个类别
- 。。。
- 一直循环这个过程,直到所有个体的类别划分都不再有变化为止
K-Means聚类法是很常用的一种聚类法,但是有一个缺陷,那就是受到初始随机中心点的影响比较大
- 一个解决方案是可以多设计几个K-Means算法,每次使用不同的初始值
- 最终每个个体的聚类结果由多个K-Means算法投票决定
以下是一个使用K-Means算法,根据两个特征,将上证50成分股聚为4类的示例(仅2024-01-02一天数据)