机器学习实验—使用LibSVM

这篇博客详细介绍了如何在VS环境下使用LibSVM进行机器学习实验,包括加载库、训练模型、预测和保存模型的过程。实验结果显示,使用模型分类的准确率为0.94305。
摘要由CSDN通过智能技术生成

一、实验目的和内容

        1、掌握数据预处理的方法,对训练集数据进行预处理;
        2、掌握分类算法的原理,基于有监督的机器学习方法,训练文本分类器;
        3、了解SVM机器学习方法,可以运用开源工具LibSVM完成文本分类过程并且根据测试文档已给出的Lable标签计算准确率。

二、实验过程

        1、下载并解压解压LibSVM开源工具
        Libsvm是一个开源的软件包,需要者都可以免费的从作者的个人主页http://www.csie.ntu.edu.tw/~cjlin/ 处获得。下载地址为:  

http://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html


        解压后的工具包内容包含Python、Java、C++版本以及可以直接在cmd状态下运行的exe文件。


        2、在VS环境下使用LibSVM
        开源工具包里面已经包含了用于C++环境编译的源码,新建一个工程,将svm.h、svm.cpp、svm-train.cpp导入,然后新建一个C++文件svm-example.cpp,这个文件里面调用了svm.h、svm.cpp、svm-train.cpp的相关内容。svm-example.cpp源码如下:

#include "svm.h"
#include <string.h>
#include<iostream>
using namespace std;
svm_parameter param;
void init_param(){
	param.svm_type = C_SVC;
	param.kernel_type = RBF;
	param.degree = 3;
	param.gamma = 0.0078125;
	param.coef0 = 0;
	param.nu = 0.5;
	param.cache_size = 1024;
	param.C = 2048;
	param.eps = 1e-5;
	param.shrinking = 1;
	param.probability = 0;
	param.nr_weight = 0;
	param.weight_label = NULL;
	param.weight = NULL;
}
int main(){
	init_param();
	svm_problem prob;
	prob.l = 8285; //样本数
	prob.y = new double[prob.l];
	double d;
	int probfeature = 11; //样本特征维数

	if (param.gamma == 0) param.gamma = 0.5;
	svm_node *x_space = new svm_node[(probfeature + 1)*prob.l];//样本特征存储空间
	prob.x = new svm_node *[prob.l]; //每一个X指向一个样本
	cout << "size: " << sizeof(x_space) << endl;
	///
	double *p = (double *)malloc(100000 * sizeof(double));
	double *q = (double *)malloc(100000 * sizeof(double));
	i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值