IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> SVM C++ -> 正文阅读

[数据结构与算法]SVM C++

SVM

学习使用 libsvm 库。详细说明见这里

使用工具训练

库中有编写好的训练程序 svm_train 可以按照要求的数据格式训练模型。训练数据格式:

<label> <index1>:<value1> <index2>:<value2> ...
.
.
.

每一行是一个训练数据,结尾由 '\n' 分开。对于 <label>,如果是一个整数,那么为分类(支持多个类训练)。如果是实数,那么是回归。

<index>:<value>代表第 index 处特征值为 value。index 从 1 开始递增,自定义的核函数除外。若使用自定义核函数:

# sample i; training
<label> 0:i 1:K(xi, x1) ... L:K(xi, xL)

# testing; ? can be any value
<label> 0:? 1:K(x, x1) ... L:K(x, xL)

使用库编程

所有的函数都在 svm.h 中声明。训练模型函数

struct svm_model *svm_train(const struct svm_problem *prob,
						const struct svm_parameter *param);

需要定义 svm_problemsvm_parameter

struct svm_problem
{
    int l; // number of samples
    double *y; // pointer to labels
    struct svm_node **x; // pointer to all data samples
};

比如,

 LABEL    ATTR1    ATTR2    ATTR3    ATTR4    ATTR5
 -----    -----    -----    -----    -----    -----
 1        0        0.1      0.2      0        0
 2        0        0.1      0.3     -1.2      0
 1        0.4      0        0        0        0
 2        0        0.1      0        1.4      0.5
 3       -0.1     -0.2      0.1      1.1      0.1

那么结构为

l = 5

y -> 1 2 1 2 3

x -> [ ] -> (2,0.1) (3,0.2) (-1,?)
    [ ] -> (2,0.1) (3,0.3) (4,-1.2) (-1,?)
    [ ] -> (1,0.4) (-1,?)
    [ ] -> (2,0.1) (4,1.4) (5,0.5) (-1,?)
    [ ] -> (1,-0.1) (2,-0.2) (3,0.1) (4,1.1) (5,0.1) (-1,?)

(index, value) 存储在 svm_node 结构中

struct svm_node
{
    int index;
    double value;
};

index = -1 代表每个数据点结尾。

svm_problem 定义可见头文件,参数解释见文档和 libsvm 上的调参手册。库中还提供了诸如 svm_XXX 函数辅助调用分析训练的 SVM 模型,多加利用。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:36:08  更:2021-08-05 17:38:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:57:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码