SVM not TOY------It's now 3D!!!

Introduction

This is a simple applet demonstrating SVM classification and regression in 3D. It extends the java svm-toy in the libsvm package.


How to install

First, download and install the Java runtime environment (version 1.4 or later).
Then, download Java 3D and install it in the same directory as JRE.

We have successfully tried it on windows and linux.

Note: JRE should be installed before Java 3D. Both must be in the same directory.

Here is a simple demonstration of this tool.


How to use

Right: 3D input box

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.

Left: Separating hyperplane in 3D

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.

option -v randomly splits the data into n parts and calculates cross 
validation accuracy/mean squared error on them.

Credits

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.

Please send comments and suggestions to Chih-Jen Lin.


Last modified: Sat Feb 5 19:22:26 CST 2005