美文网首页
sklearn-半监督学习-标签传播算法

sklearn-半监督学习-标签传播算法

作者: Jana_LU | 来源:发表于2019-10-10 08:27 被阅读0次

一、算法思路:(这里主要关注两种)

  1. 生成模型:先计算样本特征的总体的联合分布,将所有有标注的样本计算出一个分布,然后把没有标注的样本放入这个分布中,看根据这个分布它该如何被标注,这个过程可能是迭代的
  2. 物以类聚:将有标注和没有标注的样本进行相似的比较,相似度高的,就将无标注样本按照临近的有标注样本进行标注,类似迭代过程。

二、标签传播算法的两种计算方式

  1. rbf:距离离的越近越接近于1,距离离的越远越接近于0
  2. knn:找一个无标注的数据,然后取附近k个有标注的数据,无标注数据附近哪种标注的数据最多就取哪一个(以未标注的数据为圆心做knn,在指定范围内找到了有标注的数据,然后对未标注的数据进行打标,然后进行打标传播,直到未标注的数据全都标注以后,算法结束)

三、代码实现:
这里用Iris数据集进行实现,以下为Iris数据集相关信息:
1、花尊长度;
2、花尊宽度;
3、花瓣长度;
4、花瓣宽度;
5、种类:Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾)、Iris Virginica(维吉尼亚鸢尾)

import numpy as np
from sklearn import datasets
iris = datasets.load_iris()
labels = np.copy(iris.target)
# 标签传播算法中,未标注的数据的label必须是-1,随机选一些,标注为-1
random_unlabeled_points = np.random.rand(len(iris.target))
random_unlabeled_points = random_unlabeled_points<0.7 # 0-1的随机数,小于0.7返回1,大于等于0.7返回0
Y=labels[random_unlabeled_points] # label转换之前的
labels[random_unlabeled_points]=-1 # 标签重置,将标签为1的变为-1
print('Unlabeled Number:',list(labels).count(-1))
from sklearn.semi_supervised import LabelPropagation
laber_prop_model = LabelPropagation()
laber_prop_model.fit(iris.data,labels)
Y_pred = laber_prop_model.predict(iris.data)
Y_pred = Y_pred[random_unlabeled_points] # -1的那部分重新预测
from sklearn.metrics import accuracy_score,recall_score,f1_score
print('ACC',accuracy_score(Y,Y_pred))
print('REC',recall_score(Y,Y_pred,average='micro'))
print('F-Score',f1_score(Y,Y_pred,average='micro'))

相关文章

  • sklearn-半监督学习-标签传播算法

    一、算法思路:(这里主要关注两种) 生成模型:先计算样本特征的总体的联合分布,将所有有标注的样本计算出一个分布,然...

  • LPA算法在GraphX中的实现

    LPA:标签传播算法。 Label Propagation,是一种基于图的半监督学习算法(Semi-supervi...

  • 半监督学习算法(4)-- 标签传播

    图论半监督学习需要首先构建一个图,图的节点集就是所有样本集( 包括标记样本和无标记 样本),图的边是样本两两间的相...

  • ml chapter1机器学习的分类

    1,监督学习:数据与标签的2,非监督学习:只有数据没有标签3,半监督学习:监督学习+半监督学习4,强化学习:训练中...

  • Introduction of Machine Learning

    解释 监督学习:有标签数据 半监督学习:部分有标签 非监督学习:无标签 迁移学习:用非相关数据(含标签)来优化目标...

  • 机器学习算法分类大全

    机器学习算法可以分为监督学习算法、无监督学习算法和半监督学习算法,下面以思维导图的形式总结了一下常见的监督学习和无...

  • 阅读笔记:半监督学习方法

    论文:半监督学习方法 关键词:半监督;有监督学习;半监督学习;无监督学习;SSL;无类标签样例;Semi-Supe...

  • 机器学习算法之聚类(Clustering)

    1.无监督学习:简介 聚类算法:第一个无监督学习算法(无标签的数据) 什么是无监督学习呢?对比:监督学习问题指的是...

  • 聚类(Clustering)

    1.无监督学习:简介 聚类算法:第一个无监督学习算法(无标签的数据) 什么是无监督学习呢?对比:监督学习问题指的是...

  • 常用算法介绍

    常见算法分类 监督式学习 无监督学习 半监督学习 监督式学习 分类1.贝叶斯分类2.决策树算法3.神经网络算法4....

网友评论

      本文标题:sklearn-半监督学习-标签传播算法

      本文链接:https://www.haomeiwen.com/subject/ouhgectx.html