首页 > 编程语言 >smile——Java机器学习引擎

smile——Java机器学习引擎

时间:2022-08-31 13:22:28浏览次数:93  
标签:Java 聚类 引擎 可视化 Smile smile 序列化

资源

https://haifengl.github.io/
https://github.com/haifengl/smile

介绍

Smile(统计机器智能和学习引擎)是一个基于Java和Scala的快速、全面的机器学习、NLP、线性代数、图形、插值和可视化系统。
凭借先进的数据结构和算法,Smile提供了最先进的性能。Smile有很好的文档记录,请查看项目网站以获取编程指南和更多信息。

Smile涵盖了机器学习的各个方面,包括分类、回归、聚类、关联规则挖掘、特征选择、流形学习、多维缩放、遗传算法、缺失值插补、高效最近邻搜索等。

Smile实现了以下主要的机器学习算法:

  • 分类:支持向量机、决策树、AdaBoost、梯度提升、随机森林、逻辑回归、神经网络、RBF网络、最大熵分类器、KNN、朴素贝叶斯、Fisher/线性/二次/正则判别分析。
  • 回归:支持向量回归、高斯过程、回归树、梯度提升、随机森林、RBF网络、OLS、套索、弹性网络、岭回归。
  • 特征选择:基于遗传算法的特征选择,基于集成学习的特征选择、树形图、信噪比和平方比。
  • 聚类:BIRCH、CLARANS、DBSCAN、DENCLUE、确定性退火、K-均值、X-均值、G-均值、神经气体、生长神经气体、层次聚类、顺序信息瓶颈、自组织映射、光谱聚类、最小熵聚类。
  • 关联规则和频繁项集挖掘:FP增长挖掘算法。
  • 流形学习:IsoMap、LLE、拉普拉斯特征映射、t-SNE、UMAP、PCA、核PCA、概率PCA、GHA、随机投影、ICA。
  • 多维标度:经典MDS、等渗MDS和Sammon映射。
  • 最近邻搜索:BK树、覆盖树、KD树、SimHash、LSH。
  • 序列学习:隐马尔可夫模型,条件随机场。
  • 自然语言处理:分句器和标记器、双元统计测试、短语提取器、关键词提取器、词干分析器、词性标注、相关性排序

使用(Java等集成)

maven引入

    <dependency>
      <groupId>com.github.haifengl</groupId>
      <artifactId>smile-core</artifactId>
      <version>2.6.0</version>
    </dependency>

Shell使用

模型序列化

大多数模型支持Java可序列化接口(所有分类器都支持可序列化接口),因此您可以在Spark中使用它们。
对于在非Java代码中读/写模型,我们建议使用XStream以串行化训练的模型。XStream是一个简单的库,用于将对象序列化为XML并再次序列化。XStream易于使用,不需要映射(实际上不需要修改对象)。Protostuff是一个很好的替代方案,它支持向前向后兼容性(模式演化)和验证。除了XML之外,Protostuff还支持许多其他格式,如JSON、YAML、protobuf等。

可视化

Smile提供了一个基于Swing的数据可视化库SmilePlot,它提供散点图、线图、阶梯图、条形图、方框图、直方图、3D直方图、树状图、热图、hexmap、QQ图、等高线图、曲面和线框。
需要引入库

    <dependency>
      <groupId>com.github.haifengl</groupId>
      <artifactId>smile-plot</artifactId>
      <version>2.6.0</version>
    </dependency>

Smile还支持声明方式的数据可视化。使用mile.plot.vega软件包,我们可以创建一个规范,将可视化描述为从数据到图形标记(如点或条)属性的映射。
该规范基于Vega-Lite。Vega-Lite编译器自动生成可视化组件,包括轴、图例和比例。然后,它根据一组精心设计的规则确定这些组件的属性。

示例

标签:Java,聚类,引擎,可视化,Smile,smile,序列化
From: https://www.cnblogs.com/mahongbiao/p/16642766.html

相关文章

  • 【Java学习Day11】变量种类及命名规范
    变量变量是什么:就是可以变化的量Java是一种强类型语言,每个变量都必须声明其类型Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域typevarNa......
  • java 实现逻辑分页
    //逻辑分页PageModelmodel=newPageModel();longtotal=list.size();model.setTotal(total);model.setPageNum(pageNum);model.setPageSize(pageSize);longpage=tot......
  • Java:将Excel转换为XPS
    Excel文档具有存放、处理数据等功能,用途十分广泛。有时为了满足不同的工作需要,我们需要将Excel文件进行文档格式转换。将Excel文件转换为XPS文件就是其中一种。XPS是一种版......
  • 简单的java代码审计
    描述很简单的代码审计java安全——Fastjson反序列化java安全——SQL注入Fastjson反序列化首先看一下配置文件,对于Maven项目,我们首先从pom.xml文件开始审计引入的第......
  • Java中如何将String转化成int数组?
    publicstaticvoidStringToIntArray(){Stringstring="1,2,3,4,5,6";Stringstr[]=string.split(",");intIntArray[]=newint[str.length];for(inti=0;i<str.le......
  • 【MySQL】MariaDB使用connect存储引擎访问SQLServer中的表
    借助connect存储引擎,Mariadb可以访问任何ODBC数据源。本文是以CentOS7为例。安装的内容有:ODBCdriver,unixODBC 1.下载ODBC对应linux的驱动下载地址:https://docs.mi......
  • 从Java 9 到 Java 17 新特性梳理
    Java9新的创建集合的方法 //[1,2,3,4] List<Integer> integers = List.of(1, 2, 3, 4); //{1,2,3} Set<Integer> integerSet = Set.of(1, 2,......
  • JavaScript Fundamentals – Part 2
    Functions(函数)functionlogger(){console.log('MynameisShubham');}//calling/running/invokingfunction(调用/运行/调用函数)logger();//Myname......
  • java 实体类命名
    阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义分层领域模型规约:DO(DataObject):与数据库表结构一一对应,通过DAO层向上传输数据源对象。DTO(DataTransferObjec......
  • Joinery——Java的数据处理库
    资源https://joinery.sh/v1.10/api/reference/joinery/DataFrame.htmlhttps://github.com/cardillo/joinery使用maven集成到java项目中<dependency><groupId>sh.jo......