parent
037fd7b01d
commit
fa71eaa240
@ -0,0 +1 @@
|
|||||||
|
libsvm-2.84.tar.gz
|
@ -0,0 +1,127 @@
|
|||||||
|
1.04: 2000/6/17, add "load" button to svm-toy. README
|
||||||
|
file updated.
|
||||||
|
|
||||||
|
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.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.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.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.32: 2001/9/23
|
||||||
|
1. max line number of svm-scale now dynamic
|
||||||
|
2. gcc 3.0 problem: now g++ always used
|
||||||
|
3. java code in a "libsvm" package
|
||||||
|
4. avoid a problem when compiled with Borland C++ builder
|
||||||
|
|
||||||
|
2.33: 2001/12/1
|
||||||
|
Python interface added
|
||||||
|
|
||||||
|
2.34: 2002/6/15
|
||||||
|
Add the subroutine svm_check_parameter in svm.cpp
|
||||||
|
--> better error handling
|
||||||
|
fix bug of python interface for handling different weights
|
||||||
|
fix bug of cross validation in svm-train.c
|
||||||
|
|
||||||
|
2.35: 2002/6/16
|
||||||
|
libsvm.jar was not compiled correctly in 2.34
|
||||||
|
|
||||||
|
2.36: 2002/8/4
|
||||||
|
grid.py added: contour plot of CV accuracy
|
||||||
|
fix several bugs
|
||||||
|
|
||||||
|
2.4: 2003/4/1
|
||||||
|
svm.cpp
|
||||||
|
non-psd kernel using max(...,0) in svm.cpp
|
||||||
|
python interface
|
||||||
|
python interface bug (nu-svm)
|
||||||
|
grid.py
|
||||||
|
-log2c and -log2c for grid.py
|
||||||
|
output current best
|
||||||
|
coarse grid as default (2)
|
||||||
|
ssh for grid.py
|
||||||
|
improvements of scaling
|
||||||
|
|
||||||
|
2.5: 2003/11/13
|
||||||
|
subroutines for accessing decision values and number of labels.
|
||||||
|
for svm.cpp, java, and python interface
|
||||||
|
fix bug of svm-scale.c (about -r and -s factors)
|
||||||
|
use fscanf but not sscanf in svm-predict.c (faster)
|
||||||
|
makefile for windows
|
||||||
|
add "using namespace std;" in some .java files
|
||||||
|
improve easy.py: output cv rate, error messages printed
|
||||||
|
better checking
|
||||||
|
better python interface example svm_test.py
|
||||||
|
and some minor updates
|
||||||
|
|
||||||
|
2.6: 2004/04/01
|
||||||
|
Probability estimates for classification/regression
|
||||||
|
Python interface: use swig 1.3 instead of 1.1
|
||||||
|
Cross validation becomes a library subroutine
|
||||||
|
A few minor corrections: (not completely listed)
|
||||||
|
more interface functions such as getting svm_type
|
||||||
|
print nu only when Cp=Cn
|
||||||
|
floor division in python interface
|
||||||
|
|
||||||
|
2.7: 2004/11/10
|
||||||
|
Stratified cross validation
|
||||||
|
Better faq
|
||||||
|
Scaling: support storing the factor of y
|
||||||
|
A few minor updates:
|
||||||
|
class QMatrix added
|
||||||
|
improve the use of easy.py and grid.py on windows
|
||||||
|
grid.py: same CV and same g: use smaller C
|
||||||
|
sparse input for python interface
|
||||||
|
working set selection: < to <=
|
||||||
|
|
||||||
|
2.71: 2004/11/20
|
||||||
|
fix a java bug introduced from 2.6 to 2.7
|
||||||
|
|
||||||
|
2.8: 2005/04/01
|
||||||
|
new working set selection via second order information
|
||||||
|
fix minor changes/corrections:
|
||||||
|
problem when cache size less than two kernel columns
|
||||||
|
-v #data -> stratified CV is not loo -> ensure loo is done
|
||||||
|
problem of typing "svm-train -c" only
|
||||||
|
problem of "svm-train -n 1 -s 3 ..."
|
||||||
|
python interface makefile: -fPIC for 32/64bit
|
||||||
|
color change in svmtoy
|
||||||
|
makefile in building QT svmtoy
|
||||||
|
|
||||||
|
2.81: 2005/11/20
|
||||||
|
add a python script subset.py for subsampling
|
||||||
|
slightly modify the working set so it's exact the same as the paper
|
||||||
|
default cache size to 100 MB
|
||||||
|
|
||||||
|
2.82: 2006/04/01
|
||||||
|
precomputed kernel
|
||||||
|
directly implement a fast powi() function
|
||||||
|
poly degree double to int
|
||||||
|
minor corrections:
|
||||||
|
java code for CV
|
||||||
|
2.83: 2006/11/17
|
||||||
|
Fix the bug of -t 3
|
||||||
|
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)
|
||||||
|
Better descriptions in README for the precomputed kernel
|
||||||
|
|
||||||
|
2.84: 2007/04/01
|
||||||
|
Improve the shrinking code: faster for some cases
|
||||||
|
Code more 64-bit friendly: allow large -m
|
||||||
|
In Solver, b is replaced by p
|
||||||
|
Subroutine max_violating_pair removed. Things are directly
|
||||||
|
written in do_shrinking().
|
||||||
|
Modify do_shrinking() so variable names are the same as libsvm
|
||||||
|
document
|
||||||
|
|
||||||
|
2.85: 2007/11/?
|
||||||
|
fix minor memory leak in svm-predict.c
|
@ -0,0 +1,153 @@
|
|||||||
|
--- ./Makefile.orig 2007-08-22 15:23:34.000000000 +1000
|
||||||
|
+++ ./Makefile 2007-08-27 15:48:58.000000000 +1000
|
||||||
|
@@ -1,7 +1,31 @@
|
||||||
|
CXXC = g++
|
||||||
|
CFLAGS = -Wall -O3
|
||||||
|
+MAKE = make
|
||||||
|
|
||||||
|
-all: svm-train svm-predict svm-scale
|
||||||
|
+ifndef DESTDIR
|
||||||
|
+INSTDIR=/usr
|
||||||
|
+else
|
||||||
|
+INSTDIR=${DESTDIR}/usr
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+export INSTDIR
|
||||||
|
+
|
||||||
|
+PROCESSOR=$(shell /bin/uname -p)
|
||||||
|
+ifeq "${PROCESSOR}" "x86_64"
|
||||||
|
+X86_64=64
|
||||||
|
+else
|
||||||
|
+X86_64=
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifndef LIBDIR
|
||||||
|
+LIB_INSTDIR=${INSTDIR}/lib${X86_64}
|
||||||
|
+else
|
||||||
|
+LIB_INSTDIR=${INSTDIR}/..${LIBDIR}
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+export LIB_INSTDIR
|
||||||
|
+
|
||||||
|
+all: svm-train svm-predict svm-scale svm-python
|
||||||
|
|
||||||
|
svm-predict: svm-predict.c svm.o
|
||||||
|
$(CXXC) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm
|
||||||
|
@@ -11,5 +35,45 @@
|
||||||
|
$(CXXC) $(CFLAGS) svm-scale.c -o svm-scale
|
||||||
|
svm.o: svm.cpp svm.h
|
||||||
|
$(CXXC) $(CFLAGS) -c svm.cpp
|
||||||
|
+svm-python:
|
||||||
|
+ ${MAKE} -C python
|
||||||
|
+
|
||||||
|
+install: all
|
||||||
|
+ mkdir -p ${INSTDIR}/bin
|
||||||
|
+ install -m 755 svm-train ${INSTDIR}/bin
|
||||||
|
+ install -m 755 svm-predict ${INSTDIR}/bin
|
||||||
|
+ install -m 755 svm-scale ${INSTDIR}/bin
|
||||||
|
+ mkdir -p ${LIB_INSTDIR}/libsvm
|
||||||
|
+# install package libsvm-devel
|
||||||
|
+ install -m 644 svm.o ${LIB_INSTDIR}/libsvm
|
||||||
|
+ mkdir -p ${INSTDIR}/include/libsvm
|
||||||
|
+ install -m 644 svm.h ${INSTDIR}/include/libsvm
|
||||||
|
+ mkdir -p ${INSTDIR}/share/libsvm/src
|
||||||
|
+ install -m 644 *.h ${INSTDIR}/share/libsvm/src
|
||||||
|
+ install -m 644 *.c ${INSTDIR}/share/libsvm/src
|
||||||
|
+ install -m 644 *.cpp ${INSTDIR}/share/libsvm/src
|
||||||
|
+ install -m 644 Makefile ${INSTDIR}/share/libsvm/src
|
||||||
|
+ cp -R java ${INSTDIR}/share/libsvm/src
|
||||||
|
+ cp -R svm-toy ${INSTDIR}/share/libsvm/src
|
||||||
|
+# cp -R tools ${INSTDIR}/share/libsvm/src
|
||||||
|
+# cp -R windows ${INSTDIR}/share/libsvm/src
|
||||||
|
+ mkdir -p ${INSTDIR}/share/libsvm/examples
|
||||||
|
+ install -m 644 heart_scale ${INSTDIR}/share/libsvm/examples
|
||||||
|
+# install package libsvm-python
|
||||||
|
+ ${MAKE} -C python install
|
||||||
|
+
|
||||||
|
+uninstall:
|
||||||
|
+ rm -f ${INSTDIR}/bin/svm-train
|
||||||
|
+ rm -f ${INSTDIR}/bin/svm-predict
|
||||||
|
+ rm -f ${INSTDIR}/bin/svm-scale
|
||||||
|
+ rm -fr ${INSTDIR}/libsvm/examples
|
||||||
|
+ rm -f ${INSTDIR}/include/libsvm/svm.h
|
||||||
|
+ rm -f ${LIB_INSTDIR}/libsvm/svm.o
|
||||||
|
+ rm -fr ${INSTDIR}/libsvm/src
|
||||||
|
+ rm -fr ${INSTDIR}/libsvm
|
||||||
|
+ ${MAKE} -C python uninstall
|
||||||
|
+
|
||||||
|
clean:
|
||||||
|
rm -f *~ svm.o svm-train svm-predict svm-scale
|
||||||
|
+ ${MAKE} -C python clean
|
||||||
|
+
|
||||||
|
--- ./python/Makefile.orig 2007-08-27 11:11:38.000000000 +1000
|
||||||
|
+++ ./python/Makefile 2007-08-28 11:15:18.000000000 +1000
|
||||||
|
@@ -2,13 +2,19 @@
|
||||||
|
SWIG ?= swig
|
||||||
|
|
||||||
|
#Windows: see ../README ../Makefile.win
|
||||||
|
-PYTHON_INCLUDEDIR ?= /usr/include/python2.4
|
||||||
|
+PYTHON_VERSION=${shell python -V 2> python.ver ; cat python.ver | awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$$2,$$3)}'; rm -f python.ver}
|
||||||
|
+
|
||||||
|
+ifndef PYTHON_INCLUDEDIR
|
||||||
|
+
|
||||||
|
+PYTHON_INCLUDEDIR?= /usr/include/python${PYTHON_VERSION}
|
||||||
|
+
|
||||||
|
+endif
|
||||||
|
+PYTHON_TARGETDIR=${LIB_INSTDIR}/python${PYTHON_VERSION}/site-packages/libsvm
|
||||||
|
|
||||||
|
CFLAGS = -O3 -I$(PYTHON_INCLUDEDIR) -I..
|
||||||
|
LDFLAGS = -shared
|
||||||
|
# Mac OS
|
||||||
|
# LDFLAGS = -framework Python -bundle
|
||||||
|
-
|
||||||
|
all: svmc.so
|
||||||
|
|
||||||
|
svmc.so: svmc_wrap.o svm.o
|
||||||
|
@@ -28,3 +34,19 @@
|
||||||
|
|
||||||
|
moreclean: clean
|
||||||
|
rm -f svmc_wrap.c
|
||||||
|
+
|
||||||
|
+install: all
|
||||||
|
+ mkdir -p ${PYTHON_TARGETDIR}
|
||||||
|
+ install -m 755 cross_validation.py ${PYTHON_TARGETDIR}
|
||||||
|
+ install -m 644 svm.py ${PYTHON_TARGETDIR}
|
||||||
|
+ install -m 755 svm_test.py ${PYTHON_TARGETDIR}
|
||||||
|
+ install -m 755 test_cross_validation.py ${PYTHON_TARGETDIR}
|
||||||
|
+ install -m 644 *.i ${PYTHON_TARGETDIR}
|
||||||
|
+ install -m 755 *.so ${PYTHON_TARGETDIR}
|
||||||
|
+ install -m 755 ../tools/*.py ${PYTHON_TARGETDIR}
|
||||||
|
+
|
||||||
|
+uninstall:
|
||||||
|
+ rm -fr ${LIBDIR}/python${PYTHON_VERSION}/site-packages/libsvm
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
--- ./tools/grid.py.orig 2007-08-28 11:48:03.000000000 +1000
|
||||||
|
+++ ./tools/grid.py 2007-08-28 11:58:22.000000000 +1000
|
||||||
|
@@ -11,7 +11,7 @@
|
||||||
|
|
||||||
|
is_win32 = (sys.platform == 'win32')
|
||||||
|
if not is_win32:
|
||||||
|
- svmtrain_exe = "../svm-train"
|
||||||
|
+ svmtrain_exe = "/usr/bin/svm-train"
|
||||||
|
gnuplot_exe = "/usr/bin/gnuplot"
|
||||||
|
else:
|
||||||
|
# example for windows
|
||||||
|
--- ./tools/easy.py.orig 2007-08-28 11:47:53.000000000 +1000
|
||||||
|
+++ ./tools/easy.py 2007-08-28 12:13:58.000000000 +1000
|
||||||
|
@@ -11,10 +11,10 @@
|
||||||
|
|
||||||
|
is_win32 = (sys.platform == 'win32')
|
||||||
|
if not is_win32:
|
||||||
|
- svmscale_exe = "../svm-scale"
|
||||||
|
- svmtrain_exe = "../svm-train"
|
||||||
|
- svmpredict_exe = "../svm-predict"
|
||||||
|
- grid_py = "./grid.py"
|
||||||
|
+ svmscale_exe = "/usr/bin/svm-scale"
|
||||||
|
+ svmtrain_exe = "/usr/bin/svm-train"
|
||||||
|
+ svmpredict_exe = "/usr/bin/svm-predict"
|
||||||
|
+ grid_py = sys.argv[0].replace("easy.py","grid.py")
|
||||||
|
gnuplot_exe = "/usr/bin/gnuplot"
|
||||||
|
else:
|
||||||
|
# example for windows
|
@ -0,0 +1,105 @@
|
|||||||
|
Name: libsvm
|
||||||
|
Version: 2.84
|
||||||
|
Release: 3%{?dist}
|
||||||
|
Summary: A Library for Support Vector Machines
|
||||||
|
|
||||||
|
Group: Development/Libraries
|
||||||
|
License: BSD
|
||||||
|
URL: http://www.csie.ntu.edu.tw/~cjlin/libsvm/
|
||||||
|
Source0: %{name}-%{version}.tar.gz
|
||||||
|
#Source0: http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/%{name}+tar.gz
|
||||||
|
Source1: ChangeLog
|
||||||
|
#Source1: http://www.csie.ntu.edu.tw/~cjlin/libsvm/log
|
||||||
|
Patch0: libsvm-2.84-2.patch
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
|
BuildRequires: glibc-devel dos2unix
|
||||||
|
Requires: glibc
|
||||||
|
|
||||||
|
|
||||||
|
%description
|
||||||
|
LIBSVM is an integrated software for support vector classification,
|
||||||
|
(C-SVC, nu-SVC ), regression (epsilon-SVR, nu-SVR) and distribution
|
||||||
|
estimation (one-class SVM ). It supports multi-class classification.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: A Library for Support Vector Machines
|
||||||
|
Group: Development/Libraries
|
||||||
|
BuildRequires: glibc-devel
|
||||||
|
Requires: glibc
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
The libsvm-devel package includes the header file, object file, and
|
||||||
|
soucre in C and Java.
|
||||||
|
Install this package if you want to develop programs with libsvm.
|
||||||
|
|
||||||
|
%package python
|
||||||
|
Summary: A Library for Support Vector Machines
|
||||||
|
Group: Development/Libraries
|
||||||
|
BuildRequires: python >= 2.4 python-devel >= 2.4
|
||||||
|
Requires: python >= 2.4
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description python
|
||||||
|
The libsvm-python provides tools and interface written in python,
|
||||||
|
as well as source code. Install this package if you want to develop
|
||||||
|
programs with libsvm in Python.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
%patch0 -p0 -b .bak
|
||||||
|
%define temp_file /tmp/python.ver
|
||||||
|
%define python_version %(python -V 2> %{temp_file} ; cat %{temp_file} | awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$2,$3)}'; rm -f %{temp_file})
|
||||||
|
%define libsvm_python_dir %{_libdir}/python%{python_version}/site-packages/libsvm
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
make all DESTDIR=%{_builddir} LIBDIR=%{_libdir}
|
||||||
|
dos2unix -o %{_builddir}/%{name}-%{version}/FAQ.html
|
||||||
|
mv %{_builddir}/%{name}-%{version}/python/README %{_builddir}/%{name}-%{version}/python/README-Python
|
||||||
|
mv %{_builddir}/%{name}-%{version}/tools/README %{_builddir}/%{name}-%{version}/tools/README-Tools
|
||||||
|
|
||||||
|
%install
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%doc COPYRIGHT FAQ.html
|
||||||
|
%{_bindir}/svm-predict
|
||||||
|
%{_bindir}/svm-scale
|
||||||
|
%{_bindir}/svm-train
|
||||||
|
%{_datadir}/libsvm/examples
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%doc README
|
||||||
|
%{_libdir}/libsvm
|
||||||
|
%{_includedir}/libsvm
|
||||||
|
%{_datadir}/libsvm/src
|
||||||
|
|
||||||
|
%files python
|
||||||
|
%doc python/README-Python tools/README-Tools
|
||||||
|
%{libsvm_python_dir}
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Mon Aug 27 2007 Ding-Yi Chen <dchen@redhat.com> - 2.84-3
|
||||||
|
- Fix dependency problem
|
||||||
|
|
||||||
|
* Mon Aug 27 2007 Ding-Yi Chen <dchen@redhat.com> - 2.84-2
|
||||||
|
- Fix mock error
|
||||||
|
- Support Python 2.4 and Python 2.5
|
||||||
|
|
||||||
|
* Mon Aug 27 2007 Ding-Yi Chen <dchen@redhat.com> - 2.84-1
|
||||||
|
- Fix rpmlint error
|
||||||
|
- Move python related files to libsvm-python
|
||||||
|
|
||||||
|
* Fri Aug 17 2007 Ding-Yi Chen <dchen@redhat.com> - 2.84-0
|
||||||
|
- initial packaging
|
||||||
|
|
Loading…
Reference in new issue