sklearn学习笔记 半监督分类 之 标签传播与SVM的决策边界

“模式识别”研究的问题是如何将不同的事物划分为不同的类别,基于现有的研究,分类识别方法可分为三类:监督识别监督识别监督识别

1、监督识别 需要事先给样本数据集做标签来训练分类器,前期标签数据费时费力;

2、监督识别 可根据没有做好标签的样本数据自动生成分类器;

3、监督识别 介于监督识别和非监督识别,给一部分样本数据做标签,另一部分不做标签,以此来增强分类器的性能。

 

比较标签传播(Label Propagation)SVM 之间在 sklearn.datasets 自带的 Iris 数据集上生成的“决策边界”。

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn import svm
from sklearn.semi_supervised import label_propagation  # sklearn 自带的半监督

h = .02  # 网格中的步长
# 子图标题
titles = ['Label Spreading 30% data',
          'Label Spreading 50% data',
          'Label Spreading 100% data',
          'SVC with rbf kernel']


iris = datasets.load_iris()  # 导入鸢尾花(Iris)数据集
X = iris.data[:, 0:2]  # 取数据集前两列特征向量
Y = iris.target  # 取数据集的标签(鸢尾花类型)

rng = np.random.RandomState(0)  # 设置随机种子
Y_30 = np.copy(Y)
Y_30[rng.rand(len(Y)) < 0.3] = -1
Y_50 = np.copy(Y)
Y_50[rng.rand(len(Y)) < 0.5] = -1


# 由于我们想要绘制支持向量,因此我们不会扩展数据
ls30 = (label_propagation.LabelSpreading().fit(X, Y_30), Y_30)
ls50 = (label_propagation.LabelSpreading().fit(X, Y_50), Y_50)
ls100 = (label_propagation.LabelSpreading().fit(X, Y), Y)

# 创建 rbf 内核的 SVM 分类器,并拟合数据
rbf_svc = (svm.SVC(kernel = 'rbf', gamma = 0.5).fit(X, Y), Y)

x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))

color_map = {-1: (1, 1, 1), 0: (0, 0, .9), 1: (1, 0, 0), 2: (.8, .6, 0)}


for i, (clf, y_train) in enumerate((ls30, ls50, ls100, rbf_svc)):
    plt.subplot(2, 2, i + 1)  # 创建子图

    Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
    Z = Z.reshape(xx.shape)

    plt.contourf(xx, yy, Z, cmap = plt.cm.Paired)
    plt.axis('off')

    # 绘制训练点
    colors = [color_map[Y] for Y in y_train]
    plt.scatter(X[:, 0], X[:, 1], c = colors, edgecolors = 'black')
    plt.title(titles[i])

plt.suptitle("Unlabeled points are colored white", Y = 0.1)
plt.show()

基于 Anaconda + Jupyter Notebook 环境的运行结果为:

标签传播与SVM的决策边界

由图可知,即使使用少量的标记数据,Label Propagation 也能学习到良好的边界。

 

推荐阅读:

sklearn学习笔记 半监督分类 之 标签传播对手写数字分类

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值