西瓜书+实战+吴恩达机器学习(十六)半监督学习(半监督SVM、半监督k-means、协同训练算法)
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
0. 前言
半监督学习中部分样本有标记,部分样本无标记。
半监督学习可分为两种:
- 纯半监督学习:希望学得的模型适用于未观察到的数据
- 直推学习:希望对数据集中未标记的样本进行预测
1. 半监督SVM
半监督支持向量机(Semi-Supervised Support Vector Machine)试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面。
TSVM(Transductive Support Vector Machine)算法流程:
- 先利用有标记样本训练一个SVM,然后对未标记的样本进行标记指派
- 寻找两个标记指派为异类且很可能错误的未标记样本,交换它们的标记
- 重新计算超平面,继续迭代第2步,寻求一个在所有样本上间隔最大化的划分超平面
TSVM算法如下图所示(图源:机器学习):
2. 半监督k-means
2.1. 约束k-means
给定数据集,以及“必连”关系集合和“勿连”关系集合,表示必同簇,表示必不同簇。
该算法是k-means的扩展,在聚类过程中确保满足约束。
算法如下图所示(图源:机器学习):
2.2. 约束种子k-means
给定数据集,以及少量有标记样本。
该算法是k-means的扩展,将有标记样本作为种子样本,初始化时直接使用同类种子样本的均值作为簇中心,每次迭代不改变种子样本的隶属关系。
算法如下图所示(图源:机器学习):
3. 协同训练算法
基于分歧的方法使用多学习器,利用学习器之间的分歧对未标记数据训练。
一个数据对象拥有多个属性集,每个属性集对应一个视图。
协同过滤正是利用多视图的相融互补性,在每个视图上训练一个分类器,然后让每个样本选择自己最有把握的未标记样本附上伪标记,给另一个分类器作为新样本训练,如此相互学习,共同进步。
理论显示,如果弱分类器之间具有显著的分歧,那么可通过相互提供伪标记样本提升泛化性能。
算法如下图所示(图源:机器学习):
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~