线性SVM的原理就不多说了,最强大的就是libsvm库(ml库也是用这个),参考:http://blog.csdn.net/fjssharpsword/article/details/53883340

这里直接给出ML库的示例代码:

/*** This file is part of the Java Machine Learning Library* * The Java Machine Learning Library is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.* * The Java Machine Learning Library is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* GNU General Public License for more details.* * You should have received a copy of the GNU General Public License* along with the Java Machine Learning Library; if not, write to the Free Software* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA* * Copyright (c) 2006-2012, Thomas Abeel* * Project: http://java-ml.sourceforge.net/* */
package com.gddx;import java.io.File;import libsvm.SelfOptimizingLinearLibSVM;
import net.sf.javaml.classification.Classifier;
import net.sf.javaml.core.Dataset;
import net.sf.javaml.core.Instance;
import net.sf.javaml.tools.data.FileHandler;/*** This tutorial show how to use a the LibSVM classifier.* * @author Thomas Abeel* */
public class TutorialSelfOptimizingLibSVM {/*** Shows the default usage of the LibSVM algorithm.*/public static void main(String[] args) throws Exception {/* Load a data set */Dataset data = FileHandler.loadDataset(new File("D:\\tmp\\javaml-0.1.7-src\\UCI-small\\iris\\iris.data"), 4, ",");/** Contruct a LibSVM classifier with default settings.*/Classifier svm = new SelfOptimizingLinearLibSVM();svm.buildClassifier(data);/** Load a data set, this can be a different one, but we will use the* same one.*/Dataset dataForClassification = FileHandler.loadDataset(new File("D:\\tmp\\javaml-0.1.7-src\\UCI-small\\iris\\iris.data"), 4, ",");/* Counters for correct and wrong predictions. */int correct = 0, wrong = 0;/* Classify all instances and check with the correct class values */for (Instance inst : dataForClassification) {Object predictedClassValue = svm.classify(inst);Object realClassValue = inst.classValue();if (predictedClassValue.equals(realClassValue))correct++;elsewrong++;}System.out.println("Correct predictions  " + correct);System.out.println("Wrong predictions " + wrong);}}

发现一个linearsvm的网站http://www.linearsvm.com/,说可以处理超大数据集,可以试验下。

对ML库的序列学习就基本到此,总结三点:

1)还是python scikit-learn好用,其次是spark mlib库,java ml还是有所缺的;

2)Java ML库的源码可以继续研究,对于机器学习库主要就是三个部分:数据处理、方法实现、模型评价;

3)Java ML库的API可以参考:http://java-ml.sourceforge.net/api/0.1.7/,但是这个说明文档实在是过于简单。

Java机器学习库ML之十一线性SVM相关推荐

  1. Java机器学习库ML之六关于模型迭代训练的思考

    我遇到的场景是:样本集有5000万条,接近5个G,那么这样的样本集一次导入训练,我放着一天一夜都没跑出结果,机器性能还特别好,是64位linux有128G内存. 针对这样的情况,我想到的是两种思路: ...

  2. Java机器学习库ML之一Dataset和Instance

    Java机器学习库ML官网:http://java-ml.sourceforge.net/ 对于一个机器学习库来说,最基础就是数据处理能力,ml库给了dataset和instance两个类,datas ...

  3. Java机器学习库ML之二Feature Selection(特征选择)

    机器学习中训练模型的前提必备工作就是特征选择,起到降维和降低计算开销的目的,当然在获取尽可能小的特征子集的同时,应不显著降低分类精度.不影响类分布.保持特征子集的稳定适应性强等. ML库提供了特征选择 ...

  4. Java机器学习库ML之四模型训练和预测示例

    基于ML库机器学习的步骤: 1)样本数据导入: 2)样本数据特征抽取和特征值处理(结合模型需要归一化或离散化):这里本文没有做处理,特征选择和特征值处理本身就很大: 3)样本集划分训练集和验证集: 4 ...

  5. Java机器学习库ML之十模型选择准则AIC和BIC

    学习任务所建立的模型多数是参数估计并采用似然函数作为目标函数,当训练数据足够多时,可以不断提高模型精度,但是以提高模型复杂度为代价的,同时也带来一个机器学习中非常普遍的问题--过拟合.模型选择问题是在 ...

  6. Java机器学习库ML之五样本不均衡

    样本不均衡的问题是指训练集中类别之间的样本数据量比例失衡.有研究表明,部分学习任务,在类别出现1∶35比例时就会使某些分类学习方法无效,甚至1∶10比例也会.样本不均衡导致的问题有: 1)少数类所包含 ...

  7. Java机器学习库ML之九交叉验证法(Cross Validation)

    交叉验证(Cross Validation,CV)是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分 ...

  8. Java机器学习库ML之八关于模型迭代训练的试验

    前文提到因为数据集过大,只能拆分然后依次迭代训练,实验发现对结果有所偏差,参考代码如下: package com.vip;import java.io.File; import java.util.M ...

  9. Java机器学习库ML之七分类预测输出概率值

    场景:一般分类预测直接输出类别标记,不过有些情况需要输出对应类别的概率值,比如判定为正例的概率是0.6,而判定为负例的概率是0.3,那自然标记为正例,这里就是看ML用classDistribution ...

最新文章

  1. 从傅里叶(Fourier)变换到伽柏(Gabor)变换再到小波(Wavelet)变换
  2. Hadoop系列(三)MapReduce Job的几种提交运行模式
  3. Struts Action 控制器
  4. leetcode950. Reveal Cards In Increasing Order
  5. 深度学习框架 —— tflearn 的学习
  6. PHP遍历文件夹及子文件夹所有文件
  7. python除数为0报错_python 错误捕获机制分析
  8. 卡尔曼滤波器工作原理
  9. JAVA拓展新的数据库,SqlFaker:轻量级、易拓展的Java数据库智能填充开源库
  10. DRAM知识整理系列(三):部分时序参数整理
  11. pymysql的使用
  12. 预测师:2007年将是中间商艰难的一年
  13. 女神青涩时纤毫毕现,腾讯 AI 模型 GFPGAN 火上 GitHub 热榜第一,Demo 在线可玩
  14. Android自定义Activity切换动画完全解析
  15. leetcode——340.至多包含 K 个不同字符的最长子串
  16. 装载M1芯片的Mac安装“AE”时,出现错误代码“501”怎么办?
  17. 【Linux/Unix】csh中的循环方法
  18. python 搭建登陆系统,用Python连接操作MySQL数据库,做一个简单的用户登录注册系统...
  19. 基于Javaweb的小项目(类似于qqzone)1——设计数据库
  20. 【习题】《算法零基础100讲》位与 2

热门文章

  1. javascript二维数组转置_VBA数组拆分及维数的转换
  2. Linux系统配置交换分区
  3. 基于iview 封装一个vue 表格分页组件
  4. linux服务器last查看关机记录
  5. HTML/CSS[收藏]
  6. WPF ,listbox,平滑滚动的2种方式。
  7. android中SELINUX规则分析和语法简介
  8. Android平台 Psensor传感器调试方法
  9. WINCE支持的波斯语的codepages
  10. python 测试用例中设置执行时间_Python基于unittest实现测试用例执行