金磊 发自 凹非寺

量子位 报道 | 公众号 QbitAI

Smile,如其名,会是一个让你「笑着用」的好工具。

它的全名叫做 Statistical Machine Intelligence and Learning Engine,是一个快速、全面的机器学习系统。

试问有多全?可以说是「方方面面」。

机器学习方面,例如分类、回归、聚类、关联规则挖掘、特征选取、流形学习、多维尺度分析、遗传算法、最邻近搜索等等。

当然还有像数理统计等其他任务也是 hold 得住。

还体现在语言方面,例如 Java、Scala、Kotlin 和 Clojure 都可以轻松驾驭。

而且,还可以在线试用!

几行代码就能用起来

一个工具好不好,「易用性」很关键。

先来看下 Smile 用起来有多方便。

以「随机森林」为例,Java 代码如下:

Scala、Kotlin 的代码分别是:

简单定义、调用即可,确实挺方便。

Smile 提供了数百种高级算法,并且界面十分简洁。其中,Scala API 还提供了高级运算符,可以轻松构建机器学习应用。

全面的机器学习

说到 Smile 的「全面性」,先来看下它在机器学习上都能做些啥。

分类:支持向量机、决策树、AdaBoost、随机森林、梯度提升、神经网络、最大熵分类器,KNN,朴素贝叶斯,fisher/线性/二次/正则判别分析等。

回归:支持向量回归、高斯过程、回归树、梯度提升、随机森林、RBF 网络、OLS、LASSO、ElasticNet、岭回归等。

特征选择:基于遗传算法的特征选择、基于集成学习的特征选择、树形图、信噪比等。

聚类:BIRCH,、CLARANS、 DBSCAN、DENCLUE、Neural Gas、K-Means、X-Means等。

关联规则和频繁项集挖掘:FP-growth 挖掘算法。

流形学习:IsoMap、LLE、Laplacian 特征映射、t-SNE、UMAP、PCA、核 PCA、概率 PCA。

多维缩放:经典 MDS、等渗 MDS、Sammon 映射。

最近邻搜索:BK树、Cover树、kd树、SimHash、LSH。

序列学习:隐马尔可夫模型,条件随机域。

自然语言处理:分句器和分词器、Bigram 统计测试、短语提取器、关键词提取器、词性标注器、相关性排序。

由于排版问题,有一些能够实现的机器学习方法还没有列完。

但从上面列举的方法中可以看出,Smile 能够处理的机器学习方法还是较为全面。

数学、统计和可视化

Smile 还提供先进的数值计算环境:从特殊函数、线性代数,到随机数发生器、统计分布和假设检验。

另外,还实现了图形、波形和各种插值算法。

除此之外,还能够实现数据可视化。

例如散点图、直线图、阶梯图、条形图、箱形图、热力图等等。

Java or Python?

虽然 Smile 工具好用是好用,但在 Reddit 上还是激起了一番争议。

矛盾点还是语言之间的较量。

拥护Python的选手便说:

如果没有Python API,你不可能在这个社区(实现)太多能力。

还有对Java语言的「嘲讽」:

你说Scala、Kotlin 和 Clojure,你只是换了不同的方式说Java而已。

但 Smile 也官网上强有力的做出了「回应」:

Smile 性能比R、Python好。

那么,你看好这款Smile工具吗?

参考链接:

http://haifengl.github.io/

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

每天5分钟,抓住行业发展机遇

如何关注、学习、用好人工智能?

每个工作日,量子位AI内参精选全球科技和研究最新动态,汇总新技术、新产品和新应用,梳理当日最热行业趋势和政策,搜索有价值的论文、教程、研究等。

java转smile_「Smile」一下,轻松用Java玩转机器学习相关推荐

  1. 「Smile」一下,轻松用Java玩转机器学习

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI Smile,如其名,会是一个让你「笑着用」的好工具. 它的全名叫做 Statistical Machine Intelligence and ...

  2. java决策树算法_「Smile」一下,轻松用Java玩转机器学习

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI Smile,如其名,会是一个让你「笑着用」的好工具. 它的全名叫做 Statistical Machine Intelligence and ...

  3. 如何看待 2019 年 JAVA 开发就业「爆炸」现象?

    如何看待 2019 年 JAVA 开发就业「爆炸」现象? 现在已经进入5月份了,从过去的几个月看,2019年,IT业的就业形势比2018年底大家预测的还要糟糕. 更让人担心的是,过去的几个月,整体就业 ...

  4. java堆与非堆的一些研究_堆和堆傻傻分不清?一文告诉你 Java 集合中「堆」的最佳打开方式...

    什么是堆? 堆其实就是一种特殊的队列--优先队列. 普通的队列游戏规则很简单:就是先进先出:但这种优先队列搞特殊,不是按照进队列的时间顺序,而是按照每个元素的优先级来比拼,优先级高的在堆顶. 这也很容 ...

  5. 堆和堆傻傻分不清?一文告诉你 Java 集合中「堆」的最佳打开方式

    上一篇的 「Java 集合框架」里,还剩下一个大问题没有说的,那就是 PriorityQueue,优先队列,也就是堆,Heap. 什么是堆? 堆其实就是一种特殊的队列--优先队列. 普通的队列游戏规则 ...

  6. JAVA数组首位末位互换_堆和堆傻傻分不清?一文告诉你 Java 集合中「堆」的最佳打开方式...

    上一篇的 「Java 集合框架」里,还剩下一个大问题没有说的,那就是 PriorityQueue,优先队列,也就是堆,Heap. 什么是堆? 堆其实就是一种特殊的队列--优先队列. 普通的队列游戏规则 ...

  7. Ps 初学者教程「70」如何轻松灵活地为作品上色?

    欢迎观看 Photoshop 教程,小编带大家了解如何使用 ps 中的填充图层,尝试各种颜色选择并无损地编辑颜色. 我们的书籍封面设计在单独的命名层上具有三个元素:椅子.砖墙和图案.使用填充图层为设计 ...

  8. EasyV可视化主题套件「宝蓝」助力轻松搭建数据可视化大屏

    ​​​​​​​EasyV作为一款可视化与数字孪生设计搭建平台,除了提供从0到1制作可视化与孪生应用的能力,还提供了丰富.优质的可视化模板资源. 近期,我们针对用户使用模板资源时存在的「拼凑感」问题,推 ...

  9. 「基本功」不可不说的Java“锁”事

    并发编程是Java程序员必备基本功,今天"基本功"专栏向大家推荐一篇深入解析Java锁机制的文章.Enjoy! 前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景 ...

最新文章

  1. java实现人字拼,地板怎么玩花式人字拼铺法 人字拼地板家居实例图
  2. android操作系统优势,Android操作系统平台最大的优势
  3. linux系统基础优化小结
  4. php根据分类生成网址,PHP实现无限极分类生成分类树的方法
  5. @程序员,CSDN卫衣、背包、鼠标垫......福利来啦!!!
  6. 图形图像处理,CAD控件Simulation and Verification提供模拟机器的工具运转机床和车床材料的搬运控件...
  7. 定时器name冲突会报错吗_部落冲突:冬季版本即将更新,多个超级兵种被曝光,会上线吗?...
  8. [转载] Python3基础:08_02_面向对象编程(OOP)——类和对象
  9. 暴风影音皮肤_暴风影音16周年纪念版 v9.04
  10. GRE+托福四个半月复习计划
  11. 鸟哥的Linux私房菜-合集
  12. 电子电路基础 (12)——功率放大电路原理分析
  13. MySQL 的 Debezium 连接器-中文版
  14. 深信服校园招聘c/c++软件开发A卷
  15. Python数据分析之Matplotlib-I
  16. 一些实用的零零散散的知识
  17. 【读书笔记】IC行业常见术语
  18. faiss(2):理解product quantization算法
  19. Python文本处理工具——TextRank
  20. 把一元硬币换成1分,2分5分的硬币有几种不同的方法

热门文章

  1. 无线数传采集 开关量输入输出模块 无线控制终端
  2. 项目文档与毕业论文排版
  3. 关于防止sql注入的几种手段(二)
  4. 阿里云— 第二篇:云服务器的购买方式和搭建部署(图文结合,一目了然)
  5. Retrofit源码分析实践(六)【Retrofit 多BaseUrl问题解决】
  6. Visual Studio Code开发C/C++时,引入外部头文件(.h),如何配置包含路径?
  7. WSDM 2022 推荐系统论文阅读(中)
  8. Python在气象与海洋中的应用
  9. c语言自定义函数名称怎么命名,C语言函数名称为什么可以任意更改?
  10. 微信小程序 — wx:for和wx:if