在移动设备中使用libsvm进行java代码预测

在移动设备中使用libsvm进行java代码预测,java,android,machine-learning,classification,libsvm,Java,Android,Machine Learning,Classification,Libsvm,我的应用程序包含一个学习任务,它是一个SVM分类。经过一番艰苦的研究,我了解了SVM的基本知识,并通过命令行使用libSVM工具尝试了一些示例。但是,我的应用程序部署在客户机-服务器体系结构中: 训练集存储在服务器端,服务器端负责生成支持向量机模型 然后将SVM模型发送到客户端并用于预测 客户端是安卓移动设备 我的问题是如何在Java代码中使用libSVM而不是通过命令行运行它?由于文档有点少,最好的方法可能是查看libSVM发行版中命令行工具svm_predict.Java的源代码 e、

我的应用程序包含一个学习任务,它是一个SVM分类。经过一番艰苦的研究,我了解了SVM的基本知识,并通过命令行使用libSVM工具尝试了一些示例。但是,我的应用程序部署在客户机-服务器体系结构中:

  • 训练集存储在服务器端,服务器端负责生成支持向量机模型
  • 然后将SVM模型发送到客户端并用于预测
  • 客户端是安卓移动设备

我的问题是如何在Java代码中使用libSVM而不是通过命令行运行它?

由于文档有点少,最好的方法可能是查看libSVM发行版中命令行工具svm_predict.Java的源代码

e、 g.从文件加载svm模型:

svm_model model = svm.svm_load_model("filename");
然后你可以做一个预测:

double v = svm.svm_predict(model, x);

svm_predict.java中的
predict()
方法详细介绍了如何设置x。

由于文档有点少,最好的方法可能是查看libsvm发行版中命令行工具svm_predict.java的源代码

e、 g.从文件加载svm模型:

svm_model model = svm.svm_load_model("filename");
然后你可以做一个预测:

double v = svm.svm_predict(model, x);

svm_predict.java中的
predict()
方法详细介绍了如何设置x。

实现这一点的最通用、多语言方法是实现等式,以获得给定训练svm样本的决策分数。这将在Java、C、Dalvik和Objective C中工作,无论您现在或将来何时使用

LIBSVM生成的模型文件有三个重要方面:

  • 拉格朗日乘数(alphas)
  • 支持向量的标签(y_i's)
  • 支持向量(来自用于描述决策面的训练集的数据点)、x_i
给定一个新的点x,计算

其中所有内容都如上面所述,K是您用来训练的内核


决策仅仅是这个决策值的符号(例如,sgn(f(x))x)

最通用的多语言方法是实现这个等式,以获得给定训练SVM的样本的决策分数。这将在Java、C、Dalvik和Objective C中工作,无论您现在或将来何时使用

LIBSVM生成的模型文件有三个重要方面:

  • 拉格朗日乘数(alphas)
  • 支持向量的标签(y_i's)
  • 支持向量(来自用于描述决策面的训练集的数据点)、x_i
给定一个新的点x,计算

其中所有内容都如上面所述,K是您用来训练的内核


而决策只是这个决策值的符号(例如,sgn(f(x))x)

您可以在Android开发中使用包含此项目的方法


您可以使用包含此项目的方法进行Android开发


我找到了这个项目,效果很好


我找到了这个项目,效果很好


对不起,我没有正确理解这个问题,所以我删除了我的答案。但是,libsvm页面说Java代码与本机C源代码很接近,也许您可以按照C教程进行操作?对不起,我没有正确理解这个问题,所以我删除了我的答案。然而,libsvm页面说Java代码与本机C源代码非常接近,也许您可以按照C教程进行操作?