svm

LibSVM for Python 使用

半世苍凉 提交于 2020-02-10 14:22:54
经历手写SVM的惨烈教训(还是太年轻)之后,我决定使用工具箱/第三方库 Python libsvm的GitHub仓库 LibSVM是开源的SVM实现,支持C, C++, Java,Python , R 和 Matlab 等, 这里选择使用Python版本。 安装LibSVM 将LibSVM仓库的所有内容放入Python的包目录\Lib\site-packages或者工程目录中。 在libsvm根目录和python子目录下中分别新建名为 __init__.py 的空文件,这两个空文件将标识所在的目录为python包可以直接导入。 允许草民吐槽一下各种Blog里切换根目录的奇怪的解决方案: 这个 和 这个 因为经常使用svm,所以草民将libsvm包放入\Lib\site-packages目录下。在Python交互环境或在任意脚本中都可以使用 import libsvm.python 来使用libsvm的python接口。 使用LibSVM LibSVM的使用非常简单,只需调用有限的接口 示例1: from libsvm.python.svmutil import * from libsvm.python.svm import * y, x = [1,-1], [{1:1, 2:1}, {1:-1,2:-1}] prob = svm_problem(y, x) param = svm

机器学习之支持向量机

删除回忆录丶 提交于 2020-02-08 20:31:39
SVM与神经网络 支持向量机并不是神经网络,这两个完全是两条不一样的路吧。不过详细来说,线性SVM的计算部分就像一个单层的神经网络一样,而非线性SVM就完全和神经网络不一样了(是的没错,现实生活中大多问题是非线性的),详情可以参考知乎答案。 这两个冤家一直不争上下,最近基于神经网络的深度学习因为AlphaGo等热门时事,促使神经网络的热度达到了空前最高。毕竟,深度学习那样的多层隐含层的结构,犹如一个黑盒子,一个学习能力极强的潘多拉盒子。有人或许就觉得这就是我们真正的神经网络,我们不知道它那数以百千计的神经元干了什么,也不理解为何如此的结构能诞生如此美好的数据 —— 犹如复杂性科学般,处于高层的我们并不能知道底层的”愚群“为何能涌现。两者一比起来,SVM似乎也没有深度学习等那么令人狂热,连Hinton都开玩笑说SVM不过是浅度学习(来自深度学习的调侃)。 不然,个人觉得相对于热衷于隐含层的神经网络,具有深厚的数学理论的SVM更值得让我们研究。SVM背后伟大的数学理论基础可以说是现今人类的伟大数学成就,因此SVM的解释性也非神经网络可比,可以说,它的数学理论让它充满了理性,这样的理性是一个理工科生向往的。就如,你渴望知道食物的来源以确定食物是否有毒,如果有毒是什么毒,这样的毒会在人体内发生了什么反应以致于让你不适 —— 我的理性驱使我这么想,一个来路不明的食物是不能让我轻易接受的。

libsvm : C++ vs. MATLAB : What's With The Different Accuracies?

核能气质少年 提交于 2020-02-06 23:54:40
问题 I have two multi-class data sets with 5 labels, one for training, and the other for cross validation. These data sets are stored as .csv files, so they act as a control in this experiment. I have a C++ wrapper for libsvm, and the MATLAB functions for libsvm. For both C++ and MATLAB: Using a C-type SVM with an RBF kernel, I iterate over 2 lists of C and Gamma values. For each parameter combination, I train on the training data set and then predict the cross validation data set. I store the

libsvm : C++ vs. MATLAB : What's With The Different Accuracies?

安稳与你 提交于 2020-02-06 23:54:27
问题 I have two multi-class data sets with 5 labels, one for training, and the other for cross validation. These data sets are stored as .csv files, so they act as a control in this experiment. I have a C++ wrapper for libsvm, and the MATLAB functions for libsvm. For both C++ and MATLAB: Using a C-type SVM with an RBF kernel, I iterate over 2 lists of C and Gamma values. For each parameter combination, I train on the training data set and then predict the cross validation data set. I store the

libsvm : C++ vs. MATLAB : What's With The Different Accuracies?

北战南征 提交于 2020-02-06 23:54:27
问题 I have two multi-class data sets with 5 labels, one for training, and the other for cross validation. These data sets are stored as .csv files, so they act as a control in this experiment. I have a C++ wrapper for libsvm, and the MATLAB functions for libsvm. For both C++ and MATLAB: Using a C-type SVM with an RBF kernel, I iterate over 2 lists of C and Gamma values. For each parameter combination, I train on the training data set and then predict the cross validation data set. I store the

数据挖掘---支持向量机(SVM)

与世无争的帅哥 提交于 2020-02-06 21:02:17
•1.SVM 的基本思想: •SVM把分类问题转换成寻求分类平面的问题,并通过最大化分类边界点到分类平面的距离来实现分类。通俗的讲支持向量机的解决的问题是找到最好的分类超平面。支持向量机(Support vector machine)通常用来解决二分类问题 ​ 2.构造目标函数 类似于点到直线的距离,可以得到点到超平面的距离为 ​ •在Logistic回归算法,我们是把数据分成0类和 1 类,而同样为了推导式子的方便性,采用-1 和 1 两类。 可以将红色框的式子转换成: ​ •目标方程: ​ ​ 我们需要求的是:两数据集中几个数据最近的点的最大的距离。 在满足约束条件(即样本点为支持向量)下,最大的几何间隔中取最小的值。max L(w,b,a) 是得到支持向量的样本点,然后再这些样本点中找到min 1/2 || w ||2 的最小值(最大间隔)。 •可以得到有条件约束的最优化问题,通常引入拉格朗日函数简化上述问题,称此类问题为对偶问题(The wolfe dualproblem)。 •使用拉格朗日乘数法用来解决等式约束下的最优化问题: ​ •对偶问题的求解: •步骤1 :固定 α ,然后L(ω, b, α)对 ω 、b 求偏导,令其偏导数等于0。 ​ •把上述2式带入到L(ω, b, α)当中: ​ •步骤2 :对 α 求极大,通过步骤1 已经把变量 ω 、b 消去,函数只有 α

目标检测:R-CNN

元气小坏坏 提交于 2020-02-04 23:37:43
R-CNN:Region-CNN,是第一个成功将深度学习应用到目标检测上的算法。 R-CNN 基于卷积神经网络( CNN ),线性回归,和支持向量机(SVM)等算法 ,实现目标检测技术。 创新点: 将CNN用作目标检测的特征提取器、有监督预训练的方式初始化CNN、在CNN特征上做BoundingBox 回归。 目标检测区别于目标识别很重要的一点是其需要目标的具体位置,也就是BoundingBox。而产生BoundingBox最简单的方法就是滑窗,可以在卷积特征上滑窗。但是我们知道CNN是一个层次的结构,随着网络层数的加深,卷积特征的步伐及感受野也越来越大。例如AlexNet的Pool5层感受野为195*195, feature map大小 为32*32,显然这种感受野是不足以进行目标定位的。使用浅层的神经网络能够保留这种空间结构,但是特征提取的性能就会大打折扣。RCNN另辟蹊径,既然我们无法使用卷积特征滑窗,那我们通过 Region P roposals( 区域建议 ) 方法产生一系列的区域,然后直接使用CNN去分类这些区域是目标还是背景不就可以吗?当然这样做也会面临很多的问题,不过这个思路正是RCNN的核心。因此RCNN全称为Regions with CNN features。 RCNN算法分为4个步骤 : 候选区域生成:一张图像生成1K~2K个候选区域 (采用Selective

Machine Learning: Predict second dataset on behalf of first dataset trained classifier

六眼飞鱼酱① 提交于 2020-02-02 13:06:49
问题 i am new to "Machine Learning" and tried to implement this question but it is unclear to me. its been 2 months i am Seducing, so please help me to resolve my error. Actually, i am trying to: "Train svm classifer" on TRAIN_features and TRAIN_labels extracted from TRAIN_dataset of shape (98962,) and size 98962 "Test svm classifer" on TEST_features extracted from another dataset i.e TEST_dataset of the same shape (98962,) and size 98962 as TRAIN_dataset is. After "preprocessing" of both "TRAIN

Machine Learning: Predict second dataset on behalf of first dataset trained classifier

随声附和 提交于 2020-02-02 13:06:11
问题 i am new to "Machine Learning" and tried to implement this question but it is unclear to me. its been 2 months i am Seducing, so please help me to resolve my error. Actually, i am trying to: "Train svm classifer" on TRAIN_features and TRAIN_labels extracted from TRAIN_dataset of shape (98962,) and size 98962 "Test svm classifer" on TEST_features extracted from another dataset i.e TEST_dataset of the same shape (98962,) and size 98962 as TRAIN_dataset is. After "preprocessing" of both "TRAIN

Loading a Dataset for Linear SVM Classification from a CSV file

喜欢而已 提交于 2020-01-30 08:42:06
问题 I have a csv file below called train.csv: 25.3, 12.4, 2.35, 4.89, 1, 2.35, 5.65, 7, 6.24, 5.52, M 20, 15.34, 8.55, 12.43, 23.5, 3, 7.6, 8.11, 4.23, 9.56, B 4.5, 2.5, 2, 5, 10, 15, 20.25, 43, 9.55, 10.34, B 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, M I am trying to get this dataset be separated and classified as the following (This is the output I want): [[25.3, 12.4, 2.35, 4.89. 1, 2.35, 5.65, 7, 6.24, 5.52], [20, 15.34, 8.55, 12.43, 23.5, 3, 7.6, 8.11, 4.23, 9.56], [4.5, 2.5, 2, 5,