Python 使用 LibSVM

1、下载地址下载地址

 

2、安装:pip install libsvm-3.22-cp37-cp37m-win32.whl

 

3、测试程序:

# coding:utf-8 
from svmutil import *
from svm import *
y, x = [1, -1], [{1: 1, 2: 1}, {1: -1, 2: -1}]
prob = svm_problem(y, x)
param = svm_parameter('-t 0 -c 4 -b 1')
model = svm_train(prob, param)
yt = [1]
xt = [{1: 1, 2: 1}]
p_label, p_acc, p_val = svm_predict(yt, xt, model)
print(p_label)

 

4、函数说明:

svm_problem:数据预处理,保存定义SVM模型的训练数据

svm_parameter:存储训练SVM模型所需的各种参数;

svm_train:用于训练svm_model模型

svm_predict:

参数:y 测试数据的标签;x 测试数据的输入向量;model为训练好的SVM模型。

返回值:p_labs是存储预测标签的列表;p_acc存储了预测的精确度,均值和回归的平方相关系数;p_vals在指定参数'-b 1'时将返回判定系数(判定的可靠程度)。

svm_train的参数:

  • -s SVM的类型(svm_type)

    • 0 -- C-SVC(默认):使用惩罚因子(Cost)的处理噪声的多分类器

    • 1 -- nu-SVC(多分类器):按照错误样本比例处理噪声的多分类器

    • 2 -- one-class SVM:一类支持向量机,可参见"SVDD"的相关内容

    • 3 -- epsilon-SVR(回归):epsilon支持向量回归

    • 4 -- nu-SVR(回归)

  • -t 核函数类型(kernel_type)

    • 0 -- linear(线性核):u'*v

    • 1 -- polynomial(多项式核):(gamma*u'*v + coef0)^degree

    • 2 -- radial basis function(RBF,径向基核/高斯核):exp(-gamma*|u-v|^2)

    • 3 -- sigmoid(S型核):tanh(gamma*u'*v + coef0)

    • 4 -- precomputed kernel(预计算核):核矩阵存储在training_set_file

下面是调整SVM或核函数中参数的选项:

  • -d 调整核函数的degree参数,默认为3

  • -g 调整核函数的gamma参数,默认为1/num_features

  • -r 调整核函数的coef0参数,默认为0

  • -c 调整C-SVC, epsilon-SVR 和 nu-SVR中的Cost参数,默认为1

  • -n 调整nu-SVC, one-class SVM 和 nu-SVR中的错误率nu参数,默认为0.5

  • -p 调整epsilon-SVR的loss function中的epsilon参数,默认0.1

  • -m 调整内缓冲区大小,以MB为单位,默认100

  • -e 调整终止判据,默认0.001

  • -wi调整C-SVC中第i个特征的Cost参数

调整算法功能的选项:

  • -b 是否估算正确概率,取值0 - 1,默认为0

  • -h 是否使用收缩启发式算法(shrinking heuristics),取值0 - 1,默认为0

  • -v 交叉校验

  • -q 静默模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值