testsvm.cpp

来自「C++编写的机器学习算法 Lemga is a C++ package whi」· C++ 代码 · 共 49 行

CPP
49
字号
/* $Id: testsvm.cpp 2501 2005-11-14 07:10:45Z ling $ */#include <iostream>#include <fstream>#include <lemga/svm.h>int main (unsigned int argc, char* argv[]) {    if (argc < 4) {        std::cerr << "Usage: " << argv[0] << " datafile n_train n_test"                  << "\n";        return -1;    }    /* open data file */    std::ifstream fd(argv[1]);    if (!fd.is_open()) {        std::cerr << argv[0] << ": data file ("                  << argv[1] << ") open error\n";        return -2;    }    /* load training and test data */    lemga::pDataSet trd = lemga::load_data(fd, atoi(argv[2]));    lemga::pDataSet ted = lemga::load_data(fd, atoi(argv[3]));    std::cout << trd->size() << " training samples and "              << ted->size() << " test samples loaded\n";    fd.close();    /* train SVM */    lemga::kernel::RBF kernel(0.5);    lemga::SVM svm(kernel);    svm.set_train_data(trd);    svm.set_C(10);    svm.train();    std::cout << "Total " << svm.n_support_vectors() << " support vectors."              << " Please check with svm_train() output above.\n";    /* test SVM */    double tre = 0, tee = 0;    for (UINT i = 0; i < trd->size(); ++i)        tre += (svm(trd->x(i))[0] != trd->y(i)[0]);    for (UINT i = 0; i < ted->size(); ++i)        tee += (svm(ted->x(i))[0] != ted->y(i)[0]);    std::cout << "training error: " << tre / trd->size()              << ", test error: " << tee / ted->size() << "\n";    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?