svm

支持向量机SVM

淺唱寂寞╮ 提交于 2020-02-25 15:58:45
1.概念 支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 支持向量机,其含义是通过支持向量运算的分类器。其中“机”的意思是机器,可以理解为分类器。 机器学习的一般框架 训练集-》提取特征向量-》结合一定算法-》得到结果 2.SVM 如下几种核函数: 3. 使用 import numpy as np import matplotlib.pyplot as plt from sklearn import svm from sklearn.datasets import make_blobs #创建50个数据点,让他们分为两类 X,y=make_blobs(n_samples=50,centers=2,random_state=6) #创建一个线性内核的支持向量机模型 clf = svm.SVC(kernel='rbf',C=100) clf.fit(X,y) plt.scatter(X[:,0],X[:,1],c=y,s =30,cmap=plt.cm.Paired) ax = plt.gca() xlim= ax.get_xlim() ylim= ax.get_ylim()

Variable importance for support vector machine and naive Bayes classifiers in R

孤街浪徒 提交于 2020-02-21 04:03:08
问题 I’m working on building predictive classifiers in R on a cancer dataset. I’m using random forest, support vector machine and naive Bayes classifiers. I’m unable to calculate variable importance on SVM and NB models I end up receiving the following error. Error in UseMethod("varImp") : no applicable method for 'varImp' applied to an object of class "c('svm.formula', 'svm')" I would greatly appreciate it if anyone could help me. 回答1: Given library(e1071) model <- svm(Species ~ ., data = iris)

svm分类和回归的区别

别等时光非礼了梦想. 提交于 2020-02-14 11:49:38
分类问题 类别是固定的,假设有3类,更改输入得到类别在这三类之间: import numpy as np import matplotlib.pyplot as plt from sklearn import svm a = np.array([[0, 1], [2, 3], [4, 5], [6, 7] ]) b = np.array([0, 1, 2, 3]) clf = svm.SVC(C=0.5, kernel='linear', decision_function_shape='ovr') clf.fit(a, b, sample_weight=None) print(clf.predict([[2, 1]])) ''' [1] ''' 回归是得到一个模型,比如y = ax + b 回归得到值随x变化而变化。 import numpy as np import matplotlib.pyplot as plt from sklearn import svm X = [[0, 0], [2, 2]] y = [0.5, 2.5] clf = svm.SVR(kernel='linear') clf.fit(X, y) print(clf.predict([[2, 1]])) 来源: CSDN 作者: qq_43043256 链接: https://blog.csdn.net

Python调用libsvm

别等时光非礼了梦想. 提交于 2020-02-11 17:13:53
1 # -*- coding: utf-8 -*- 2 import os, sys 3 path = r"D:\Program Files (x86)\libsvm-3.22\python" 4 sys.path.append(path) 5 from svmutil import * 6 7 8 y, x = svm_read_problem('data.txt') 9 prob = svm_problem(y, x) 10 param = svm_parameter('-t 1 -c 4 -b 1') 11 model = svm_train(prob, param) 12 svm_save_model('class3.model', model) 13 print("保存模型完成!") 14 model1 = svm_load_model('class3.model') 15 print("加载模型完成!") 16 #yt = [3] 17 yt = [int(y[1417])] 18 #xt = [{1: 89.0, 2: 112.0, 3: 111.0, 4: 96.0, 5: 82.0, 6: 55.0, 7: 103.0, 8: 103.0, 9: 72.0, 10: 87.0, 11: 89.0, 12: 71.0, 13: 108.0, 14: 97.0, 15

libsvm使用心得

牧云@^-^@ 提交于 2020-02-11 03:50:06
首先下载Libsvm、Python和Gnuplot: l libsvm的主页 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 上下载libsvm (我自己用2.86版本) l python的主页 http://www.python.org 下载 python (我自己用2.5版本) l gnuplot的主页 http://www.gnuplot.info/ 下载gnuplot (我用4.0版本) LIBSVM 使用的一般步骤是: 1)按照LIBSVM软件包所要求的格式准备数据集; 2)对数据进行简单的缩放操作; 3)首要考虑选用RBF 核函数; 4)采用交叉验证选择最佳参数C与g ; 5)采用最佳参数C与g 对整个训练集进行训练获取支持向量机模型; 6)利用获取的模型进行测试与预测。 1)LIBSVM使用的数据格式 该软件使用的训练数据和检验数据文件格式如下: [label] [index1]:[value1] [index2]:[value2] ... [label] [index1]:[value1] [index2]:[value2] ... 一行一条记录数据,如: +1 1:0.708 2:1 3:1 4:-0.320 5:-0.105 6:-1 这里(x,y)à((0.708,1,1, -0.320, -0.105, -1), +1)

Linux下的Libsvm使用历程录

99封情书 提交于 2020-02-11 02:55:41
原文:http://blog.csdn.net/meredith_leaf/article/details/6714144 Linux下的Libsvm使用历程录 首先下载Libsvm、Python和Gnuplot: libsvm的主页 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 上下载libsvm (偶用3.1版本) python的主页http://www.python.org下载 python (偶用3.2.1版本) gnuplot的主页 http://www.gnuplot.info/ 下载gnuplot (偶用4.4.3版本) LIBSVM 使用的一般步骤是: 1)按照LIBSVM软件包所要求的格式准备数据集; 2)对数据进行简单的缩放操作; 3)首要考虑选用RBF 核函数; 4)采用交叉验证选择最佳参数C与g ; 5)采用最佳参数C与g 对整个训练集进行训练获取支持向量机模型; 6)利用获取的模型进行测试与预测。 在执行以下操作之前先make生成 svm-scale, svm-train, svm-predict三个可执行文件。 1)LIBSVM使用的数据格式 该软件使用的训练数据和检验数据文件格式如下: [label] [index1]:[value1] [index2]:[value2] ... [label] [index1]:

LibSVM-windows

佐手、 提交于 2020-02-11 01:19:19
本系列文章由 @YhL_Leo 出品,转载请注明出处。 文章链接: http://blog.csdn.net/yhl_leo/article/details/50112477 官方Web: https://www.csie.ntu.edu.tw/~cjlin/libsvm/ GitHub: https://github.com/cjlin1/libsvm Tutorial: http://ntu.csie.org/~piaip/svm/svm_tutorial.html 1 库组成 Dos下运行程序有编译好的 exe 文件可以直接运行。例如本人的 libSVM (版本为3.20)解压在 E:\ClassTask\libsvm-3.20 目录下: 其中 heart_scale 文件是一个libSVM库提供的训练示例样本,打开后可以发现里面是一堆这样的数据: 很容易看出,数据集结构是: label vec{(index_1,value_1), ...(index_13, value_13)} 即两类观测值 +1 和 -1 ,后面的13维向量是每个样本某一特征的特征值。 进入 windows 子文件夹下有: 其中包含四个 exe 文件: svm-predict :依照已经训练好的model ,输入新的数据,并输出预测新数据的类别。 svm-scale

机器学习(Machine Learning)- 吴恩达(Andrew Ng) 学习笔记(十二)

吃可爱长大的小学妹 提交于 2020-02-11 00:27:42
Support Vector Machines 支持向量机 支持向量机是监督学习算法的一种,在学习复杂的非线性方程时提供了一种更为清晰、更为强大的学习方式。 Optimization objective Alternative view of logistic regression 先介绍一下逻辑回归 \(h_\theta(x) = \frac{1}{1 + e^{-\theta^Tx}}\) If \(y = 1\) , we want \(h_\theta(x) \approx 1\) , \(\theta^Tx >> 0\) If \(y = 0\) , we want \(h_\theta(x) \approx 0\) , \(\theta^Tx << 0\) Cost of example: \(-(y\ logh_\theta(x) + (1-y)log(1-h_\theta(x)))\) = \(-ylog\frac{1}{1+e^{-\theta^Tx}} - (1-y)log(1-\frac{1}{1+e^{-\theta^Tx}}))\) 每个样本都对总的代价函数有影响,下图为具体关系。 扩展: 从代价函数开始修改,实现支持向量机。 如图所示,在左边的图中取 \(z = 1\) 点,画出要用的代价函数(看起来和逻辑回归的曲线有点相似,但它的是直线)

Learning to Rank之Ranking SVM 简介

陌路散爱 提交于 2020-02-10 14:23:34
排序一直是信息检索的核心问题之一,Learning to Rank(简称LTR)用机器学习的思想来解决排序问题(关于Learning to Rank的简介请见我的博文 Learning to Rank简介 )。LTR有三种主要的方法:PointWise,PairWise,ListWise。Ranking SVM算法是PointWise方法的一种,由R. Herbrich等人在2000提出, T. Joachims介绍了一种基于用户Clickthrough数据使用Ranking SVM来进行排序的方法(SIGKDD, 2002)。 1. Ranking SVM的主要思想 Ranking SVM是一种Pointwise的排序算法, 给定查询q, 文档d 1 >d 2 >d 3 (亦即文档d 1 比文档d 2 相关, 文档d 2 比文档d 3 相关, x 1 , x 2 , x 3 分别是d 1 , d 2 , d 3 的特征)。为了使用机器学习的方法进行排序,我们将排序转化为一个分类问题。我们定义新的训练样本, 令x 1 -x 2 , x 1 -x 3 , x 2 -x 3 为正样本,令x 2 -x 1 , x 3 -x 1 , x 3 -x 2 为负样本, 然后训练一个二分类器(支持向量机)来对这些新的训练样本进行分类,如下图所示: 左图中每个椭圆代表一个查询,

如何利用python使用libsvm

£可爱£侵袭症+ 提交于 2020-02-10 14:23:17
一:libsvm包下载与使用: LIBSVM 是台湾大学林智仁(Lin Chih-Jen) 副教授 等开发设计的一个简单、易于使用和快速有效的SVM 模式识别 与回归的 软件 包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了 源代码 ,方便改进.在作者主页 http://www.csie.ntu.edu.tw/~cjlin/ 可以方便下载。 1. 把包解压在C盘之中,如:C:\libsvm-3.18 2. 因为要用libsvm自带的脚本grid.py和easy.py,需要去官网下载绘图工具gnuplot,解压到c盘 3. 进入c:\libsvm\tools目录下,用文本编辑器(记事本,edit都可以)修改grid.py和easy.py两个文件,找到其中关于gnuplot路径的那项,根据实际路径进行修改,并保存 4python与libsvm的连接(参考 SVM学习笔记(2)LIBSVM在python下的使用 ) a.打开IDLE(python GUI),输入 >>>import sys >>>sys.version 如果你的python是32位,将出现如下字符: ‘2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]’ 这个时候LIBSVM的python接口设置将非常简单