|
|
|
@ -1,6 +1,26 @@
|
|
|
|
|
diff -up ./java/test_applet.html.orig ./java/test_applet.html
|
|
|
|
|
--- ./java/test_applet.html.orig 2008-01-02 09:37:14.000000000 +1000
|
|
|
|
|
+++ ./java/test_applet.html 2008-01-02 09:43:19.000000000 +1000
|
|
|
|
|
@@ -1 +1,3 @@
|
|
|
|
|
-<APPLET code="svm_toy.class" archive="libsvm.jar" width=300 height=350></APPLET>
|
|
|
|
|
+<html>
|
|
|
|
|
+<applet code="svm_toy.class" archive="libsvm.jar" width=300 height=350></applet>
|
|
|
|
|
+</html>
|
|
|
|
|
diff -up ./java/svm_train.java.orig ./java/svm_train.java
|
|
|
|
|
diff -up ./java/libsvm/svm_parameter.java.orig ./java/libsvm/svm_parameter.java
|
|
|
|
|
--- ./java/libsvm/svm_parameter.java.orig 2006-03-04 01:44:14.000000000 +1000
|
|
|
|
|
+++ ./java/libsvm/svm_parameter.java 2008-01-02 09:43:19.000000000 +1000
|
|
|
|
|
@@ -1,6 +1,7 @@
|
|
|
|
|
package libsvm;
|
|
|
|
|
public class svm_parameter implements Cloneable,java.io.Serializable
|
|
|
|
|
{
|
|
|
|
|
+ static final long serialVersionUID = 2709444323471798245L;
|
|
|
|
|
/* svm_type */
|
|
|
|
|
public static final int C_SVC = 0;
|
|
|
|
|
public static final int NU_SVC = 1;
|
|
|
|
|
diff -up ./java/libsvm/svm_problem.java.orig ./java/libsvm/svm_problem.java
|
|
|
|
|
--- ./java/libsvm/svm_problem.java.orig 2007-12-12 14:22:51.000000000 +1000
|
|
|
|
|
+++ ./java/libsvm/svm_problem.java 2007-12-13 10:05:16.000000000 +1000
|
|
|
|
|
--- ./java/libsvm/svm_problem.java.orig 2003-10-11 22:30:47.000000000 +1000
|
|
|
|
|
+++ ./java/libsvm/svm_problem.java 2008-01-02 09:43:19.000000000 +1000
|
|
|
|
|
@@ -1,6 +1,7 @@
|
|
|
|
|
package libsvm;
|
|
|
|
|
public class svm_problem implements java.io.Serializable
|
|
|
|
@ -10,8 +30,8 @@ diff -up ./java/libsvm/svm_problem.java.orig ./java/libsvm/svm_problem.java
|
|
|
|
|
public double[] y;
|
|
|
|
|
public svm_node[][] x;
|
|
|
|
|
diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java
|
|
|
|
|
--- ./java/libsvm/svm_node.java.orig 2007-12-12 14:23:11.000000000 +1000
|
|
|
|
|
+++ ./java/libsvm/svm_node.java 2007-12-13 10:05:16.000000000 +1000
|
|
|
|
|
--- ./java/libsvm/svm_node.java.orig 2003-10-11 22:30:47.000000000 +1000
|
|
|
|
|
+++ ./java/libsvm/svm_node.java 2008-01-02 09:43:19.000000000 +1000
|
|
|
|
|
@@ -1,6 +1,7 @@
|
|
|
|
|
package libsvm;
|
|
|
|
|
public class svm_node implements java.io.Serializable
|
|
|
|
@ -20,20 +40,9 @@ diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java
|
|
|
|
|
public int index;
|
|
|
|
|
public double value;
|
|
|
|
|
}
|
|
|
|
|
diff -up ./java/libsvm/svm_parameter.java.orig ./java/libsvm/svm_parameter.java
|
|
|
|
|
--- ./java/libsvm/svm_parameter.java.orig 2007-12-12 14:25:43.000000000 +1000
|
|
|
|
|
+++ ./java/libsvm/svm_parameter.java 2007-12-13 10:05:16.000000000 +1000
|
|
|
|
|
@@ -1,6 +1,7 @@
|
|
|
|
|
package libsvm;
|
|
|
|
|
public class svm_parameter implements Cloneable,java.io.Serializable
|
|
|
|
|
{
|
|
|
|
|
+ static final long serialVersionUID = 2709444323471798245L;
|
|
|
|
|
/* svm_type */
|
|
|
|
|
public static final int C_SVC = 0;
|
|
|
|
|
public static final int NU_SVC = 1;
|
|
|
|
|
diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java
|
|
|
|
|
--- ./java/libsvm/svm_model.java.orig 2007-12-12 14:27:38.000000000 +1000
|
|
|
|
|
+++ ./java/libsvm/svm_model.java 2007-12-13 10:05:16.000000000 +1000
|
|
|
|
|
--- ./java/libsvm/svm_model.java.orig 2007-01-13 08:23:39.000000000 +1000
|
|
|
|
|
+++ ./java/libsvm/svm_model.java 2008-01-02 09:43:19.000000000 +1000
|
|
|
|
|
@@ -4,6 +4,7 @@
|
|
|
|
|
package libsvm;
|
|
|
|
|
public class svm_model implements java.io.Serializable
|
|
|
|
@ -42,30 +51,10 @@ diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java
|
|
|
|
|
svm_parameter param; // parameter
|
|
|
|
|
int nr_class; // number of classes, = 2 in regression/one class svm
|
|
|
|
|
int l; // total #SV
|
|
|
|
|
diff -up ./java/svm_toy.java.orig ./java/svm_toy.java
|
|
|
|
|
--- ./java/svm_toy.java.orig 2007-12-12 14:28:14.000000000 +1000
|
|
|
|
|
+++ ./java/svm_toy.java 2007-12-13 10:05:16.000000000 +1000
|
|
|
|
|
@@ -6,7 +6,7 @@ import java.awt.event.*;
|
|
|
|
|
import java.io.*;
|
|
|
|
|
|
|
|
|
|
public class svm_toy extends Applet {
|
|
|
|
|
-
|
|
|
|
|
+ static final long serialVersionUID = -8325676470152687806L;
|
|
|
|
|
static final String DEFAULT_PARAM="-t 2 -c 100";
|
|
|
|
|
int XLEN;
|
|
|
|
|
int YLEN;
|
|
|
|
|
@@ -453,6 +453,7 @@ public class svm_toy extends Applet {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class AppletFrame extends Frame {
|
|
|
|
|
+ static final long serialVersionUID = -8428435143024670779L;
|
|
|
|
|
AppletFrame(String title, Applet applet, int width, int height)
|
|
|
|
|
{
|
|
|
|
|
super(title);
|
|
|
|
|
diff -up ./java/svm_predict.java.orig ./java/svm_predict.java
|
|
|
|
|
diff -up ./java/libsvm/svm.java.orig ./java/libsvm/svm.java
|
|
|
|
|
diff -up ./java/Makefile.orig ./java/Makefile
|
|
|
|
|
--- ./java/Makefile.orig 2007-12-12 15:03:30.000000000 +1000
|
|
|
|
|
+++ ./java/Makefile 2007-12-13 10:05:16.000000000 +1000
|
|
|
|
|
--- ./java/Makefile.orig 2008-01-02 09:32:55.000000000 +1000
|
|
|
|
|
+++ ./java/Makefile 2008-01-02 09:43:19.000000000 +1000
|
|
|
|
|
@@ -1,15 +1,18 @@
|
|
|
|
|
.SUFFIXES: .class .java
|
|
|
|
|
-FILES = libsvm/svm.class libsvm/svm_model.class libsvm/svm_node.class \
|
|
|
|
@ -116,18 +105,141 @@ diff -up ./java/Makefile.orig ./java/Makefile
|
|
|
|
|
|
|
|
|
|
dist: clean all
|
|
|
|
|
rm *.class libsvm/*.class
|
|
|
|
|
diff -up ./java/test_applet.html.orig ./java/test_applet.html
|
|
|
|
|
--- ./java/test_applet.html.orig 2007-12-12 14:49:48.000000000 +1000
|
|
|
|
|
+++ ./java/test_applet.html 2007-12-13 10:05:16.000000000 +1000
|
|
|
|
|
@@ -1 +1,3 @@
|
|
|
|
|
-<APPLET code="svm_toy.class" archive="libsvm.jar" width=300 height=350></APPLET>
|
|
|
|
|
+<html>
|
|
|
|
|
+<applet code="svm_toy.class" archive="libsvm.jar" width=300 height=350></applet>
|
|
|
|
|
+</html>
|
|
|
|
|
diff -up ./java/svm_train.java.orig ./java/svm_train.java
|
|
|
|
|
diff -up ./java/svm_toy.java.orig ./java/svm_toy.java
|
|
|
|
|
--- ./java/svm_toy.java.orig 2006-03-04 17:40:11.000000000 +1000
|
|
|
|
|
+++ ./java/svm_toy.java 2008-01-02 09:43:19.000000000 +1000
|
|
|
|
|
@@ -6,7 +6,7 @@ import java.awt.event.*;
|
|
|
|
|
import java.io.*;
|
|
|
|
|
|
|
|
|
|
public class svm_toy extends Applet {
|
|
|
|
|
-
|
|
|
|
|
+ static final long serialVersionUID = -8325676470152687806L;
|
|
|
|
|
static final String DEFAULT_PARAM="-t 2 -c 100";
|
|
|
|
|
int XLEN;
|
|
|
|
|
int YLEN;
|
|
|
|
|
@@ -453,6 +453,7 @@ public class svm_toy extends Applet {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class AppletFrame extends Frame {
|
|
|
|
|
+ static final long serialVersionUID = -8428435143024670779L;
|
|
|
|
|
AppletFrame(String title, Applet applet, int width, int height)
|
|
|
|
|
{
|
|
|
|
|
super(title);
|
|
|
|
|
diff -up ./java/svm_predict.java.orig ./java/svm_predict.java
|
|
|
|
|
diff -up ./python/cross_validation.py.orig ./python/cross_validation.py
|
|
|
|
|
diff -up ./python/svm_test.py.orig ./python/svm_test.py
|
|
|
|
|
diff -up ./python/Makefile.orig ./python/Makefile
|
|
|
|
|
--- ./python/Makefile.orig 2008-01-02 09:38:18.000000000 +1000
|
|
|
|
|
+++ ./python/Makefile 2008-01-02 11:26:08.000000000 +1000
|
|
|
|
|
@@ -2,9 +2,16 @@ CC = g++
|
|
|
|
|
SWIG ?= swig
|
|
|
|
|
|
|
|
|
|
#Windows: see ../README ../Makefile.win
|
|
|
|
|
-PYTHON_INCLUDEDIR ?= /usr/include/python2.4
|
|
|
|
|
+#PYTHON_TEMP:=${shell mktemp}
|
|
|
|
|
+#PYTHON_VERSION:=${shell python -V 2> ${PYTHON_TEMP} ; cat ${PYTHON_TEMP} | awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$$2,$$3)}'; rm -f ${PYTHON_TEMP}}
|
|
|
|
|
+ifndef PYTHON_INCLUDEDIR
|
|
|
|
|
|
|
|
|
|
-CFLAGS = -O3 -I$(PYTHON_INCLUDEDIR) -I..
|
|
|
|
|
+PYTHON_INCLUDEDIR?= /usr/include/python${PYTHON_VERSION}
|
|
|
|
|
+
|
|
|
|
|
+endif
|
|
|
|
|
+PYTHON_TARGETDIR=${LIB_INSTDIR}/python${PYTHON_VERSION}/site-packages/libsvm
|
|
|
|
|
+
|
|
|
|
|
+CFLAGS_PYTHON = ${CFLAGS} -O3 -I$(PYTHON_INCLUDEDIR) -I..
|
|
|
|
|
LDFLAGS = -shared
|
|
|
|
|
# Mac OS
|
|
|
|
|
# LDFLAGS = -framework Python -bundle
|
|
|
|
|
@@ -15,16 +22,35 @@ svmc.so: svmc_wrap.o svm.o
|
|
|
|
|
$(CC) $(LDFLAGS) -o svmc.so svmc_wrap.o svm.o
|
|
|
|
|
|
|
|
|
|
svmc_wrap.o: svmc_wrap.c ../svm.h
|
|
|
|
|
- $(CC) $(CFLAGS) -fPIC -c svmc_wrap.c
|
|
|
|
|
+ echo "PYTHON_VERSION=${PYTHON_VERSION}"
|
|
|
|
|
+ echo "CFLAGS=${CFLAGS}"
|
|
|
|
|
+ echo "CFLAGS_PYTHON=${CFLAGS_PYTHON}"
|
|
|
|
|
+ $(CC) $(CFLAGS_PYTHON) -fPIC -c svmc_wrap.c
|
|
|
|
|
|
|
|
|
|
svmc_wrap.c: svmc.i
|
|
|
|
|
$(SWIG) -python -noproxy svmc.i
|
|
|
|
|
|
|
|
|
|
svm.o: ../svm.cpp ../svm.h
|
|
|
|
|
- $(CC) $(CFLAGS) -fPIC -c ../svm.cpp
|
|
|
|
|
+ $(CC) $(CFLAGS_PYTHON) -fPIC -c ../svm.cpp
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
rm -f *~ *.o *.so *.pyc *.pyo svm.o
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
diff -up ./python/test_cross_validation.py.orig ./python/test_cross_validation.py
|
|
|
|
|
diff -up ./python/svm.py.orig ./python/svm.py
|
|
|
|
|
diff -up ./tools/subset.py.orig ./tools/subset.py
|
|
|
|
|
diff -up ./tools/easy.py.orig ./tools/easy.py
|
|
|
|
|
--- ./tools/easy.py.orig 2004-06-26 23:42:52.000000000 +1000
|
|
|
|
|
+++ ./tools/easy.py 2008-01-03 11:31:31.000000000 +1000
|
|
|
|
|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
|
|
|
|
import sys
|
|
|
|
|
import os
|
|
|
|
|
+from distutils.sysconfig import get_python_lib
|
|
|
|
|
|
|
|
|
|
if len(sys.argv) <= 1:
|
|
|
|
|
print 'Usage: %s training_file [testing_file]' % sys.argv[0]
|
|
|
|
|
@@ -11,10 +12,10 @@ if len(sys.argv) <= 1:
|
|
|
|
|
|
|
|
|
|
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 = get_python_lib(1)+"/libsvm/grid.py"
|
|
|
|
|
gnuplot_exe = "/usr/bin/gnuplot"
|
|
|
|
|
else:
|
|
|
|
|
# example for windows
|
|
|
|
|
diff -up ./tools/grid.py.orig ./tools/grid.py
|
|
|
|
|
--- ./tools/grid.py.orig 2006-11-30 03:24:59.000000000 +1000
|
|
|
|
|
+++ ./tools/grid.py 2008-01-03 13:03:06.000000000 +1000
|
|
|
|
|
@@ -11,7 +11,7 @@ from string import find, split, join, at
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
@@ -88,6 +88,7 @@ Usage: grid.py [-log2c begin,end,step] [
|
|
|
|
|
i = i + 1
|
|
|
|
|
|
|
|
|
|
pass_through_string = join(pass_through_options," ")
|
|
|
|
|
+ print 'dataset_pathname=%s' % dataset_pathname
|
|
|
|
|
assert os.path.exists(svmtrain_exe),"svm-train executable not found"
|
|
|
|
|
assert os.path.exists(gnuplot_exe),"gnuplot executable not found"
|
|
|
|
|
assert os.path.exists(dataset_pathname),"dataset not found"
|
|
|
|
|
diff -up ./Makefile.orig ./Makefile
|
|
|
|
|
--- ./Makefile.orig 2007-12-12 15:52:58.000000000 +1000
|
|
|
|
|
+++ ./Makefile 2007-12-14 10:55:02.000000000 +1000
|
|
|
|
|
--- ./Makefile.orig 2008-01-02 09:36:22.000000000 +1000
|
|
|
|
|
+++ ./Makefile 2008-01-02 09:43:19.000000000 +1000
|
|
|
|
|
@@ -1,8 +1,41 @@
|
|
|
|
|
CXXC = g++
|
|
|
|
|
CFLAGS = -Wall -O3
|
|
|
|
@ -233,44 +345,4 @@ diff -up ./Makefile.orig ./Makefile
|
|
|
|
|
+ ${MAKE} -C python clean
|
|
|
|
|
+ ${MAKE} -C java clean
|
|
|
|
|
+
|
|
|
|
|
diff -up ./python/Makefile.orig ./python/Makefile
|
|
|
|
|
--- ./python/Makefile.orig 2007-12-13 09:33:32.000000000 +1000
|
|
|
|
|
+++ ./python/Makefile 2007-12-13 10:05:16.000000000 +1000
|
|
|
|
|
@@ -2,7 +2,14 @@ CC = g++
|
|
|
|
|
SWIG ?= swig
|
|
|
|
|
|
|
|
|
|
#Windows: see ../README ../Makefile.win
|
|
|
|
|
-PYTHON_INCLUDEDIR ?= /usr/include/python2.4
|
|
|
|
|
+PYTHON_TEMP:=${shell mktemp}
|
|
|
|
|
+PYTHON_VERSION:=${shell python -V 2> ${PYTHON_TEMP} ; cat ${PYTHON_TEMP} | awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$$2,$$3)}'; rm -f ${PYTHON_TEMP}}
|
|
|
|
|
+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
|
|
|
|
|
@@ -28,3 +35,19 @@ clean:
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
diff -up ./tools/easy.py.orig ./tools/easy.py
|
|
|
|
|
diff -up ./tools/grid.py.orig ./tools/grid.py
|
|
|
|
|
diff -up ./svm-toy/gtk/Makefile.orig ./svm-toy/gtk/Makefile
|