This is a simple applet demonstrating SVM classification and regression in 3D. It extends the java svm-toy in the libsvm package.
See the demo here.
You must to download a libsvm.jar file, and install JRE, and Java 3D.
See more details below.
Download and install the JRE (Java Runtime Environment, version 1.4 or later).
You can simply type "apt-get install default-jre" or do it manually.
Type "java -version" to check if it is installed on your system.
Download and extract the Java 3D package, j3d-version.zip.
You will find three jar files (j3dcore.jar, j3dutils.jar, vecmath.jar) and a shared-object file (libj3dcore-ogl.so).
Put the three jar files into yourJRE/lib/ext and the shared-object file into yourJRE/lib/amd64.
For those who use the apt-get command, yourJRE should be /usr/lib/jvm/jre-version by default.
As another choice, you can download the j3d-version.bin , put it into the jre directory and run it. Make sure files are in their corresponding locations.
To set the environment variables, use
> export CLASSPATH="yourJRE/lib/ext/yourJRE/lib/ext/j3dcore.jar:yourJRE/lib/ext/j3dutils.jar:yourJRE/lib/ext/vecmath.jar"
> export LD_LIBRARY_PATH=yourJRE/lib/amd64/libj3dcore-olg.so
Download and install the JRE (Java Runtime Environment, version 1.4 or later).
Set the PATH system variable to point to the bin directory of JRE.
For example, you can type "set PATH=%PATH%;yourJRE\bin."
By default, yourJRE is C:\Program Files\Java\jre-version.
You can type "echo %PATH%" to check if yourJRE\bin is added to the PATH system variable, and type "java -version" to check if it is installed on your system.
Note that a variable set via the "set" command under CMD is available to the current CMD session only.
Download and extract the Java 3D package, j3d-version.zip.
Please copy all jar files in j3d-version\lib\ext (j3dcore.jar, j3dutils.jar, vecmath.jar) into yourJRE\lib\ext, and copy the j3dcore-ogl.dll into j3d-version\lib\ext into yourJRE\lib\amd.
Set the PATH system variable to point to the j3dcore-ogl.dll in bin directory of the Java 3D .
For example, you can type "set java3d=C:\Program Files\Java\Java3D\j3d-version\bin" and then type "set PATH=%PATH%;%java3d%" to update the PATH system variable.
Use this web page or download the svm_toy3d.jar of SVM Toy 3D and in a command window type
> java -cp libsvm.jar svm_toy3d
Left-click on the pink plane to input training data.
Hold right button and drag to move the pink plane along the z-axis in the 3D space.
You can also directly type values in the input fields. The range is [-1, 1].
Left-click "Change" to change the class of training points.
Left-click "Clean" to remove all points.
x, y, and z-axes are in yellow, blue, and white, respectively.
Left-click "Run" to see the separating hyper-plane.
Left-click "View" to set the viewpoint back to the initial one.
Hold left button and drag to rotate the 3D space.
Hold right button and drag to shift the 3D space.
Options:
-s svm_type : set type of SVM (default 0) 0 -- C-SVC 1 -- nu-SVC 2 -- one-class SVM 3 -- epsilon-SVR 4 -- nu-SVR -t kernel_type : set type of kernel function (default 2) 0 -- linear: u'*v 1 -- polynomial: (gamma*u'*v + coef0)^degree 2 -- radial basis function: exp(-gamma*|u-v|^2) 3 -- sigmoid: tanh(gamma*u'*v + coef0) -d degree : set degree in kernel function (default 3) -g gamma : set gamma in kernel function (default 1/k) -r coef0 : set coef0 in kernel function (default 0) -c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1) -n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5) -p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1) -m cachesize : set cache memory size in MB (default 40) -e epsilon : set tolerance of termination criterion (default 0.001) -h shrinking: whether to use the shrinking heuristics, 0 or 1 (default 1) -b probability_estimates: whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0) -wi weight: set the parameter C of class i to weight*C, for C-SVC (default 1) The k in the -g option means the number of attributes in the input data.
You should directly use the provided libsvm.jar file; see the Installation section.
We don't recommand you to build the jar file by yourself. However, if you want to do it, you can use the following procedure.
First, download the source code of SVM Toy 3D.
Download and install JDK (Java Delevopment Kit) and type "javac -version" to confrim the correct installation.
Double click the compile.bat or use cmd and type "compile.bat" to produce libsvm.jar.
An Eclipse project is ready to run svm_toy3d demos on Windows and MacOS
The following students from National Taiwan University conducted this work for their final projects.
Xin-Mao Huang, Ken-Hao Liu, and Hung-Leng Chen did initial development in January 2004.
Wei-Cheng Cheng, Yi-Chun Lin, Wen-Hsien Su, Fang-Lan Huang, and Tzu-Hsiang Kao finished the final version in January 2005.
Ming-Hen Tsai polished and released sources in October 2008.
Yu-Ting Huang and Hung-Yi Chou improve the web page in June 2017.
Please send comments and suggestions to Chih-Jen Lin.
Last modified: