svm

OpenCV-Python 理解SVM | 五十五

可紊 提交于 2020-03-27 18:26:57
3 月,跳不动了?>>> 目标 在这一章中 我们将对SVM有一个直观的了解 理论 线性可分数据 考虑下面的图像,它具有两种数据类型,红色和蓝色。在kNN中,对于测试数据,我们用来测量其与所有训练样本的距离,并以最小的距离作为样本。测量所有距离都需要花费大量时间,并且需要大量内存来存储所有训练样本。但是考虑到图像中给出的数据,我们是否需要那么多? 考虑另一个想法。我们找到一条线$f(x)=ax_1 + bx_2+c$,它将两条数据都分为两个区域。当我们得到一个新的test_data $X$时,只需将其替换为$f(x)$即可。如果$f(X)> 0$,则属于蓝色组,否则属于红色组。我们可以将此行称为“ 决策边界 ”。它非常简单且内存高效。可以将这些数据用直线(或高维超平面)一分为二的数据称为 线性可分离 数据。 因此,在上图中,你可以看到很多这样的行都是可能的。我们会选哪一个?非常直观地,我们可以说直线应该从所有点尽可能远地经过。为什么?因为传入的数据中可能会有噪音。此数据不应影响分类准确性。因此,走最远的分离线将提供更大的抗干扰能力。因此,SVM要做的是找到到训练样本的最小距离最大的直线(或超平面)。请参阅下面图像中穿过中心的粗线。 因此,要找到此决策边界,你需要训练数据。那么需要全部吗?并不用。仅接近相反组的那些就足够了。在我们的图像中,它们是一个蓝色填充的圆圈和两个红色填充的正方形

python机器学习工具包scikit-learn

不问归期 提交于 2020-03-21 23:43:12
scikit-learn 这个非常强大的python机器学习工具包 http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html S1. 导入数据 大多数数据的格式都是M个N维向量,分为训练集和测试集。所以,知道如何导入向量(矩阵)数据是最为关键的一点。这里要用到numpy来协助。假设数据格式是: Stock prices indicator1 indicator2 2.0 123 1252 1.0 .. .. .. . . . 导入代码参考: import numpy as np f = open("filename.txt") f.readline() # skip the header data = np.loadtxt(f) X = data[:, 1:] # select columns 1 through end y = data[:, 0] # select column 0, the stock price libsvm格式的数据导入: >>> from sklearn.datasets import load_svmlight_file >>> X_train, y_train = load_svmlight_file("/path/to/train_dataset.txt") ...

opencv机器学习之SVM

女生的网名这么多〃 提交于 2020-03-17 05:22:31
文章目录 1.SVM原理 2.使用SVM 进行手写数据OCR 1.SVM原理 2.使用SVM 进行手写数据OCR 在kNN 中我们直接使用像素的灰度值作为特征向量。这次我们要使用方向梯度直方图Histogram of Oriented Gradients (HOG)作为特征向量。 在计算HOG 前我们使用图片的二阶矩对其进行抗扭斜(deskew)处理。 代码速记: cv2.ml.SVM_create() svm.train() svm.save() svm.predict() 实战: (1) 使用图像的二阶矩对其进行抗扭斜(deskew)处理 def deskew ( img ) : m = cv2 . moments ( img ) # 求矩 if abs ( m [ 'mu02' ] ) < 1e - 2 : return img . copy ( ) skew = m [ 'mu11' ] / m [ 'mu02' ] M = np . float32 ( [ [ 1 , skew , - 0.5 * SZ * skew ] , [ 0 , 1 , 0 ] ] ) img = cv2 . warpAffine ( img , M , ( SZ , SZ ) , flags = affine_flags ) return img (2) 使用方向梯度直方图Histogram

SVM的原理及python实战

ぐ巨炮叔叔 提交于 2020-03-17 01:05:47
SVM 是英文Support Vector Machine首字母缩写,中文名 支持向量机 。 是机器学习领域最顶尖的存在,应用领域广、预测效果好,被誉为万能分类器,正是这样,SVM的理解和学习也比其他的算法要难一些。也是本人 数据挖掘专栏 的终结篇。 为了能更好的让大家理解,这里我们对里面设计的知识点进行分解处理,所以在真正学习SVM之前,先介绍一下向量与平面、拉格朗日乘子法。 目录 一、向量与平面 1、向量 2、平面 二、拉格朗日乘子法 the"milkmaid problem”--挤奶女佣问题 灵感 三、SVM 1、线性SVM 2、软间隔 3、核函数 四、python实战 1、线性可分 2、软间隔 3、核函数 五、总结 一、向量与平面 1、向量 对于一个向量 a ,只需要关心它的方向和大小(长短),即终点坐标-起点坐标,不需要关心位置。 假设有两个向量 a,b a=(a1,a2) b= (b1,b2) 根据高中知识可以得到这两个向量的内积公式 a∙ b =a1b1+a2b2=‖ a ‖ ‖ b ‖cosa 我们做一个简单的变换 我们再加入两个向量c、 d a= c + d, c⊥b 且 d//b 那么我们又可以得到 a∙ b =(c+d) ∙ b =c∙ b + d ∙ b = ‖d‖ ‖b‖ 这是最基本的公式,接下来会用到 2、平面 超平面的理解 假定W和x是n维向量

SVM简介及sklearn参数

吃可爱长大的小学妹 提交于 2020-03-15 14:01:26
1.SVM简介   SVM方法建立在统计学VC维和结构风险最小化原则上,既可以用于分类(二/多分类)、也可用于回归和异常值检测。SVM具有良好的鲁棒性,对未知数据拥有很强的泛化能力,特别是在数据量较少的情况下,相较其他传统机器学习算法具有更优的性能。    使用SVM作为模型时,通常采用如下流程: 对样本数据进行归一化 应用核函数对样本进行映射(最常采用和核函数是RBF和Linear,在样本线性可分时,Linear效果要比RBF好) 用cross-validation和grid-search对超参数进行优选 用最优参数训练得到模型 测试   sklearn中支持向量分类主要有三种方法:SVC、NuSVC、LinearSVC,扩展为三个支持向量回归方法:SVR、NuSVR、LinearSVR。   SVC和NuSVC方法基本一致,唯一区别就是损失函数的度量方式不同(NuSVC中的nu参数和SVC中的C参数);LinearSVC是实现线性核函数的支持向量分类,没有kernel参数,也缺少一些方法的属性,如support_等。 2. 参数 SVC  class sklearn.svm. SVC ( C=1.0 , kernel='rbf' , degree=3 , gamma='auto' , coef0=0.0 , shrinking=True , probability=False

核函数及SVM核函数的选择

元气小坏坏 提交于 2020-03-07 02:12:59
核函数: 当数据非线性可分时,可将数据从低维空间映射到高维空间,使数据在高维空间线性可分,之后在优化时需要计算内积,复杂度很高。而核函数准确地说是一种核技巧,能够简便的计算内积,从而能够简便地解决非线性问题。 SVM核函数的选择: 吴恩达老师老师的建议: 1、当样本特征数目远远大于样本数量时,特征维度已经够高,这个时候往往数据线性可分,可考虑使用线性核函数。 2、当样本数量一般,样本特征维度也不高时,可以考虑高斯核 3、当样本数量较多,样本特征较少时,可考虑人工增加一些特征,使样本线性可分,然后再考虑使用线性核函数的SVM或者LR. 来源: CSDN 作者: 鸡汤本汤 链接: https://blog.csdn.net/YangTinTin/article/details/104704991

Visualize 2D / 3D decision surface in SVM scikit-learn

南楼画角 提交于 2020-03-06 09:21:53
问题 I made sklearn svm classifier work. I simply classify 2 options 0 or 1 using feature vectors. It works fine. I want to visualize it on page using graphs. Problem is that my vector is 512 item length, so hard to show on x,y graph. Is there any way to visualize classification hyperplane for a long vector of features like 512? 回答1: You cannot visualize the decision surface for a lot of features. This is because the dimensions will be too many and there is no way to visualize an N-dimensional

【机器学习】SVM支持向量机

二次信任 提交于 2020-03-04 04:27:06
from sklearn . datasets import make_circles from sklearn . svm import SVC import matplotlib . pyplot as plt from mpl_toolkits . mplot3d import Axes3D from sklearn . linear_model import LogisticRegression import numpy as np #创建样本点 ''' n_samples:创建多少啊个样本 noise :噪音 factor :方差 ''' X , y = make_circles ( noise = .1 , factor = .1 ) plt . scatter ( X [ : , 0 ] , X [ : , 1 ] , c = y ) plt . axis ( 'equal' ) #画轮廓图 x1_min , x1_max = X [ : , 0 ] . min ( ) - 1 , X [ : , 0 ] . max ( ) + 1 x2_min , x2_max = X [ : , 1 ] . min ( ) - 1 , X [ : , 1 ] . max ( ) + 1 x1 = np . linspace ( x1_min , x1_max , 50 ) x2

DetectMultiscale in a Multi classification SVM hog classifier in video stream

ぃ、小莉子 提交于 2020-03-03 11:41:05
问题 I want to create a valve detection and classification like this video : https://www.youtube.com/watch?v=VY92fqmSdfA i chose to use HOG(Histogram Oriented Gradient) + SVM, and this is how it works : 1-Read positive images (valve open) and negatives images(valve close). int const num_total_images = 100; int width = 128, height = 128; // load images vector<cv::String> fn; glob("Add here positive images path *.jpg", fn, false); vector<Mat> imagesO; size_t count = fn.size(); //number of png files

3. 支持向量机(SVM)拉格朗日对偶性(KKT)

点点圈 提交于 2020-02-28 19:15:03
1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量机(SVM)软间隔 6. 支持向量机(SVM)核函数 1. 前言 在约束最优化问题中,常常利用拉格朗日对偶性将原始问题转化为对偶问题,通过求解对偶问题获得原始问题的解。该方法应用在许多统计学方法中,如最大熵模型、支持向量机。 2. 原始问题 假设 \(f(x),c_i(x),h_j(x)\) 是定义在 \(R^n\) 上的连续可微函数。考虑如下最优化问题 \[ \min_{x\in R^n}f(x)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(1) \] \[ s.t. \; c_i(x)\leq0, \; i=1,2,...,k \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (2) \] \[ \;\;\;\;\;\;\; h_j(x)=0, \; j=1,2,...,l \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (3) \] 称此约束最优化问题为 原始最优化问题或原始问题 。