如何加速基于Python的libsvm速度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何加速基于Python的libsvm速度相关的知识,希望对你有一定的参考价值。

参考技术A if not is_win32: svmtrain_exe = "../svm-train"gnuplot_exe = "/usr/bin/gnuplot"else:gnuplot_exe = "/usr/bin/gnuplot"这一行少了一个TAB键。建设你把所有行前面的空格跟TAB删除后重新打上空格或TAB键。

如何在 python 中使用 libSVM 计算精度、召回率和 F 分数

【中文标题】如何在 python 中使用 libSVM 计算精度、召回率和 F 分数【英文标题】:How to calculate precision, recall and F-score with libSVM in python 【发布时间】:2013-05-31 10:43:44 【问题描述】:

我想在 Python 中使用 libsvm 计算 precisionrecallf-score,但我不知道如何。我找到了this site,但我不明白如何调用该函数,如果你能通过示例帮助我。

【问题讨论】:

【参考方案1】:

您可以利用 scikit-learn,它是 Python 中机器学习的最佳软件包之一。它的 SVM 实现使用libsvm,您可以计算出精度、召回率和 f-score,如下面的 sn-p 所示:

from sklearn import svm
from sklearn import metrics
from sklearn.cross_validation import train_test_split
from sklearn.datasets import load_iris

# prepare dataset
iris = load_iris()
X = iris.data[:, :2]
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# svm classification
clf = svm.SVC(kernel='rbf', gamma=0.7, C = 1.0).fit(X_train, y_train)
y_predicted = clf.predict(X_test)

# performance
print "Classification report for %s" % clf
print
print metrics.classification_report(y_test, y_predicted)
print
print "Confusion matrix"
print metrics.confusion_matrix(y_test, y_predicted)

这将产生类似这样的输出:

Classification report for SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.7,
kernel=rbf, max_iter=-1, probability=False, shrinking=True, tol=0.001,
verbose=False)

             precision    recall  f1-score   support

          0       1.00      1.00      1.00         9
          1       0.90      0.69      0.78        13
          2       0.64      0.88      0.74         8

avg / total       0.86      0.83      0.84        30


Confusion matrix
[[9 0 0]
 [0 9 4]
 [0 1 7]]

当然,您可以使用您提到的libsvm tools,但它们仅适用于二进制分类,而scikit允许您使用多类。

【讨论】:

您正在加载什么数据集?例如,如果我的数据集在文本文件中,如何使用它们? 在示例中,我使用了一个名为 iris 的预定义数据集,它带有 scikit-learn。对于特定数据集,您需要将文本数据转换为 numpy 矩阵。

以上是关于如何加速基于Python的libsvm速度的主要内容,如果未能解决你的问题,请参考以下文章

清华大学张涛等 | 基于神经网络的固定时间约束下外骨骼机器人加速度重构方法

已知3维空间里刚体上3个点的加速度,如何求刚体上任意点的加速度。最好有公式推导。

基于加速度的路面平整度检测及评价

加速度传感器是怎么检测震动的

如何使用CUDA加速MATLAB计算速度?

盘点提高国内访问 Github 的速度的 9 种方案