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

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

h = .02

titles = ['Label Spreading 30% data',

'Label Spreading 50% data',

'Label Spreading 100% data',

'SVC with rbf kernel']

iris = datasets.load_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_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学习笔记 半监督分类 之 标签传播对手写数字分类

相关知识

作业5:SVM实现鸢尾花分类
SVM实现鸢尾花分类
环境适应性:人类智能的灵活性
用svm进行鸢尾花分类
[Python嗯~机器学习]
基于花授粉算法优化实现SVM数据分类
【机器学习】SVM对Iris鸢尾花数据集实现多分类
机器学习笔记14
sklearn机器学习支持向量机案例解析
【机器学习】花卉识别01

网址: sklearn学习笔记 半监督分类 之 标签传播与SVM的决策边界 https://m.huajiangbk.com/newsview1155558.html

所属分类:花卉
上一篇: 圣诞节,手作创意干花标签送给你!
下一篇: 玫瑰花藤花边图片