如何将 LibSVM 导入我的 Java 代码
How to import LibSVM into my Java code
在Java编程中,我们应该首先将weka.jar添加到我们的class路径中,这样我们就可以调用WEKA中的所有classify或集群算法,形式如下以下代码,
import weka.classifiers.trees.RandomForest;
...
RandomForest rf = new RandomForest(); // RandomForest object
但遗憾的是,我们不能使用这种方式导入LibSVM算法,因为weka.jar中没有这样的class。
所以,我的问题是如何将 LibSVM 导入到我的 Java 代码中?任何帮助将不胜感激:)
首先,我想说解决问题的方法有很多。我提到的解决方案很简单,但是Whosebug的其他答案没有详细描述,浪费我太多时间来验证。所以我很高兴与所有 WEKA 初学者分享它:)
a) 下载 LibSVM.jar from Maven Repository Center. Note that this LibSVM.jar
is different from the libsvm.jar
developed by Chih-Chung Chang and Chih-Jen Lin;
b) 将 LibSVM.jar
添加到我们 Java 项目的类路径中;
c) 需要时调用分类器LibSVM,见下面Java代码。
import weka.classifiers.functions.LibSVM; // contained in LibSVM.jar
String path = "file/train.arff";
Instances train = DataSource.read(path); // load the dataset
train.setClassIndex(train.numAttribute()-1); // set class index
LibSVM svm = new LibSVM(); // load the svm classifier
svm.buildClassifier(train);
Evaluation eval = new Evaluation(train);
eval.crossValidateModel(svm, train, 10, new Random(1)); // 10-fold cross-validation
参见:https://weka.wikispaces.com/LibSVM
使用 Weka 的包管理器安装 LibSVM。假设 "weka.jar" 在您当前的文件夹中,而不是 运行 这个:
java -cp weka.jar weka.core.WekaPackageManager -install-package LibSVM
安装过程中,显示:
[DefaultPackageManager] Tmp file: /tmp/LibSVM1.0.107382715397815864641.zip
[DefaultPackageManager] Installing: Description.props
[DefaultPackageManager] Installing: LibSVM.jar
[DefaultPackageManager] Installing: build_package.xml
...
可以看到某处安装了"LibSVM.jar"。就我而言,它位于:
/home/john/wekafiles/packages/LibSVM/LibSVM.jar
在Java编程中,我们应该首先将weka.jar添加到我们的class路径中,这样我们就可以调用WEKA中的所有classify或集群算法,形式如下以下代码,
import weka.classifiers.trees.RandomForest;
...
RandomForest rf = new RandomForest(); // RandomForest object
但遗憾的是,我们不能使用这种方式导入LibSVM算法,因为weka.jar中没有这样的class。
所以,我的问题是如何将 LibSVM 导入到我的 Java 代码中?任何帮助将不胜感激:)
首先,我想说解决问题的方法有很多。我提到的解决方案很简单,但是Whosebug的其他答案没有详细描述,浪费我太多时间来验证。所以我很高兴与所有 WEKA 初学者分享它:)
a) 下载 LibSVM.jar from Maven Repository Center. Note that this LibSVM.jar
is different from the libsvm.jar
developed by Chih-Chung Chang and Chih-Jen Lin;
b) 将 LibSVM.jar
添加到我们 Java 项目的类路径中;
c) 需要时调用分类器LibSVM,见下面Java代码。
import weka.classifiers.functions.LibSVM; // contained in LibSVM.jar
String path = "file/train.arff";
Instances train = DataSource.read(path); // load the dataset
train.setClassIndex(train.numAttribute()-1); // set class index
LibSVM svm = new LibSVM(); // load the svm classifier
svm.buildClassifier(train);
Evaluation eval = new Evaluation(train);
eval.crossValidateModel(svm, train, 10, new Random(1)); // 10-fold cross-validation
参见:https://weka.wikispaces.com/LibSVM
使用 Weka 的包管理器安装 LibSVM。假设 "weka.jar" 在您当前的文件夹中,而不是 运行 这个:
java -cp weka.jar weka.core.WekaPackageManager -install-package LibSVM
安装过程中,显示:
[DefaultPackageManager] Tmp file: /tmp/LibSVM1.0.107382715397815864641.zip
[DefaultPackageManager] Installing: Description.props
[DefaultPackageManager] Installing: LibSVM.jar
[DefaultPackageManager] Installing: build_package.xml
...
可以看到某处安装了"LibSVM.jar"。就我而言,它位于:
/home/john/wekafiles/packages/LibSVM/LibSVM.jar