Skip to content

load csv file, call libsvm for mechainze learning, export predict csv file

Notifications You must be signed in to change notification settings

abbypan/SimpleCall-LIBSVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

NAME

SimpleCall::LIBSVM

load csv file, call libsvm for mechainze learning, export predict csv file

sep

default sep is comma, ','

EXAMPLE

example in xt/ directory, use iris data

xt/test_libsvm.pl

use SimpleCall::LIBSVM;

my $s = SimpleCall::LIBSVM->new();

#train

my %data_opt = (
    type => 'Species', 
    data => [ qw/SepalLength SepalWidth PetalLength PetalWidth/ ], 
);

my $train = 'iris_train.csv';
my $train_opt = '-h 0';

my ($train_data, $train_type) = $s->conv_file_to_libsvm($train, %data_opt);
my $train_model = $s->train_libsvm($train_data, "$train.libsvm.model", train_opt => $train_opt);

# test

my $test = 'iris_test.csv';
my $predict_opt = '';

my ($test_data, $test_type) = $s->conv_file_to_libsvm($test, 
    libsvm_type => $train_type, 
    %data_opt,
);
my $test_out = $s->predict_libsvm($test_data, $train_model, "$test.libsvm.out", predict_opt=>$predict_opt);
my $test_predict_f = $s->conv_libsvm_to_file($test, 
    libsvm_type=> $test_type, 
    libsvm_out => $test_out,
    predict_file => "$test.predict.csv",
);

xt/chart_libsvm.pl

perl chart_libsvm.pl [predict_csv_file] [predict_type_column_index] [cnt_column_index]

example chart is  xt/iris_test.csv.predict.csv.0.x.png

FUNCTION

new

init

my $s = SimpleCall::LIBSVM->new( sep => ',' );

conv_file_to_libsvm

conv src file into libsvm format : $train -> $train_data , $train_type : map type into integer

my ($train_data, $train_type) = $s->conv_file_to_libsvm($train, 
    type => 'xxx',
    data => [ 'yyy', 'zzz' ], 
    # libsvm_type => 'kkkk.libsvm.type' ,  #have exists type file
    );

train_libsvm

call svm-train to build model file

my $train_model = $s->train_libsvm($train_data, "$train.libsvm.model", train_opt => $train_opt);

predict_libsvm

call svm-predict to predict $test_data use $train_model

my $test_out = $s->predict_libsvm($test_data, $train_model, "$test.libsvm.out", predict_opt=>$predict_opt);

conv_libsvm_to_file

merge libsvm predict out file, rewrite $test, add predict column ahead

my $test_predict_f = $s->conv_libsvm_to_file($test, 
    libsvm_type=> $test_type, 
    libsvm_out => $test_out,
    predict_file => "$test.predict.csv",
);

About

load csv file, call libsvm for mechainze learning, export predict csv file

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages