支持向量机学习笔记2

1 sklearn简单例子

from sklearn import svm

X = [[2, 0], [1, 1], [2,3]]
y = [0, 0, 1]
clf = svm.SVC(kernel = ‘linear‘)
clf.fit(X, y)  

print clf

# get support vectors
print clf.support_vectors_

# get indices of support vectors
print clf.support_ 

# get number of support vectors for each class
print clf.n_support_ 

2 sklearn画出决定界限

print(__doc__)

import numpy as np
import pylab as pl
from sklearn import svm

# we create 40 separable points
np.random.seed(0)
X = np.r_[np.random.randn(20, 2) - [2, 2], np.random.randn(20, 2) + [2, 2]]
Y = [0] * 20 + [1] * 20

# fit the model
clf = svm.SVC(kernel=‘linear‘)
clf.fit(X, Y)

# get the separating hyperplane
w = clf.coef_[0]
a = -w[0] / w[1]
xx = np.linspace(-5, 5)
yy = a * xx - (clf.intercept_[0]) / w[1]

# plot the parallels to the separating hyperplane that pass through the
# support vectors
b = clf.support_vectors_[0]
yy_down = a * xx + (b[1] - a * b[0])
b = clf.support_vectors_[-1]
yy_up = a * xx + (b[1] - a * b[0])

print "w: ", w
print "a: ", a
# print " xx: ", xx
# print " yy: ", yy
print "support_vectors_: ", clf.support_vectors_
print "clf.coef_: ", clf.coef_

# In scikit-learn coef_ attribute holds the vectors of the separating hyperplanes for linear models. It has shape (n_classes, n_features) if n_classes > 1 (multi-class one-vs-all) and (1, n_features) for binary classification.
#
# In this toy binary classification example, n_features == 2, hence w = coef_[0] is the vector orthogonal to the hyperplane (the hyperplane is fully defined by it + the intercept).
#
# To plot this hyperplane in the 2D case (any hyperplane of a 2D plane is a 1D line), we want to find a f as in y = f(x) = a.x + b. In this case a is the slope of the line and can be computed by a = -w[0] / w[1].

# plot the line, the points, and the nearest vectors to the plane
pl.plot(xx, yy, ‘k-‘)
pl.plot(xx, yy_down, ‘k--‘)
pl.plot(xx, yy_up, ‘k--‘)

pl.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],
           s=80, facecolors=‘none‘)
pl.scatter(X[:, 0], X[:, 1], c=Y, cmap=pl.cm.Paired)

pl.axis(‘tight‘)
pl.show()

  

时间: 2024-12-20 02:12:03

支持向量机学习笔记2的相关文章

支持向量机学习笔记--原理篇(二)

支持向量机学习笔记(二) 前言 在上一篇中,讲述了感知机是什么.接下来将叙述感知机的对偶形式,这在解决支持向量机问题中非常有用,因为直接求解存在困难时,我们往往会把它变换到其等价形式进行求解.这篇将继续上篇内容,把遗留的两个问题解释清楚. 感知机 感知机学习算法的对偶形式 现在考虑感知机学习算法的对偶形式.感知机学习算法的原始形式和对偶形式在支持向量机学习算法的原始形式和对偶形式相对应. 对偶形式的基本想法是,将w和b表示为实例xi和标记yi的线性组合的形式,通过求解其系数而求得w和b,不失一般

Halcon学习笔记之支持向量机(二)

例程:classify_halogen_bulbs.hdev 在Halcon中模式匹配最成熟最常用的方式该署支持向量机了,在本例程中展示了使用支持向量机对卤素灯的质量检测方法.通过这个案例,相信大家可以对支持向量机的使用有一个更加清晰的了解.在相当多的检测和识别的应用中,都可以使用相同的方法来解决分类问题. 图1. 卤素灯图像 大致原理: 一.准备阶段:描述样本 1. 准备好两组卤素灯图像样本,好坏的各若干张图像: 2. 对样本图像进行分割,获取卤素灯关键部位区域: 3. 选择合适的对图像的描述

ScalersTalk成长会机器学习小组第7周学习笔记

ScalersTalk成长会机器学习小组第7周学习笔记 本周主要内容 - 优化目标 - 最大间隔 - 最大间隔分类的数学背景 - 核函数I - 核函数II - 使用支持向量机 本周主要知识点: 一.优化目标 - 从另一个角度看logistic回归 hθ(x)=1(1+e?θTx) if y=1 , 我们需要hθ(x)≈1,θTx>>0 if y=0 , 我们需要hθ(x)≈0,θTx<<0 - 从另一个角度看logistic回归 - 损失函数:?(yloghθ(x))+(1?y)l

【神经网络学习笔记】LIBSVM参数讲解

支持向量机SVM(Support Vector Machine)作为一种可训练的机器学习方法可以实现模式分类和非线性回归,本文就matlab中的LIBSVM工具箱展开说明. 在matlab中调用LIBSVM工具箱可以方便的使用LIBSVM网络,台湾大学的林智仁教授已经封装好各方法,大家可以在此下载. LIBSVM工具箱的主要函数为svmtrain和svmpredict,调用格式为 model = svmtrain(train_lable,train_data,options); [predict

吴恩达“机器学习”——学习笔记五

朴素贝叶斯算法(Naive Bayes)(续学习笔记四) 两个朴素贝叶斯的变化版本 x_i可以取多个值,即p(x_i|y)是符合多项式分布的,不是符合伯努利分布的.其他的与符合伯努利的情况一样.(同时也提供一种思路将连续型变量变成离散型的,比如说房间的面积可以进行离散分类,然后运用这个朴素贝叶斯算法的变形). 第二个朴素贝叶斯的变化形式专门用来处理文本文档,即对序列进行分类,被称为朴素贝叶斯的事件模型(event model).这将使用一种不同的方式将邮件转化为特征向量. 之前的特征向量是:向量

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------