金磊 发自 凹非寺
量子位 报道 | 公众号 QbitAI
Smile,如其名,会是一个让你「笑着用」的好工具。
它的全名叫做 Statistical Machine Intelligence and Learning Engine,是一个快速、全面的机器学习系统。
![9b18caa40cba980dc0c30622625f6e7f.png](https://i-blog.csdnimg.cn/blog_migrate/f0572ce9738ac85eb412ab402d607d03.jpeg)
试问有多全?可以说是「方方面面」。
机器学习方面,例如分类、回归、聚类、关联规则挖掘、特征选取、流形学习、多维尺度分析、遗传算法、最邻近搜索等等。
当然还有像数据可视化、数理统计等其他任务也是 hold 得住。
还体现在语言方面,例如 Java、Scala、Kotlin 和 Clojure 都可以轻松驾驭。
而且,还可以在线试用!
几行代码就能用起来
一个工具好不好,「易用性」很关键。
先来看下 Smile 用起来有多方便。
以「随机森林」为例,Java 代码如下:
![207d0923647ec2e890e5217bfe79673e.png](https://i-blog.csdnimg.cn/blog_migrate/61fc08c1dd1f0b738f1a89fa03016390.jpeg)
Scala、Kotlin 的代码分别是:
![7f268ff005f6bed40a74d4243d9fd1ff.png](https://i-blog.csdnimg.cn/blog_migrate/0f5334ea89935a341671ebcceaa4b480.jpeg)
![02526ab142739e392059fee9ae443b62.png](https://i-blog.csdnimg.cn/blog_migrate/063f931866cb27d8df6b86fd1a392fa2.jpeg)
简单定义、调用即可,确实挺方便。
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 还提供先进的数值计算环境:从特殊函数、线性代数,到随机数发生器、统计分布和假设检验。
另外,还实现了图形、波形和各种插值算法。
![8a74143e5f9f862caee65c9a5ff31850.png](https://i-blog.csdnimg.cn/blog_migrate/63fd4cb655b90ca313be4cea88ccb2f5.jpeg)
除此之外,还能够实现数据可视化。
例如散点图、直线图、阶梯图、条形图、箱形图、热力图等等。
![ac3c108d72c3fa61312915d0a6527de6.png](https://i-blog.csdnimg.cn/blog_migrate/96d777a2ff98f58bff8bca80213c0c79.jpeg)
Java or Python?
虽然 Smile 工具好用是好用,但在 Reddit 上还是激起了一番争议。
矛盾点还是语言之间的较量。
拥护Python的选手便说:
如果没有Python API,你不可能在这个社区(实现)太多能力。
![338e3806f75aeca63f6e8b8c9e121a2b.png](https://i-blog.csdnimg.cn/blog_migrate/7fc16cdf42afbc33e44449a6c0eba05d.jpeg)
还有对Java语言的「嘲讽」:
你说Scala、Kotlin 和 Clojure,你只是换了不同的方式说Java而已。
![e6f06c9fbc047a785612ddcb09551c29.png](https://i-blog.csdnimg.cn/blog_migrate/0413954acea830ca71fc3fae4a706a84.jpeg)
但 Smile 也官网上强有力的做出了「回应」:
Smile 性能比R、Python好。
![d9a8b57abd34f7df9e3c2b4410c57f8f.png](https://i-blog.csdnimg.cn/blog_migrate/fee502b0bb28890353b7b1341d4ffe22.jpeg)
那么,你看好这款Smile工具吗?
参考链接:http://haifengl.github.io/
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态