smile——Java机器学习引擎

news/2024/4/29 7:22:52/文章来源:https://www.cnblogs.com/mahongbiao/p/16642766.html

资源

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编译器自动生成可视化组件,包括轴、图例和比例。然后,它根据一组精心设计的规则确定这些组件的属性。

示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_3473.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

22-08-30 西安JUC(03) Callable接口、阻塞队列4套方法、ThreadPool线程池

Callable接口 1、为什么使用Callable接口 Thread和Runnable 都有的缺点&#xff1a;启动子线程的线程 不能获取子线程的执行结果&#xff0c;也不能捕获子线程的异常 从java5开始&#xff0c;提供了Callable接口&#xff0c;是Runable接口的增强版。用Call()方法作为线程的执…

【Go-Lua】Golang嵌入Lua代码——gopher-lua

Lua代码嵌入Golang Go版本&#xff1a;1.19 首先是Go语言直接调用Lua程序&#xff0c;并打印&#xff0c;把环境跑通 package mainimport lua "github.com/yuin/gopher-lua"func main() {L : lua.NewState()defer L.Close()// goerr : L.DoString(print("go g…

WebRTC系列-SDP之setLocalDescription(2)

文章目录 1. setLocalDescription整体流程总结2.几个channel的含义3. 音频流水线的建立3.1 signal线程流程3.2 work线程流程在上一章从源码的角度分析了WebRTC的setLocalDescription的代码调用流程及相关函数,这一章从一张图总结其核心函数调用;同时多上篇遗留的多个channal关…

第03章 SpringBoot 配置详解

序言 1.内容介绍 ​ 本章介绍了配置文件的作用、语法结构以及基于多种方式进行配置文件的配置实现&#xff0c;同时对于SpringBoot如何集成logback日志框架进行日志的写入进行了详细的实战演示。 2.知识目标 掌握系统配置文件的结构掌握系统配置文件、自定义配置文件的作用…

神经网络相关性系数r公式,神经网络预测数据

MATLAB神经网络训练图中R是什么 谷歌人工智能写作项目&#xff1a;神经网络伪原创 相关系数r的计算公式是什么&#xff1f; 相关系数介于区间[-1&#xff0c;1]好文案。当相关系数为-1&#xff0c;表示完全负相关&#xff0c;表明两项资产的收益率变化方向和变化幅度容完全相…

QML初学者教程

QML初学者教程 使用 QML、Qt 5、JavaScript 和 C 在 windows、mac 和 linux 上进行跨平台 GUI 应用程序开发 课程英文名&#xff1a;qml-for-beginners 此视频教程共5.0小时&#xff0c;中英双语字幕&#xff0c;画质清晰无水印&#xff0c;源码附件全 下载地址 百度网盘地…

Windows与网络基础-3-虚拟机安装Kali Linux

目录 一、虚拟机软件和ios镜像文件 二、Kali Linux安装 2.1 文件—>新建虚拟机 2.2 选择典型安装 2.3 选择稍后安装 2.4 选择操作系统类型和版本 2.5 虚拟机命名和安装路径选择 2.6 选择磁盘大小 2.7 自定义硬件配置 三、进入系统&#xff0c;安装带图形化界面 四…

毕业那年的大学生创新立项

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…

面试题-谈谈你对JVM的理解

首先问一个问题&#xff0c;jvm、jdk、jre三者的区别&#xff1f;再去谈其他的 JVM&#xff08;Java Virtual Machine&#xff09;&#xff1a;虚拟机 &#xff0c;源文件.java在虚拟机中通过编译器编译成字节码文件.class&#xff0c;是整个java实现跨平台的最核心的部分 操作…

什么是快应用?与原生APP相比优势在哪里

目前&#xff0c;头部互联网企业以及手机厂商两大阵营&#xff0c;正打得不可开交。腾讯、阿里、百度、今日头条等头部互联网企业&#xff0c;齐齐发力小程序&#xff0c;借助于开发者的力量&#xff0c;来强大自身的服务能力&#xff0c;提高超级平台的粘性&#xff0c;深挖存…

vue路由原理

前端路由切换原理&#xff1a;本质就是监听url的变化&#xff0c;然后匹配路由规则&#xff0c;显示相应的页面&#xff0c;并且不刷新页面。目前单页面应用实现路由的方式只有俩种&#xff1a; hash模式 history模式 hash模式相当于瞄点跳转。监听url#后面的传值发生变化&…

idea常用快捷键和插件

快捷键 查看父子关系图:ctrlaltu 全局搜索ctrlshirtF 全局替换:CtrlshirtR 插件 汉化Chinese 配置文件yml转properties 代码预览插件: MyBatis增强插件:MybatisX 快速定位接口工具(RestfulToolkit-fix) 安装之后使用快捷键"Ctrl\"或"CtrlAltN"调出搜…

Leetcode 946.验证栈序列

1.题目描述 给定 pushed 和 popped 两个序列&#xff0c;每个序列中的 值都不重复&#xff0c;只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时&#xff0c;返回 true&#xff1b;否则&#xff0c;返回 false 。 输入&#xff1a;pushed [1,2,3,4,5…

基于数字孪生的智慧城市是如何发展的?

数字孪生是指充分利用物理模型、传感器更新、运行历史等数据&#xff0c;集成多学科、多尺度、多概率的仿真过程&#xff0c;在虚拟空间中完成映射&#xff0c;从而反映相对应的实体装备的全生命周期过程。简而言之&#xff0c;数字孪生就是在一个设备或系统的基础上创造一个克…

零基础学Java有哪些必看书?推荐这5本

零基础学Java初学者&#xff0c;想要入门&#xff0c;应该多看一些关于Java的书&#xff0c;先充实理论基础。然而Java的技术知识是海量的&#xff0c;市面上关于Java的书令人眼花缭乱&#xff0c;零基础的小白完全不知道该看哪本书。那么&#xff0c;零基础学Java有哪些必看书…

阿里巴巴微服务核心手册:Spring Boot+Spring cloud+Dubbo

前言 微服务作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。但大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务&#xff0c;而红帽说 API 应该是重点。 企业和服务提供商正在寻找更好的方法将应用程序部署在云环境中&#xff0c;微服务…

opencv-python之位平面分解与数字水印

位平面分解与数字水印位平面分解与数字水印位平面分解1.图像预处理2.构造提取矩阵3.位平面提取4.阈值处理5.显示图像简单的数字水印1.载体图像预处理2.水印图像处理3.水印添加4.水印提取位平面分解与数字水印 两张素材: 位平面分解 图像矩阵中的每个值是一个八位二进制数&…

技术分享 | 黑盒测试方法论—等价类

等价类划分是一种重要的、常用的黑盒测试方法&#xff0c;不需要考虑程序的内部结构&#xff0c;只需要考虑程序的输入规格。它将不能穷举的测试过程进行合理分类&#xff0c;从而保证设计出来的测试用例具有完整性和代表性。需要把用户所有可能输入的数据&#xff0c;划分成若…

JAVA----钉钉机器人消息样式,关于PC 端与手机端文字消息样式显示不统一

关于PC 端与手机端文字消息样式显示不统一 颜色 String message "<font color#e60020>" 欢迎您加入公司&#xff01; "</font>";不加引号 或 加双引号String message "<font color\"#e60020\">" 欢迎您加入公…

新课标、新考法,猿辅导创新教育研究院全面拆解新课标

“义务教育课程方案和课程标准&#xff08;2022 年版&#xff09;”&#xff0c;也就是众多周知的“新课标”已于今年4月正式颁布。近日&#xff0c;各地的2022秋季学期已陆续开学&#xff0c;这版新修订的义务教育课程也将进入实施阶段。那么&#xff0c;这版新课标究竟有哪些…