Mon, 01/15/2018 - 10:43 pm
This XOP wraps libSVM to provide Support Vector Machine-based classification, regression, and novelty detection in IgorPro.
For a detailed desccription of the algorithm, see https://github.com/cjlin1/libsvm
To install, simply copy the applicable XOP (macOS or windows, 32 or 64 bit) and SVM Help.ihf to the respective Igor Extension folder. SVM has been tested (and should work) on Igor7 on macOS and Igor 6.37 and Igor7 on Windows7.
The XOP adds two operations, SVMTrain and SVM classify, to IgorPro. For a detailed explanation if the syntax, see the included help file.
SVM_Example.pxp provides an example file to illustrate common usage of the SVM package.
For a detailed description of each parameter and how to chose model parameters, see the libSVM documentation and FAQ at https://github.com/cjlin1/libsvm. And stressed in the documentation, normalizing your data (eg. [0...1]) is crucial for successful training and classification.
Issues & Comments:
-custom kernels are currently not implemented.
-the cache size is fixed at 100 MB.
-the trained model file is saved separately. While the SVM model format is documented, so far I have not felt it is worth the effort to serialize / deserialize the model into Igor. One advantage is that the model files are cross-platform compatible and can be used with libSVM from the command line etc.
-not all features have been thoroughly tested, I am mainly interested in classification / novelty detection.
-SVM_Example.pxp contains a function to export Igor waves for training / classification with the command line tools of libSVM.
-the XOPs were compiled using Xcode10 / Visual Studio 2017 Community Edition using the XOP 7.03 toolkit using libSVM v322.
Current Project Release
|Version Date:||Thu, 05/30/2019 - 03:11 pm|
|Version Patch Level:||1|
|OS Compatibility:||Windows Mac-Intel|
- added the /DEC flag to report decision values during classification
- recompiled with the 7.03 XOP toolkit
- the macOS XOP is now 64 bit only, Xcode10 does no longer support 32 bit targets
- tested with Igor8 (64 bit, macOS)
Igor Pro 8
Igor XOP Toolkit
Igor NIDAQ Tools MX