构建Spark+smile项目,但是smile这个库目前还在更新和迭代阶段,很多由于版本和库对不上,比较多的功能只在文档里有,但是正式的github上下载的包却没有能使用的方法。
Smile机器学习库是Github上的开源的由开发者haifengl开发的一款适用于Scala项目的统计机器智能和学习引擎。Smile涵盖了机器学习的各个方面,包括分类,回归,聚类,关联规则挖掘,特征选择,流形学习,多维缩放,遗传算法,缺失值插补,有效的最近邻搜索等。在需要在maven项目添加相关依赖,即可使用调用相关的分类聚类等方法等。不过,此项目一直还在更新改进,可以说是处于实验阶段的项目。但是,凭借先进的数据结构和算法,Smile可提供最先进的性能。 Smile实现以下主要的机器学习算法:包括分类,回归,聚类,关联规则挖掘,特征选择,流形学习,自然语言处理等等。Smile库是基于java和scala的,因此可以很好与Spark结合起来,更进一步地和RSP-Spark结合起来用于大规模数据的机器学习。
最新的进展(已经可实现的工作),之前一直想实现如何可视化聚类的结果,然而官网的代码以及从GitHub上下载的最新2.6.0版本都使用不了可视化的这个功能。
最近在官网的栏目上发现了这个,是一个在线的jupyter-notebook编辑器,有Scala好几个版本的内核,而且似乎是不需要翻墙访问的。名字叫mybinder.org。
它的使用方法是在Scala交互环境中,直接import的时候帮你自动下载各种依赖和库包,通过这个方法import的smile却是可以使用可视化的功能。
然后我就想是否在本机安装Scala交互的notebook之后也可以使用这个方法进行使用。于是就找到两种可以使用Scala加spark的内核,一个是almond(原来的jupyter-Scala)需要
使用命令行下载,多试几次,我试了好几次才装上,最好指定版本,有对应的版本的支持列表,我的是Scala2.11.12,spark是2.4.0。一个spylon-kernel,这个也是可以的,装完能直接使用spark和scala交互。然后我就测试了一波,发现果然可以。Almond:如果安装了不对的版本,可以直接加上--force 参数安装就可以直接替换掉之前的内核。
smile有一套自己的read方法以及一套自己的可视化方法。如果使用不了的话就只能使用自己的方法。如下:
对比一下结果,发现是正确的。
可以使用predict函数做预测的。输入为一个一维的double数组。
网友评论