lolo机器学习库的python包装器

lolop的Python项目详细描述


lolo的python包装器
===

``lolopy``实现了一个python接口到'lolo machine learning
library<;https://github.com/citrineinformatics/lolo>;``uuuu.

lolo是一个scala库,包含各种机器学习算法特别关注提供稳健的不确定性估计的算法。`` lolopy``允许访问这些算法作为
scikit学习兼容接口,并自动管理python和jvm之间的
接口(即,您可以使用``lolopy``
,而不必知道它在jvm上运行)

PYPI上提供。通过调用安装它:
BR/>"PIP安装Loope'"
BR/>使用"LoLope`",您还需要在您的
系统上安装Java JRE和Gt=1.8。'LoLopy' pypy包包含编译后的‘洛洛’BR/>库,安装后即可使用。BL/>开发
~~~~~~~~~~~~~~~BR/> BR/> LoLopy需要Python & Gt=3.6,JavaJDK& Gt=1.8,在开发LoLopy时安装在系统上。开发"lolopy",使用
maven在系统上编译"lolo"。我们提供了一个"makefile",其中包含所需的
操作。要在此
目录中构建并安装"lolopy"call"make"。


use
--


`randomForestRegressor``类最清楚地演示了
``lololopy``的用法。该类基于"Wagner et
al<;http://jmlr.org/papers/volume15/wager14a/wager14a.pdf>;` ` ` `基于不确定性估计的随机森林,有效地-
使用森林中不同树木之间的方差来生成不确定性估计每一个预言。使用这个
算法就像使用'randomForestRegressor from
scikit learn<;https://scikit learn.org/stable/modules/generated/sklearn.ensemble.randomForestRegressor.html>;`:

代码::python

from lolopy。学习者导入randomforestressor

rf.fit(x,y)
y_pred,y_std=rf.predict(x,return_std=true)

此代码的结果是生成预测值(``y_pred```)
NTIES(``Y`U STD``).

有关更多示例和
详细信息,请参阅```Examples`<;/Examples>;``文件夹。


在较大的数据集大小上使用它时,可能需要增加``LoLopy`
可用的内存量。设置运行机器学习计算的jvm的最大内存
可以通过设置"lolopy\ujvm\u memory"环境变量来实现。"lolopy jvm_memory"的
值用于设置jvm的最大堆大小(有关
详细信息,请参见"Oracle的文档"<;https://docs.oracle.com/cd/e21764_01/web.1111/e13814/jvm_tuning.htm perfm164>;````````````````````.

im实现和性能
----------

``lolopy``是使用'py4j<;https://www.py4j.org/>;``库
与lolo scala库接口构建的。PY4J提供了
轻松管理JVM服务器、在JVM中创建Java对象的能力,并从Python调用
Java方法。然而,py4j在
传输大型
数组<;https://github.com/bartdag/py4j/issues/159>;``方面的性能很慢。为了在模型
训练或评估之前将
特征数组(例如,训练数据)传递给JVM,我们将数据转换到/BR/Java和Python侧的字节数组。将数据转换为字节数组确实允许在JVM和Python之间快速移动数据,但需要立即在内存中保存3个数据拷贝(Python、Java字节数组和Java数字数组)。我们可以通过将字节数组
分块传递来减少内存使用,但这目前还没有实现。ted.

我们的模型训练性能与scikit learn相当,如下图所示。图中的蓝色阴影区域表示将培训数据传递给jvm所需的时间。我们注意到
对于大于100的训练集,使用scala接口
lolo和"lolopy"的训练时间是相等的。

图::/示例/配置文件/训练性能.png
:alt:训练性能

模型计时在1000个数据集(包含145个特征)上进行评估。
模型性能随训练集大小的降低是由于林中
树的数量等于训练集大小的影响。lolopy和
lolo对于训练集大小大于100的模型具有相似的性能。在训练集大小为100的情况下,发送数据的成本会限制"lolopy"的性能。图::./示例/profile/evaluation performance.png
:alt:evaluation performance

evaluation performance
有关更多详细信息,请参阅"基准测试"笔记本<;/examples/profile/scaling test.ipynb>;`


欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用JNA创建同一库的多个实例?   java在将Graphql查询作为JSON字符串传递时收到意外的令牌错误   OAuth2 oltu的java问题   java桌面应用程序使用的好的嵌入式数据库是什么?   java Firebase数据库高级查询选项   java正在使磁盘上的EhCache元素过期   java 安卓还原处于backstack中的片段的实例状态   XMemcached中的java异步集   java TimescaleDB是否使用与Postgresql完全相同的JDBC驱动程序?   java从网站c读取信息#   检查java Android中的字符串是否只包含数字和空格   c#如何向web服务发送特殊字符?   grails无法调用需要java的方法。lang.类参数?   java我在组合框中调用的方法不会运行所有代码,它只运行部分代码   java发送带有标头的HTTP GET请求