标签: svm

人工神经网络相对于支持向量机有什么优势?

ANN(人工神经网络)和SVM(支持向量机)是监督机器学习和分类的两种流行策略.通常不清楚哪种方法对特定项目更好,而且我确定答案总是"它取决于".通常,使用两者的组合以及贝叶斯分类.

有关ANN与SVM的问题已经在Stackoverflow上提出了这些问题:

ANN和SVM分类

ANN,SVM和KNN在我的分类问题上有什么区别

支持向量机或人工神经网络进行文本处理?

在这个问题中,我想具体了解人工神经网络(特别是多层感知器)的哪些方面可能需要在SVM上使用?我问的原因是因为很容易回答相反的问题:支持向量机通常优于人工神经网络,因为它们避免了人工神经网络的两个主要缺点:

(1)人工神经网络通常会集中在局部最小值而不是全局最小值,这意味着它们有时基本上"错过了大局"(或者错过了树木的森林)

(2)如果训练时间过长,人工神经网络常常过度拟合,这意味着对于任何给定的模式,人工神经网络可能会开始将噪声视为模式的一部分.

SVM不会遇到这两个问题中的任何一个.然而,并不是很明显SVM应该是人工神经网络的完全替代品.那么人工神经网络对SVM有哪些具体优势可能使其适用于某些情况?我已经列出了SVM相对于ANN的特定优势,现在我想看一下ANN优势列表(如果有的话).

classification machine-learning svm neural-network

374
推荐指数
6
解决办法
12万
查看次数

支持向量的数量与训练数据和分类器性能之间的关系是什么?

我正在使用LibSVM对一些文档进行分类.最终结果显示,这些文件似乎有点难以分类.但是,我在训练模型时注意到了一些事情.那就是:如果我的训练集是例如1000,则选择其中约800个作为支持向量.我到处寻找,发现这是好事还是坏事.我的意思是支持向量的数量和分类器性能之间是否存在关系?我在上一篇文章中看过这篇文章.但是,我正在执行参数选择,并且我确信特征向量中的属性都是有序的.我只需要知道这种关系.谢谢.ps:我使用线性内核.

classification machine-learning svm libsvm

70
推荐指数
4
解决办法
5万
查看次数

使用OpenCV和SVM与图像

我在阅读图像,提取训练功能以及使用SVM在OpenCV中测试新图像时遇到困难.有人可以指点我一个很棒的链接吗?我看过OpenCV支持向量机简介.但它对阅读图像没有帮助,我不知道如何合并它.


我的目标是对图像中的像素进行分类.这些像素属于曲线.我理解形成训练矩阵(例如,图像A 1,1 1,2 1,3 1,4 1,5 2,1 2,2 2,3 2,4 2,5 3,1 3,2 3, 3 3,4 3,5

我将我的训练矩阵形成为[3] [2] = {{1,1} {1,2} {1,3} {1,4} {1,5} {2,1} .. {} }

但是,我对标签有点迷惑.根据我的理解,我必须指定训练矩阵中哪一行(图像)对应,这对应于曲线或非曲线.但是,如果有一些属于曲线的像素和一些不属于曲线的像素,我如何标记训练矩阵行(图像).例如,我的训练矩阵是[3] [2] = {{1,1} {1,2} {1,3} {1,4} {1,5} {2,1} .. {}} ,像素{1,1}和{1,4}属于曲线但其余部分不属于曲线.

c++ opencv svm

63
推荐指数
1
解决办法
6万
查看次数

SVM - 硬边还是软边?

给定线性可分的数据集,在软边界SVM上使用硬边界SVM是否更好?

algorithm machine-learning svm

56
推荐指数
2
解决办法
3万
查看次数

Scikit学习SVC decision_function并做出预测

我试图理解decision_function和predict之间的关系,它们是SVC的实例方法(http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html).到目前为止,我已经收集到决策函数返回类之间的成对分数.我的印象是预测选择最大化其成对分数的类,但我测试了它并得到了不同的结果.这是我用来尝试理解两者之间关系的代码.首先我生成了成对分数矩阵,然后我打印出了具有最大配对分数的类,该分数与clf.predict预测的类不同.

        result = clf.decision_function(vector)[0]
        counter = 0
        num_classes = len(clf.classes_)
        pairwise_scores = np.zeros((num_classes, num_classes))
        for r in xrange(num_classes):
            for j in xrange(r + 1, num_classes):
                pairwise_scores[r][j] = result[counter]
                pairwise_scores[j][r] = -result[counter]
                counter += 1

        index = np.argmax(pairwise_scores)
        class = index_star / num_classes
        print class
        print clf.predict(vector)[0]
Run Code Online (Sandbox Code Playgroud)

有谁知道这些预测和决策功能之间的关系?

python numpy svm scikit-learn

54
推荐指数
4
解决办法
6万
查看次数

如何使用支持向量机(SVM)进行多类分类

在每本书和例子中,它们总是只显示二进制分类(两个类),新的向量可以属于任何一个类.

这里的问题是我有4个类(c1,c2,c3,c4).我已经训练了4个班级的数据.

对于新的向量,输出应该是

C1 80%(获胜者)

c2 10%

c3 6%

c4 4%

这该怎么做?我打算使用libsvm(因为它最受欢迎).我不太了解它.如果你们中的任何人以前使用它,请告诉我我应该使用的具体命令.

machine-learning svm libsvm

50
推荐指数
3
解决办法
7万
查看次数

文本分类的特征选择与缩减

我目前正在开发一个项目,一个简单的情绪分析器,这样在不同的情况下会有2个和3个类.我正在使用一个非常丰富独特单词(大约200.000)的语料库.我用袋的词方法用于特征选择和以减少的数量独特特征,进行消除由于一个进行阈值出现频率.在最后一组的功能包括围绕20.000的功能,这实际上是一个90%的下降,但还不够用于测试预测的预期准确性.我正在使用LibSVMSVM-light进行训练和预测(线性RBF内核)以及PythonBash.

到目前为止观察到的最高精度约为75%,我至少需要90%.这是二进制分类的情况.对于多级培训,准确率降至约60%.在这两种情况下我都需要至少90%,并且无法计算如何增加它:通过优化训练参数通过优化特征选择

我读过有关文本分类中特征选择的文章,我发现使用了三种不同的方法,它们之间实际上有明显的相关性.这些方法如下:

  • 词袋的频率逼近(BOW)
  • 信息增益(IG)
  • X ^ 2统计(CHI)

第一种方法已经是我使用的方法,但我非常简单地使用它,需要指导以更好地使用它以获得足够高的准确度.我也缺乏IGCHI实际实施的知识,并寻求任何帮助以这种方式指导我.

非常感谢,如果您需要任何其他信息以获得帮助,请告诉我们.


  • @larsmans:频率阈值 …

nlp svm feature-extraction sentiment-analysis

49
推荐指数
2
解决办法
2万
查看次数

指向一些好的SVM教程

我一直在努力掌握支持向量机的基础知识,并下载和阅读了许多在线文章.但仍然无法掌握它.

我想知道,如果有的话

  • 很好的教程
  • 示例代码,可用于理解

或者你可以想到的东西,这将使我能够轻松学习SVM基础知识.

PS:我以某种方式设法学习PCA(主成分分析).顺便说一句,你们猜想我正在研究机器学习.

algorithm machine-learning svm libsvm

48
推荐指数
5
解决办法
2万
查看次数

使SVM在python中运行得更快

在python中使用以下代码用于svm:

from sklearn import datasets
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import SVC
iris = datasets.load_iris()
X, y = iris.data, iris.target
clf = OneVsRestClassifier(SVC(kernel='linear', probability=True, class_weight='auto'))
clf.fit(X, y)
proba = clf.predict_proba(X)
Run Code Online (Sandbox Code Playgroud)

但这需要花费大量时间.

实际数据维度:

train-set (1422392,29)
test-set (233081,29)
Run Code Online (Sandbox Code Playgroud)

我怎样才能加快速度(平行或其他方式)?请帮忙.我已经尝试过PCA和下采样.

我有6节课.编辑:发现http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html 但我希望进行概率估计,而且对于svm来说似乎并非如此.

编辑:

from sklearn import datasets
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import SVC,LinearSVC
from sklearn.linear_model import SGDClassifier
import joblib
import numpy as np
from sklearn import grid_search
import multiprocessing
import numpy as np
import math

def …
Run Code Online (Sandbox Code Playgroud)

python svm scikit-learn

47
推荐指数
4
解决办法
4万
查看次数

sklearn中的SVM是否支持增量(在线)学习?

我目前正在设计文本文章的推荐系统("有趣"或"不感兴趣"的二进制案例).我的一个规格是它应该不断更新以适应不断变化的趋势.

据我所知,最好的方法是利用支持增量/ 在线学习的机器学习算法.

像Perceptron和Winnow这样的算法支持在线学习,但我不完全确定支持向量机.scikit-learn python库是否支持在线学习?如果是,支持向量机是否可以使用它的算法之一?

我显然没有完全依赖于使用支持向量机,但由于它们的全面性能,它们通常是用于二进制分类的算法.我愿意改变最终最适合的东西.

python machine-learning svm scikit-learn

42
推荐指数
4
解决办法
2万
查看次数