• libsvm 的使用


    1. libsvm 支持的SVM模型

    官网地址:LIBSVM – A Library for Support Vector Machines

    libsvm 支持的 SVM 模型如下(C:classification,R:regression):

    • C-SVC(C-support vector classification),
    • nu-SVC(nu-support vector classification),
    • one-class SVM(distribution estimation),
    • epsilon-SVR(epsilon-support vector regression),
    • nu-SVR(nu-support vector regression)

    2. 一个简单demo

    %% 加载数据到内存;
    load heart_scale.mat
    
    X = heart_scale_inst;
    y = heart_scale_label;
    
    N = size(X, 1);
    
    %% 将数据集划分为训练集和测试集
    idx = randperm(N);          % 对全部样本的一次全排列;
    prop = floor( .75*N);
    
    train_X = X(1:prop, :) ;
    test_X = X(prop+1:end, :);
    train_y = y(1:prop, :);
    test_y = y(prop+1:end, :);
    
    %% 通过训练集进行训练
    model = svmtrain(train_y, train_X, '-s 0 -t 2 -c 1.2 -g 2.8')
    % 将训练好的模型作用在训练集,查看准确率情况
    [predicted_labels, accuracy, decision_values] = svmpredict(train_y, train_X, model);
    
    %% 在真实的测试集上进行测试
    predicted_labels = svmpredict(test_y, test_X, model);
    accuracy = sum(predicted_labels == test_y) / length(test_y)
    • svmtrain 参数的意义:
      • -s svm类型:SVM设置类型(默认0)
        % 0 – C-SVC
        % 1 –v-SVC
        %2 – 一类SVM
        %3 – e -SVR
        % 4 – v-SVR
      • -t 核函数类型:核函数设置类型(默认2)
        % 0 – 线性:u’v
        % 1 – 多项式:(r*u’v + coef0)^degree
        % 2 – RBF函数:exp(-r|u-v|^2)
        % 3 –sigmoid:tanh(r*u’v + coef0)
      • -c cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1)
      • -g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)

    常见问题的解决

  • 相关阅读:
    MariaDB · 版本特性 · MariaDB 的 GTID 介绍
    stm8s 中断重复进入
    PCB积累
    链表的创建、增加、删除、改数据、遍历
    百度文库文字下载工具指引
    防倒灌的开关电路
    AD快速从原理图查找pcb中元件
    三目运算符填坑
    嵌入式结构化分层思想
    原码,反码,补码
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421404.html
Copyright © 2020-2023  润新知