资源简介

压缩包中包括SVM分类算法的实现代码、测试数据以及实验报告

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include “svm.h“
int libsvm_version = LIBSVM_VERSION;
typedef float Qfloat;
typedef signed char schar;
#ifndef min
template  static inline T min(T xT y) { return (x#endif
#ifndef max
template  static inline T max(T xT y) { return (x>y)?x:y; }
#endif
template  static inline void swap(T& x T& y) { T t=x; x=y; y=t; }
template  static inline void clone(T*& dst S* src int n)
{
dst = new T[n];
memcpy((void *)dst(void *)srcsizeof(T)*n);
}
static inline double powi(double base int times)
{
double tmp = base ret = 1.0;

for(int t=times; t>0; t/=2)
{
if(t%2==1) ret*=tmp;
tmp = tmp * tmp;
}
return ret;
}
#define INF HUGE_VAL
#define TAU 1e-12
#define Malloc(typen) (type *)malloc((n)*sizeof(type))

static void print_string_stdout(const char *s)
{
fputs(sstdout);
fflush(stdout);
}
static void (*svm_print_string) (const char *) = &print_string_stdout;
#if 1
static void info(const char *fmt...)
{
char buf[BUFSIZ];
va_list ap;
va_start(apfmt);
vsprintf(buffmtap);
va_end(ap);
(*svm_print_string)(buf);
}
#else
static void info(const char *fmt...) {}
#endif

//
// Kernel Cache
//
// l is the number of total data items
// size is the cache size limit in bytes
//
class Cache
{
public:
Cache(int llong int size);
~Cache();

// request data [0len)
// return some position p where [plen) need to be filled
// (p >= len if nothing needs to be filled)
int get_data(const int index Qfloat **data int len);
void swap_index(int i int j);
private:
int l;
long int size;
struct head_t
{
head_t *prev *next; // a circular list
Qfloat *data;
int len; // data[0len) is cached in this entry
};

head_t *head;
head_t lru_head;
void lru_delete(head_t *h);
void lru_insert(head_t *h);
};

Cache::Cache(int l_long int size_):l(l_)size(size_)
{
head = (head_t *)calloc(lsizeof(head_t)); // initialized to 0
size /= sizeof(Qfloat);
size -= l * sizeof(head_t) / sizeof(Qfloat);
size = max(size 2 * (long int) l); // cache must be large enough for two columns
lru_head.next = lru_head.prev = &lru_head;
}

Cache::~Cache()
{
for(head_t *h = lru_head.next; h != &lru_head; h=h->next)
free(h->data);
free(head);
}

void Cache::lru_delete(head_t *h)
{
// delete from current location
h->prev->next = h->next;
h->next->prev = h->prev;
}

void Cache::lru_insert(head_t *h)
{
// insert to last position
h->next = &lru_head;
h->prev = lru_head.prev;
h->prev->next = h;
h->next->prev = h;
}

int Cache::get_data(const int index Qfloat **data int len)
{
head_t *h = &head[index];
if(h->len) lru_delete(h);
int more = len - h->len;

if(more > 0)
{
// free old space
while(size < more)
{
head_t *old = lru_head.next;
lru_delete(old);
free(old->data);
size += old->len;
old->data = 0;
old->len = 0;
}

/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      122880  2018-09-29 16:08  SVM分类算法\SVM实验报告.doc
     目录           0  2014-05-11 15:17  SVM分类算法\
     目录           0  2014-05-11 14:49  SVM分类算法\SVM实验报告\
     目录           0  2014-05-11 14:49  SVM分类算法\SVM实验报告\Debug\
     文件      250811  2011-12-07 19:50  SVM分类算法\SVM实验报告\Debug\Test.obj
     文件           0  2011-12-07 19:50  SVM分类算法\SVM实验报告\Debug\Test.sbr
     文件           0  2011-12-07 20:22  SVM分类算法\SVM实验报告\Debug\filePath
     文件      161433  2011-12-07 11:19  SVM分类算法\SVM实验报告\Debug\svm.obj
     文件           0  2011-12-07 11:19  SVM分类算法\SVM实验报告\Debug\svm.sbr
     文件      205824  2011-12-07 19:50  SVM分类算法\SVM实验报告\Debug\vc60.idb
     文件      176128  2011-12-07 19:50  SVM分类算法\SVM实验报告\Debug\vc60.pdb
     文件     3736576  2011-12-07 19:50  SVM分类算法\SVM实验报告\Debug\wenben.bsc
     文件      692275  2011-12-07 19:50  SVM分类算法\SVM实验报告\Debug\wenben.exe
     文件      892752  2011-12-07 19:50  SVM分类算法\SVM实验报告\Debug\wenben.ilk
     文件     2805060  2011-12-07 11:21  SVM分类算法\SVM实验报告\Debug\wenben.pch
     文件     1270784  2011-12-07 19:50  SVM分类算法\SVM实验报告\Debug\wenben.pdb
     文件        4105  2011-12-07 19:50  SVM分类算法\SVM实验报告\Test.cpp
     文件        8006  2011-12-07 19:50  SVM分类算法\SVM实验报告\filePath
     文件      682934  2011-12-07 19:50  SVM分类算法\SVM实验报告\model.txt
     文件        4811  2011-12-06 19:19  SVM分类算法\SVM实验报告\preditdata.txt
     文件       12009  2011-12-07 11:18  SVM分类算法\SVM实验报告\result.txt
     文件       62947  2011-05-27 11:32  SVM分类算法\SVM实验报告\svm.cpp
     文件        3160  2011-11-25 21:14  SVM分类算法\SVM实验报告\svm.h
     文件     1011971  2011-12-05 11:11  SVM分类算法\SVM实验报告\ticdata2000.txt
     文件      687817  2011-12-06 22:35  SVM分类算法\SVM实验报告\ticeval2000.txt
     文件       12007  2011-12-06 22:35  SVM分类算法\SVM实验报告\tictgts2000.txt
     文件       29899  2011-12-06 19:00  SVM分类算法\SVM实验报告\traindata.txt
     文件        4398  2011-12-07 12:01  SVM分类算法\SVM实验报告\wenben.dsp
     文件         537  2011-12-06 16:18  SVM分类算法\SVM实验报告\wenben.dsw
     文件       74752  2011-12-07 20:21  SVM分类算法\SVM实验报告\wenben.ncb
     文件       48640  2011-12-07 20:21  SVM分类算法\SVM实验报告\wenben.opt
............此处省略1个文件信息

评论

共有 条评论