标签: svm

sklearn.svm.svc的函数predict_proba()如何在内部工作?

我正在使用scikit中的sklearn.svm.svc学习二进制分类.我正在使用它的predict_proba()函数来获得概率估计.谁能告诉我predict_proba()如何在内部计算概率?

python svm scikit-learn

39
推荐指数
1
解决办法
3万
查看次数

为什么要缩放?

我发现SVM(支持向量机)问题的扩展确实提高了它的性能......我已经读过这样的解释:

"缩放的主要优点是避免在较大数值范围内的属性占主导地位较小数值范围内的属性."

不幸的是,这对我没有帮助......有人可以给我一个更好的解释吗?先感谢您!

scaling machine-learning svm

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

可用于Python的最快SVM实现

我正在用Python构建一些预测模型,并且一直在使用scikits learn的SVM实现.它真的很棒,易于使用,而且速度相对较快.

不幸的是,我开始受到运行时的限制.我在一个大约4 - 5000的完整数据集上运行一个rbf SVM,具有650个功能.每次运行大约需要一分钟.但是通过5倍交叉验证+网格搜索(使用粗到细搜索),对于我手头的任务来说,它有点不可行.那么一般来说,人们对可以在Python中使用的最快SVM实现方面有什么建议吗?那或者任何加速我建模的方法?

我听说过LIBSVM的GPU实现,看起来它可以工作.我不知道Python中可用的任何其他GPU SVM实现,但它肯定会对其他人开放.此外,使用GPU会显着增加运行时间吗?

我还听说有一些方法可以通过在scikits中使用线性SVM +特征映射来近似rbf SVM.不确定人们对这种方法的看法.同样,使用这种方法的任何人都是运行时间的显着增加吗?

提高程序速度的所有想法都是最受欢迎的.

python gpu machine-learning svm scikit-learn

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

使用哪台机器学习库

我正在寻找一个理想情况下具有以下功能的库:

  • 实现多维数据的层次聚类(理想情况下是在相似性或距离矩阵上)
  • 实现支持向量机
  • 是在C++中
  • 有点记录(这个似乎是最难的)

我希望这是用C++编写的,因为我对这种语言最熟悉,但如果图书馆值得,我也会使用任何其他语言.我用Google搜索并发现了一些,但我没有时间尝试全部,所以我想听听其他人的经历.如果您对推荐的图书馆有一些经验,请回答.

PS:我也可以使用不同的库来进行聚类和SVM.

cluster-analysis machine-learning svm

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

支持向量机 - 比学习情境的人工神经网络更好?

我知道SVM被认为是'ANN杀手',因为它们会自动选择表示复杂性并找到全局最优(这里有一些SVM称赞引用).

但这里我还不清楚 - 所有这些优势主张只针对2级决策问题的情况还是更进一步?(我认为它们适用于非线性可分类,否则没有人会关心)

所以我想要澄清一些案例的样本:

  • SVM是否比具有多个类的ANN更好?
  • 在线设置?
  • 在强化学习这样的半监督案例中怎么样?
  • 是否有更好的无监督版SVM?

我不希望有人回答所有这些lil'子问题,而是在实践中给出SVM优于常见ANN等价物(例如FFBP,循环BP,Boltzmann机器,SOM等)的一般界限.并且优选地,理论上也是如此.

machine-learning svm reinforcement-learning neural-network

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

SVM和神经网络

SVM和神经网络有什么区别?线性svm是否与NN相同,并且对于非线性可分离问题,NN使用添加隐藏层而SVM使用不断变化的空间维度?

artificial-intelligence machine-learning svm neural-network

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

将LinearSVC的决策函数转换为概率(Scikit学习python)

我使用scikit learn(LinearSVC)的线性SVM来解决二进制分类问题.我知道LinearSVC可以给我预测标签和决策分数,但我想要概率估计(对标签的信心).我想继续使用LinearSVC因为速度(与具有线性内核的sklearn.svm.SVC相比)使用逻辑函数将决策分数转换为概率是否合理?

import sklearn.svm as suppmach
# Fit model:
svmmodel=suppmach.LinearSVC(penalty='l1',C=1)
predicted_test= svmmodel.predict(x_test)
predicted_test_scores= svmmodel.decision_function(x_test) 
Run Code Online (Sandbox Code Playgroud)

我想检查将概率估计简单地作为[1 /(1 + exp(-x))]来检查是否有意义,其中x是决策分数.

或者,我可以使用其他选项来分类,以便有效地执行此操作吗?

谢谢.

python machine-learning svm scikit-learn

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

LibSVM和LibLinear之间有什么区别

libsvmliblinear都是实现支持向量机的软件库.有什么不同?这些差异如何使liblinear比libsvm更快?

algorithm machine-learning svm libsvm

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

如何解读scikit的学习混淆矩阵和分类报告?

我有一个情感分析的任务,使用本该即时通讯语料库的意见有5类(very neg,neg,neu,pos,very pos),从1到5,所以我做的分类如下:

from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
tfidf_vect= TfidfVectorizer(use_idf=True, smooth_idf=True,
                            sublinear_tf=False, ngram_range=(2,2))
from sklearn.cross_validation import train_test_split, cross_val_score

import pandas as pd

df = pd.read_csv('/corpus.csv',
                     header=0, sep=',', names=['id', 'content', 'label'])

X = tfidf_vect.fit_transform(df['content'].values)
y = df['label'].values


from sklearn import cross_validation
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X,
                                                    y, test_size=0.33)


from sklearn.svm import SVC
svm_1 = SVC(kernel='linear')
svm_1.fit(X, y)
svm_1_prediction = svm_1.predict(X_test)
Run Code Online (Sandbox Code Playgroud)

然后根据指标我获得了以下混淆矩阵和分类报告,如下:

print '\nClasification report:\n', classification_report(y_test, …
Run Code Online (Sandbox Code Playgroud)

nlp machine-learning svm confusion-matrix scikit-learn

27
推荐指数
1
解决办法
3万
查看次数

支持向量机(SVM)的一些实现细节

在特定的应用程序中,我需要机器学习(我知道我在本科课程中学到的东西).我使用支持向量机并解决了问题.它的工作正常.

现在我需要改进系统.这里的问题是

  1. 我每周都会获得额外的培训示例.现在,系统开始使用更新的示例(旧示例+新示例)进行新的培训.我想让它增量学习.使用以前的知识(而不是前面的例子)和新的例子来获得新的模型(知识)

  2. 我的训练样例有3个班级.因此,每个训练样例都适合这三个类中的一个.我想要"未知"类的功能.任何不适合这3个类的东西都必须标记为"未知".但我不能将"未知"视为一个新类,并为此提供示例.

  3. 假设,实现了"未知"类.当类是"未知"时,应用程序的用户输入他认为该类可能的内容.现在,我需要将用户输入合并到学习中.我也不知道怎么做.如果用户输入一个新类(即一个尚未在训练集中的类),它会有什么不同吗?

我是否需要选择新算法或支持向量机可以执行此操作?

PS:我正在使用libsvm实现SVM.

machine-learning svm libsvm

26
推荐指数
3
解决办法
7903
查看次数