parent
9587f983f2
commit
c8e73cdf05
@ -1,261 +1,279 @@
|
|||||||
1.04: 2000/6/17, add "load" button to svm-toy. README
|
1.04: 2000/6/17, add "load" button to svm-toy. README
|
||||||
file updated.
|
file updated.
|
||||||
|
|
||||||
2.0: 2000/8, major updates. Include nu-svm, one-class svm, and svr
|
2.0: 2000/8, major updates. Include nu-svm, one-class svm, and svr
|
||||||
|
|
||||||
2.01: 2000/9/22, correct the calculation of obj value and number of bounded support vectors
|
2.01: 2000/9/22, correct the calculation of obj value and number of bounded support vectors
|
||||||
|
|
||||||
2.02: 2000/9/29, replace b^2/2 newsvm to regular nu svm.
|
2.02: 2000/9/29, replace b^2/2 newsvm to regular nu svm.
|
||||||
|
|
||||||
2.03: 2000/10/24 some improvements on the computational speed
|
2.03: 2000/10/24 some improvements on the computational speed
|
||||||
|
|
||||||
2.1: 2000/12/19 Java version included, regression demonstrated in svm-toy
|
2.1: 2000/12/19 Java version included, regression demonstrated in svm-toy
|
||||||
|
|
||||||
2.2: 2001/1/16 multi-class classification, nu-SVR, remove epsilon_a
|
2.2: 2001/1/16 multi-class classification, nu-SVR, remove epsilon_a
|
||||||
|
|
||||||
2.3: 2001/3/15 c+-, cross validation, fix some minor bugs
|
2.3: 2001/3/15 c+-, cross validation, fix some minor bugs
|
||||||
|
|
||||||
2.31: 2001/4/12 fix one bug on one-class SVM, use float for Cache
|
2.31: 2001/4/12 fix one bug on one-class SVM, use float for Cache
|
||||||
|
|
||||||
2.32: 2001/9/23
|
2.32: 2001/9/23
|
||||||
1. max line number of svm-scale now dynamic
|
1. max line number of svm-scale now dynamic
|
||||||
2. gcc 3.0 problem: now g++ always used
|
2. gcc 3.0 problem: now g++ always used
|
||||||
3. java code in a "libsvm" package
|
3. java code in a "libsvm" package
|
||||||
4. avoid a problem when compiled with Borland C++ builder
|
4. avoid a problem when compiled with Borland C++ builder
|
||||||
|
|
||||||
2.33: 2001/12/1
|
2.33: 2001/12/1
|
||||||
Python interface added
|
Python interface added
|
||||||
|
|
||||||
2.34: 2002/6/15
|
2.34: 2002/6/15
|
||||||
Add the subroutine svm_check_parameter in svm.cpp
|
Add the subroutine svm_check_parameter in svm.cpp
|
||||||
--> better error handling
|
--> better error handling
|
||||||
fix bug of python interface for handling different weights
|
fix bug of python interface for handling different weights
|
||||||
fix bug of cross validation in svm-train.c
|
fix bug of cross validation in svm-train.c
|
||||||
|
|
||||||
2.35: 2002/6/16
|
2.35: 2002/6/16
|
||||||
libsvm.jar was not compiled correctly in 2.34
|
libsvm.jar was not compiled correctly in 2.34
|
||||||
|
|
||||||
2.36: 2002/8/4
|
2.36: 2002/8/4
|
||||||
grid.py added: contour plot of CV accuracy
|
grid.py added: contour plot of CV accuracy
|
||||||
fix several bugs
|
fix several bugs
|
||||||
|
|
||||||
2.4: 2003/4/1
|
2.4: 2003/4/1
|
||||||
svm.cpp
|
svm.cpp
|
||||||
non-psd kernel using max(...,0) in svm.cpp
|
non-psd kernel using max(...,0) in svm.cpp
|
||||||
python interface
|
python interface
|
||||||
python interface bug (nu-svm)
|
python interface bug (nu-svm)
|
||||||
grid.py
|
grid.py
|
||||||
-log2c and -log2c for grid.py
|
-log2c and -log2c for grid.py
|
||||||
output current best
|
output current best
|
||||||
coarse grid as default (2)
|
coarse grid as default (2)
|
||||||
ssh for grid.py
|
ssh for grid.py
|
||||||
improvements of scaling
|
improvements of scaling
|
||||||
|
|
||||||
2.5: 2003/11/13
|
2.5: 2003/11/13
|
||||||
subroutines for accessing decision values and number of labels.
|
subroutines for accessing decision values and number of labels.
|
||||||
for svm.cpp, java, and python interface
|
for svm.cpp, java, and python interface
|
||||||
fix bug of svm-scale.c (about -r and -s factors)
|
fix bug of svm-scale.c (about -r and -s factors)
|
||||||
use fscanf but not sscanf in svm-predict.c (faster)
|
use fscanf but not sscanf in svm-predict.c (faster)
|
||||||
makefile for windows
|
makefile for windows
|
||||||
add "using namespace std;" in some .java files
|
add "using namespace std;" in some .java files
|
||||||
improve easy.py: output cv rate, error messages printed
|
improve easy.py: output cv rate, error messages printed
|
||||||
better checking
|
better checking
|
||||||
better python interface example svm_test.py
|
better python interface example svm_test.py
|
||||||
and some minor updates
|
and some minor updates
|
||||||
|
|
||||||
2.6: 2004/04/01
|
2.6: 2004/04/01
|
||||||
Probability estimates for classification/regression
|
Probability estimates for classification/regression
|
||||||
Python interface: use swig 1.3 instead of 1.1
|
Python interface: use swig 1.3 instead of 1.1
|
||||||
Cross validation becomes a library subroutine
|
Cross validation becomes a library subroutine
|
||||||
A few minor corrections: (not completely listed)
|
A few minor corrections: (not completely listed)
|
||||||
more interface functions such as getting svm_type
|
more interface functions such as getting svm_type
|
||||||
print nu only when Cp=Cn
|
print nu only when Cp=Cn
|
||||||
floor division in python interface
|
floor division in python interface
|
||||||
|
|
||||||
2.7: 2004/11/10
|
2.7: 2004/11/10
|
||||||
Stratified cross validation
|
Stratified cross validation
|
||||||
Better faq
|
Better faq
|
||||||
Scaling: support storing the factor of y
|
Scaling: support storing the factor of y
|
||||||
A few minor updates:
|
A few minor updates:
|
||||||
class QMatrix added
|
class QMatrix added
|
||||||
improve the use of easy.py and grid.py on windows
|
improve the use of easy.py and grid.py on windows
|
||||||
grid.py: same CV and same g: use smaller C
|
grid.py: same CV and same g: use smaller C
|
||||||
sparse input for python interface
|
sparse input for python interface
|
||||||
working set selection: < to <=
|
working set selection: < to <=
|
||||||
|
|
||||||
2.71: 2004/11/20
|
2.71: 2004/11/20
|
||||||
fix a java bug introduced from 2.6 to 2.7
|
fix a java bug introduced from 2.6 to 2.7
|
||||||
|
|
||||||
2.8: 2005/04/01
|
2.8: 2005/04/01
|
||||||
new working set selection via second order information
|
new working set selection via second order information
|
||||||
fix minor changes/corrections:
|
fix minor changes/corrections:
|
||||||
problem when cache size less than two kernel columns
|
problem when cache size less than two kernel columns
|
||||||
-v #data -> stratified CV is not loo -> ensure loo is done
|
-v #data -> stratified CV is not loo -> ensure loo is done
|
||||||
problem of typing "svm-train -c" only
|
problem of typing "svm-train -c" only
|
||||||
problem of "svm-train -n 1 -s 3 ..."
|
problem of "svm-train -n 1 -s 3 ..."
|
||||||
python interface makefile: -fPIC for 32/64bit
|
python interface makefile: -fPIC for 32/64bit
|
||||||
color change in svmtoy
|
color change in svmtoy
|
||||||
makefile in building QT svmtoy
|
makefile in building QT svmtoy
|
||||||
|
|
||||||
2.81: 2005/11/20
|
2.81: 2005/11/20
|
||||||
add a python script subset.py for subsampling
|
add a python script subset.py for subsampling
|
||||||
slightly modify the working set so it's exact the same as the paper
|
slightly modify the working set so it's exact the same as the paper
|
||||||
default cache size to 100 MB
|
default cache size to 100 MB
|
||||||
|
|
||||||
2.82: 2006/04/01
|
2.82: 2006/04/01
|
||||||
precomputed kernel
|
precomputed kernel
|
||||||
directly implement a fast powi() function
|
directly implement a fast powi() function
|
||||||
poly degree double to int
|
poly degree double to int
|
||||||
minor corrections:
|
minor corrections:
|
||||||
java code for CV
|
java code for CV
|
||||||
2.83: 2006/11/17
|
2.83: 2006/11/17
|
||||||
Fix the bug of -t 3
|
Fix the bug of -t 3
|
||||||
better checking load/save in svm-train.c/svm-predict.c/svm.cpp
|
better checking load/save in svm-train.c/svm-predict.c/svm.cpp
|
||||||
remove redundant var pos in svm_predict_values (thanks to Albert Strasheim)
|
remove redundant var pos in svm_predict_values (thanks to Albert Strasheim)
|
||||||
Better descriptions in README for the precomputed kernel
|
Better descriptions in README for the precomputed kernel
|
||||||
|
|
||||||
2.84: 2007/04/01
|
2.84: 2007/04/01
|
||||||
Improve the shrinking code: faster for some cases
|
Improve the shrinking code: faster for some cases
|
||||||
Code more 64-bit friendly: allow large -m
|
Code more 64-bit friendly: allow large -m
|
||||||
In Solver, b is replaced by p
|
In Solver, b is replaced by p
|
||||||
Subroutine max_violating_pair removed. Things are directly
|
Subroutine max_violating_pair removed. Things are directly
|
||||||
written in do_shrinking().
|
written in do_shrinking().
|
||||||
Modify do_shrinking() so variable names are the same as libsvm
|
Modify do_shrinking() so variable names are the same as libsvm
|
||||||
document
|
document
|
||||||
|
|
||||||
2.85: 2007/11/6
|
2.85: 2007/11/6
|
||||||
fix minor memory leak in svm-predict.c
|
fix minor memory leak in svm-predict.c
|
||||||
add tools/checkdata.py
|
add tools/checkdata.py
|
||||||
java to 1.5
|
java to 1.5
|
||||||
Makefile: CXX?
|
Makefile: CXX?
|
||||||
Makefile.win: avoid warning from .net 2005
|
Makefile.win: avoid warning from .net 2005
|
||||||
avoid warning of gcc 4.2
|
avoid warning of gcc 4.2
|
||||||
sigma 0.001 to 1e-12; in Newton direction of prob output
|
sigma 0.001 to 1e-12; in Newton direction of prob output
|
||||||
2 * (long int) l avoid warning of old Visual C++
|
2 * (long int) l avoid warning of old Visual C++
|
||||||
grid.py: avoid gnuplot problem on windows
|
grid.py: avoid gnuplot problem on windows
|
||||||
|
|
||||||
2.86: 2008/04/01
|
2.86: 2008/04/01
|
||||||
svm-scale for java
|
svm-scale for java
|
||||||
version number in svm.h and svm.m4
|
version number in svm.h and svm.m4
|
||||||
rename svmtrain.exe to svm-train.exe
|
rename svmtrain.exe to svm-train.exe
|
||||||
python: while 1 --> while True, Popen -> call
|
python: while 1 --> while True, Popen -> call
|
||||||
show best parameters on the contour of grid.py
|
show best parameters on the contour of grid.py
|
||||||
|
|
||||||
2.87: 2008/10/13
|
2.87: 2008/10/13
|
||||||
svm-toy/qt updated to qt4 from qt3
|
svm-toy/qt updated to qt4 from qt3
|
||||||
fix a bug in svm-scale.c
|
fix a bug in svm-scale.c
|
||||||
max feature index of -r file is considered
|
max feature index of -r file is considered
|
||||||
Makefile: add make lib; add -Wconversion and -fPIC in Makefile
|
Makefile: add make lib; add -Wconversion and -fPIC in Makefile
|
||||||
Add "rb" in load_model of svm.cpp
|
Add "rb" in load_model of svm.cpp
|
||||||
Simplify do_shrinking of svm.cpp
|
Simplify do_shrinking of svm.cpp
|
||||||
Change the order of loops in reconstrict_gradient of svm.cpp
|
Change the order of loops in reconstrict_gradient of svm.cpp
|
||||||
save the number of kernel evaluations
|
save the number of kernel evaluations
|
||||||
Add python/setup.py
|
Add python/setup.py
|
||||||
|
|
||||||
2.88: 2008/10/30
|
2.88: 2008/10/30
|
||||||
better gradient reconstructions
|
better gradient reconstructions
|
||||||
issue a warning when -h 0 may be faster
|
issue a warning when -h 0 may be faster
|
||||||
|
|
||||||
2.89: 2009/04/01
|
2.89: 2009/04/01
|
||||||
reduce input/loading time of svm-train/svm-predict by half
|
reduce input/loading time of svm-train/svm-predict by half
|
||||||
pointer function so users can specify their own outputs
|
pointer function so users can specify their own outputs
|
||||||
remove info_flush()
|
remove info_flush()
|
||||||
a extern variable libsvm_version
|
a extern variable libsvm_version
|
||||||
svm-train -q option (disable outputs)
|
svm-train -q option (disable outputs)
|
||||||
svm-scale: warning if more nonzero produced
|
svm-scale: warning if more nonzero produced
|
||||||
easy.py: popel.communiate() to avoid some deadlock (if lots of
|
easy.py: popel.communiate() to avoid some deadlock (if lots of
|
||||||
outputs when #classes is large)
|
outputs when #classes is large)
|
||||||
|
|
||||||
2.9: 2009/11/1
|
2.9: 2009/11/1
|
||||||
tools/*.py can be run under python 3.0
|
tools/*.py can be run under python 3.0
|
||||||
svm_set_quiet() in python interface to disable outputs
|
svm_set_quiet() in python interface to disable outputs
|
||||||
check gamma < 0
|
check gamma < 0
|
||||||
internal functions to be static
|
internal functions to be static
|
||||||
|
|
||||||
2.91: 2010/04/01
|
2.91: 2010/04/01
|
||||||
completely new python interface using ctype
|
completely new python interface using ctype
|
||||||
new way to set the print_string function
|
new way to set the print_string function
|
||||||
Java: able to load model from a BufferedReader directly
|
Java: able to load model from a BufferedReader directly
|
||||||
fix grid.py so -log2c can be run under python 2.6 or after
|
fix grid.py so -log2c can be run under python 2.6 or after
|
||||||
|
|
||||||
3.0: 2010/09/13
|
3.0: 2010/09/13
|
||||||
Move model structure to svm.h
|
Move model structure to svm.h
|
||||||
Two functions for freeing a model (content or the whole model)
|
Two functions for freeing a model (content or the whole model)
|
||||||
QD from Qfloat to double (better precision because SSE on 64-bit machines less accurate than i387 on 32-bit
|
QD from Qfloat to double (better precision because SSE on 64-bit machines less accurate than i387 on 32-bit
|
||||||
exit status for checkdata.py
|
exit status for checkdata.py
|
||||||
old python interface (swig) is removed
|
old python interface (swig) is removed
|
||||||
|
|
||||||
3.1: 2011/04/01
|
3.1: 2011/04/01
|
||||||
MATLAB interface:
|
MATLAB interface:
|
||||||
Merge matlab interface to core libsvm
|
Merge matlab interface to core libsvm
|
||||||
Using mexPrintf() when calling info() in MATLAB interface.
|
Using mexPrintf() when calling info() in MATLAB interface.
|
||||||
Both 32- and 64-bit windows binary files are provided
|
Both 32- and 64-bit windows binary files are provided
|
||||||
Java:
|
Java:
|
||||||
Math.random is replaced by Random in java interface
|
Math.random is replaced by Random in java interface
|
||||||
Python interface:
|
Python interface:
|
||||||
i subroutines to get SVs
|
i subroutines to get SVs
|
||||||
relative path to load *.dll and *.so
|
relative path to load *.dll and *.so
|
||||||
svm.cpp:
|
svm.cpp:
|
||||||
null pointer check before release memory in svm_free_model_content()
|
null pointer check before release memory in svm_free_model_content()
|
||||||
svm_destroy_model() no longer supported.
|
svm_destroy_model() no longer supported.
|
||||||
svm-train.c and svm-predict.c
|
svm-train.c and svm-predict.c
|
||||||
Better format check in reading data labels
|
Better format check in reading data labels
|
||||||
svm-toy:
|
svm-toy:
|
||||||
fix the svm_toy dialog path
|
fix the svm_toy dialog path
|
||||||
tools:
|
tools:
|
||||||
Using new string formatting/encoding in tools/*.py
|
Using new string formatting/encoding in tools/*.py
|
||||||
clearer png output, fix grid.py legend
|
clearer png output, fix grid.py legend
|
||||||
|
|
||||||
3.11: 2011/11/5
|
3.11: 2011/11/5
|
||||||
Set max number of iterations in the main loop of solvers
|
Set max number of iterations in the main loop of solvers
|
||||||
matlab:
|
matlab:
|
||||||
new make.m for unix/mac/windows and for matlab/octave
|
new make.m for unix/mac/windows and for matlab/octave
|
||||||
matlab and python:
|
matlab and python:
|
||||||
fix a problem that decision values returned by svmpredict is empty if number of classes = 1
|
fix a problem that decision values returned by svmpredict is empty if number of classes = 1
|
||||||
|
|
||||||
3.12: 2012/04/01
|
3.12: 2012/04/01
|
||||||
svm-toy: support loading/saving of regression data
|
svm-toy: support loading/saving of regression data
|
||||||
python interface: handle the issue of the "0th" feature if using lists
|
python interface: handle the issue of the "0th" feature if using lists
|
||||||
tools/grid.py: not redrawing contour if c,g, cv doesn't change
|
tools/grid.py: not redrawing contour if c,g, cv doesn't change
|
||||||
add setlocale when saving and loading model so not affected by users' locale
|
add setlocale when saving and loading model so not affected by users' locale
|
||||||
|
|
||||||
3.13: 2012/11/06
|
3.13: 2012/11/06
|
||||||
svm.c and svm.h:
|
svm.c and svm.h:
|
||||||
add sv_indices in model structure, so users can know which training instances are SVs
|
add sv_indices in model structure, so users can know which training instances are SVs
|
||||||
two library funs svm_get_sv_indices and svm_get_nr_sv are added
|
two library funs svm_get_sv_indices and svm_get_nr_sv are added
|
||||||
max_iter warning moved to stderr so -q won't disable it
|
max_iter warning moved to stderr so -q won't disable it
|
||||||
svm-train.c:
|
svm-train.c:
|
||||||
usage modified to stress that multiclass is supported
|
usage modified to stress that multiclass is supported
|
||||||
svm-predict.c:
|
svm-predict.c:
|
||||||
add -q for svm-predict
|
add -q for svm-predict
|
||||||
svm-scale.c:
|
svm-scale.c:
|
||||||
issue a warning if feature indices do not start from 1
|
issue a warning if feature indices do not start from 1
|
||||||
issue a warning for inconsistency between scaling-factor file and input file
|
issue a warning for inconsistency between scaling-factor file and input file
|
||||||
tools:
|
tools:
|
||||||
subset.py is written to be much faster
|
subset.py is written to be much faster
|
||||||
|
|
||||||
3.14: 2012/11/16
|
3.14: 2012/11/16
|
||||||
fix a bug: we didn't re-compile windows binary after updating svm.def
|
fix a bug: we didn't re-compile windows binary after updating svm.def
|
||||||
|
|
||||||
3.15: 2013/1/27
|
3.15: 2013/1/27
|
||||||
fix the bug of not freeing sv_indices
|
fix the bug of not freeing sv_indices
|
||||||
tools/grid.py:
|
tools/grid.py:
|
||||||
-null option: allow the search on C or g only
|
-null option: allow the search on C or g only
|
||||||
-resume option: resume tasks from an earlier run
|
-resume option: resume tasks from an earlier run
|
||||||
can be called as a python module
|
can be called as a python module
|
||||||
python interface:
|
python interface:
|
||||||
local package searched first
|
local package searched first
|
||||||
libsvm options can be str or list
|
libsvm options can be str or list
|
||||||
param.show() becomes print(param)
|
param.show() becomes print(param)
|
||||||
|
|
||||||
3.16: 2013/1/27
|
3.16: 2013/1/27
|
||||||
tools/:
|
tools/:
|
||||||
easy.py fails in 3.15. Fix it by modifying grid.py
|
easy.py fails in 3.15. Fix it by modifying grid.py
|
||||||
|
|
||||||
3.17: 2013/04/01
|
3.17: 2013/04/01
|
||||||
svm.cpp:
|
svm.cpp:
|
||||||
if class labels are 1 and -1, ensure labels[0] = 1 and labels[1] = -1
|
if class labels are 1 and -1, ensure labels[0] = 1 and labels[1] = -1
|
||||||
initialize model->sv_indices as null in svm_load_model
|
initialize model->sv_indices as null in svm_load_model
|
||||||
if nr_fold > # data, change nr_fold to be # data and ro leave-one-out cv
|
if nr_fold > # data, change nr_fold to be # data and ro leave-one-out cv
|
||||||
matlab interface:
|
matlab interface:
|
||||||
handle the problem where output variables are not specified
|
handle the problem where output variables are not specified
|
||||||
|
|
||||||
|
3.18: 2014/04/01
|
||||||
|
svm.cpp and svm-scale.c:
|
||||||
|
check return values of fscanf
|
||||||
|
matlab interface:
|
||||||
|
Makefile no longer handles octave because make.m should be used
|
||||||
|
|
||||||
|
3.19: 2014/10/27
|
||||||
|
svm.cpp:
|
||||||
|
use size_t rather than long int in some places for 64-bit windows support
|
||||||
|
matlab interface:
|
||||||
|
use size_t and mwIndex to avoid type conversions
|
||||||
|
python interface:
|
||||||
|
use __all__
|
||||||
|
|
||||||
|
3.20: 2014/11/15
|
||||||
|
matlab interface:
|
||||||
|
fix a bug in libsvmwrite.c introduced in 3.19 (cannot run on windows)
|
||||||
|
Loading…
Reference in new issue